美文网首页
uwsgs loading shared libraries:

uwsgs loading shared libraries:

作者: 8a8d7f2e842b | 来源:发表于2020-04-18 01:01 被阅读0次

如果缺少报这个错uwsgi: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

可以看这个文章:https://blog.csdn.net/qq_26105397/article/details/79928222

可以参考这个centos安装uwsgi https://blog.csdn.net/lap2004/article/details/82352308

背景

想使用 ningx + uwsgi + django 搭建 python 应用环境(Centos7.0)
Python使用的是anaconda3(pyhton 3.6)
依赖包安装完毕,但是执行 uwsgi 的时候出现如下异常

[root@localhost ~]# uwsgi
uwsgi: error while loading shared libraries: libicui18n.so.58: cannot open shared object file: No such file or directory

于是乎查看 uwsgi所在地址,然后使用 LDD 查看缺少的包

 [root@localhost ~]# which uwsgi /root/anaconda3/envs/py3/bin/uwsgi

(py3) [root@localhost ~]# ldd /root/anaconda3/envs/py3/bin/uwsgi

linux-vdso.so.1 => (0x00007ffc14fc7000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff6b0347000)

libm.so.6 => /lib64/libm.so.6 (0x00007ff6b0045000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007ff6afe40000)

libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff6afbde000)

libxml2.so.2 => /lib64/libxml2.so.2 (0x00007ff6af874000)

libz.so.1 => /lib64/libz.so.1 (0x00007ff6af65d000)

liblzma.so.5 => /lib64/liblzma.so.5 (0x00007ff6af437000)

libicui18n.so.58 => not found 

libicuuc.so.58 => not found

libicudata.so.58 => not found

libutil.so.1 => /lib64/libutil.so.1 (0x00007ff6af233000)

librt.so.1 => /lib64/librt.so.1 (0x00007ff6af02a000)

libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007ff6aedf3000)

libc.so.6 => /lib64/libc.so.6 (0x00007ff6aea30000) /lib64/ld-linux-x86-64.so.2 (0x00005634c289c000)

libfreebl3.so => /lib64/libfreebl3.so (0x00007ff6ae82c000)

通过 LDD 发现 uwsgi 找不到三个包(具体就是 not found 的三个)

于是就把anaconda3/lib 下相应的包软链到/lib64下去(64bit 机器,如果时32bit 机器则软链到/lib下)

[root@localhost ~]# ln -s /root/anaconda3/lib/libicui18n.so.58 /lib64/libicui18n.so.58
[root@localhost ~]# ln -s /root/anaconda3/lib/libicuuc.so.58 /lib64/libicuuc.so.58
[root@localhost ~]# ln -s /root/anaconda3/lib/libicudata.so.58 /lib64/libicudata.so.58

这样缺失的三个包补充了,那么在使用ldd 测试结果如下

[root@localhost ~]# ldd /root/anaconda3/envs/py3/bin/uwsgi
/root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicui18n.so.58)
/root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libicui18n.so.58)
/root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicuuc.so.58)
/root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libicuuc.so.58)

这说明还是缺失CXXABI_ 之类的东西,使用 strings 命令查看结果如下

[root@localhost lib64]#  strings /usr/lib64/libstdc++.so.6|grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1
确实没有CXXABI_1.3.8  CXXABI_1.3.9 之类的东西,那么就把 anaconda3 下的libstdc++.so.6移到/lib64下面, libstdc++.so.6就是libstdc++.so.6.0.24的软链(可以去/lib64下查看ll libstdc*),既然确实那就把 anconda3下的高版本 copy 过去就是
把libstdc++.so.6.0.24拷贝到/lib64目录下。
cp libstdc++.so.6.0.24 /lib64/

删除原来的libstdc++.so.6符号连接。

[root@localhost lib64]# rm -rf libstdc++.so.6

新建新符号连接。

ln -s libstdc++.so.6.0.24 libstdc++.so.6 

————————————————
版权声明:本文为CSDN博主「起不了名儿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/david_sheep/article/details/85327954

相关文章

网友评论

      本文标题:uwsgs loading shared libraries:

      本文链接:https://www.haomeiwen.com/subject/zaouvhtx.html