服务器部署paddlepaddle遇到的坑
paddle
库所依赖的系统libstdc++.so.6
版本较低,无法满足paddle
库所需的GLIBCXX_3.4.20
版本要求。
1、确定当前系统中libstdc++.so.6
文件的版本:
1 | strings /lib64/libstdc ++.so.6 | grep GLIBC |
显示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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 |
查看本地是否有其他高版本:
1 | find / -name libstdc++.so.6* |
确实存在现成的高版本libstdc++
1 2 3 4 5 6 7 8 9 10 11 12 13 | /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试试:
1 | strings /usr/local/qcloud/stargate/lib/libstdcxx-arm64/libstdc ++.so.6.0.24 | grep GLIBC |
确实有符合要求的版本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 |
替换旧版本,并建立软链接
复制新版本进去:
1 | cp /usr/local/qcloud/stargate/lib/libstdcxx-arm64/libstdc ++.so.6.0.24 /lib64/ |
进入旧版本所在目录:
1 | cd /lib64/ |
删除旧版本:
1 | rm libstdc++.so.6 |
建立软链接:
1 | ln -s libstdc++.so.6.0.24 libstdc++.so.6 |
查看是否符合要求:
1 | strings /usr/lib64/libstdc ++.so.6 | grep GLIBCXX |
完美:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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,执行:
1 | sudo /etc/init .d /bt default |
报错:
1 2 3 4 5 6 7 8 | 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 缓存:
1 | sudo yum update |
安装 libstdc++ 库文件:
1 | sudo yum install libstdc++.so.6 |
重新启动服务:
1 | /etc/init .d /bt restart |
宝塔面板就可以再次登录了。
如果您看完本篇感觉不错,请点击下方的【推荐】支持一下博主!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)