服务器部署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

  宝塔面板就可以再次登录了。

  

posted @ 2023-04-21 15:26  平底斜  阅读(280)  评论(0编辑  收藏  举报