服务器部署paddlepaddle遇到的坑
paddle
库所依赖的系统libstdc++.so.6
版本较低,无法满足paddle
库所需的GLIBCXX_3.4.20
版本要求。
1、确定当前系统中libstdc++.so.6
文件的版本:
strings /lib64/libstdc++.so.6 | grep GLIBC
显示:
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_DEBUG_MESSAGE_LENGTH
查看本地是否有其他高版本:
find / -name libstdc++.so.6*
确实存在现成的高版本libstdc++
/usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.19 /usr/local/qcloud/stargate/lib/libstdcxx-x86_64/libstdc++.so.6.0.20 /usr/local/qcloud/stargate/lib/libstdc++.so.6 /usr/local/qcloud/stargate/lib/libstdcxx-arm64/libstdc++.so.6.0.24 /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.19
选择 libstdc++.so.6.0.24试试:
strings /usr/local/qcloud/stargate/lib/libstdcxx-arm64/libstdc++.so.6.0.24 | grep GLIBC
确实有符合要求的版本:
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBC_2.17 GLIBCXX_DEBUG_MESSAGE_LENGTH
替换旧版本,并建立软链接
复制新版本进去:
cp /usr/local/qcloud/stargate/lib/libstdcxx-arm64/libstdc++.so.6.0.24 /lib64/
进入旧版本所在目录:
cd /lib64/
删除旧版本:
rm libstdc++.so.6
建立软链接:
ln -s libstdc++.so.6.0.24 libstdc++.so.6
查看是否符合要求:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
完美:
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_DEBUG_MESSAGE_LENGTH
2、上述步骤之后,宝塔会出现问题,python项目管理器也无法正常使用,
先在宝塔面板里执行“修复”,然后会无法登录,显示404.
再通过腾讯云控制台,登录SSH,执行:
sudo /etc/init.d/bt default
报错:
Traceback (most recent call last): File "/www/server/panel/tools.py", line 737, in <module> set_panel_username() File "/www/server/panel/tools.py", line 409, in set_panel_username import db File "/www/server/panel/class/db.py", line 16, in <module> import PluginLoader ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory
更新 yum 缓存:
sudo yum update
安装 libstdc++ 库文件:
sudo yum install libstdc++.so.6
重新启动服务:
/etc/init.d/bt restart
宝塔面板就可以再次登录了。
如果您看完本篇感觉不错,请点击下方的【推荐】支持一下博主!