厨师正在安装uwsgi libiconv.so.2,找不到该文件或目录

2024-05-17 09:02:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用uwsgi设置Django服务器。使用^{}和以下配方安装uwsgi时:

python_runtime '3'

python_package 'uwsgi' do
    python '3'
end

当我登录到计算机并在没有任何选项的情况下运行uwsgi时,它将抛出一个错误:

uwsgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

我检查了库,发现libiconv.so.2没有按如下方式安装:

sudo ldconfig -p | grep libiconv

但是,当我按如下方式重新安装时:

sudo pip uninstall uwsgi
sudo pip install uwsgi

uwsgi命令再次工作。奇怪的是,当我检查是否安装了libiconv.so.2时,它仍然没有安装。

我应该如何告诉chef正确安装uwsgi,而不使用execute来运行我执行的命令?

注意:我正在使用test kitchen,在运行任何命令之前,虚拟环境已经重置。操作系统是Debian8.6。


Tags: pipdjango命令服务器package方式sudo配方
2条回答

在厨房测试时也有同样的错误。 libconv位于/opt/chef/embedded/lib/,因此您需要包含指向ldconfig的路径:

root@dokken:/# journalctl -u uwsgi
-- Logs begin at Fri 2018-01-26 08:59:50 UTC, end at Fri 2018-01-26 09:03:53 UTC
. --
Jan 26 09:03:53 dokken systemd[1]: Starting uWSGI...
Jan 26 09:03:53 dokken uwsgi[2789]: /opt/venv/bin/uwsgi: error while loading s
hared libraries: libiconv.so.2: cannot open shared object file: No such file or
directory
Jan 26 09:03:53 dokken systemd[1]: uwsgi.service: control process exited,
code=exited status=127
Jan 26 09:03:53 dokken systemd[1]: Failed to start uWSGI.
Jan 26 09:03:53 dokken systemd[1]: Unit uwsgi.service entered failed state
.
root@dokken:/# find /opt/ -name 'libiconv.so.2'
/opt/chef/embedded/lib/libiconv.so.2
root@dokken:/# echo '/opt/chef/embedded/lib/' >> /etc/ld.so.conf
root@dokken:/# ldconfig
root@dokken:/# cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

/opt/chef/embedded/lib/
root@dokken:/# service uwsgi start
root@dokken:/# ps axu  | grep uwsgi
root      2813  0.2  0.4  50876  8616 ?        S    09:05   0:00 /opt/venv/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini
root      2814  0.0  0.5 201360 10276 ?        Sl   09:05   0:00 /opt/venv/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini
root      2815  0.0  0.5 201360 10276 ?        Sl   09:05   0:00 /opt/venv/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini
root      2821  0.0  0.0  11128   932 pts/0    S+   09:05   0:00 grep uwsgi

这对我有效:

conda install -c conda-forge libiconv

参考号:https://anaconda.org/conda-forge/libiconv

相关问题 更多 >