ImportError: /lib64/libc.so.6: version `GLIBC_2.18‘ not found

先看一个错误:

File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/service/webapps/urls.py", line 13, in <module>
    from webapps.utils.auth import BlacklistUsersAuthFrom
  File "/service/webapps/utils/auth.py", line 11, in <module>
    from mozilla_django_oidc.auth import OIDCAuthenticationBackend
  File "/service/webapps/py38env/lib/python3.8/site-packages/mozilla_django_oidc/auth.py", line 16, in <module>
    from josepy.b64 import b64decode
  File "/service/webapps/py38env/lib/python3.8/site-packages/josepy/__init__.py", line 40, in <module>
    from josepy.json_util import (
  File "/service/webapps/py38env/lib/python3.8/site-packages/josepy/json_util.py", line 14, in <module>
    from OpenSSL import crypto
  File "/service/webapps/py38env/lib/python3.8/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/service/webapps/py38env/lib/python3.8/site-packages/OpenSSL/crypto.py", line 8, in <module>
    from cryptography import utils, x509
  File "/service/webapps/py38env/lib/python3.8/site-packages/cryptography/x509/__init__.py", line 6, in <module>
    from cryptography.x509 import certificate_transparency
  File "/service/webapps/py38env/lib/python3.8/site-packages/cryptography/x509/certificate_transparency.py", line 10, in <module>
    from cryptography.hazmat.bindings._rust import x509 as rust_x509
ImportError: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /service/webapps/py38env/lib/python3.8/site-packages/cryptography/hazmat/bindings/_rust.abi3.so)

原因就是,libc.so.6里面缺乏 GLIBC_2.18造成的。

[root@59610a7283d8 lib64]# strings libc.so.6 | grep "GLIBC_"
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

再看一眼,当下是个啥版本。

[root@59610a7283d8 lib64]# ll | grep "libc.so.6"
lrwxrwxrwx  1 root root      12 Mar 25  2019 libc.so.6 -> libc-2.17.so

所以,就等于说,要安装更高版本的libc库,从当前错误看至少得是 libc-2.18版本。

现在总结下安装命令:

这里注意,我在第一次搞定后,总结了如下命令,但是后面删除了容器,所以搞的这些东西都没了,在第二次再搞的时候,按照如下命令,却无法成功更新libc.so.6 ,然后总结了下原因,就是以下命令,不是在哪执行都可以的,最好先在根目录下创建一个自己的文件夹,然后再执行下面的命令就可以了。

cd  /

mkdir my_package

cd my_package     # 完成这几步后,再执行下面的命令就可以了

# 下载包

wget http://mirror.bjtu.edu.cn/gnu/libc/glibc-2.18.tar.xz

or​​​​​​​​​​​​​​

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.xz

# 解压

tar -xvf glibc-2.18.tar.xz

# 进入包

cd glibc-2.18

# 制作构建目录

mkdir build

cd build

# 配置,这一步很重要,这关系到后面 libc.so.6 的软连接能不能自动更新,网上好多关于这步的命令都是错的

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

# 编译

make

make install

# 完成,接下来,看看结果

cd /lib64/

ll | grep "libc."

[root@51225b1a8232 webapps]# ll /lib64/ | grep "libc."
-rwxr-xr-x  1 root root  2156592 Oct 13  2021 libc-2.17.so
-rwxr-xr-x  1 root root 10228968 Aug 10 06:33 libc-2.18.so
-rw-r--r--  1 root root 22237936 Aug 10 06:33 libc.a
-rw-r--r--  1 root root      253 Aug 10 06:33 libc.so
lrwxrwxrwx  1 root root       12 Aug 10 06:33 libc.so.6 -> libc-2.18.so

这下就变过来了。

千万注意,没事别对原先的 libc.so.6 这个软连接直接采用 mv xx  xx.bac 的方法处理。这样会把系统给搞坏的。网上的好多操作都是直接这么干,这就是坑。

再强调一遍,变更 libc.so.6 的软连接的关键是在安装 libc-2.18 时的 ..configure 这个命令,务必按照上述命令执行。

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
当在部署TensorFlow时出现"ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found"错误时,这是因为你的系统缺少GLIBC库的版本2.23。GLIBC是GNU C库,是Linux系统的重要组件之一。 要解决这个问题,你可以按照以下步骤进行操作: 1. 首先,确认你的系统是否已经安装了GLIBC库。你可以通过在终端中运行以下命令来检查: ``` ldd --version ``` 如果你的系统没有安装GLIBC库或者版本较低,你将需要更新你的系统。 2. 更新你的系统以安装GLIBC库的版本2.23或更高版本。你可以使用操作系统的包管理器来更新GLIBC。例如,如果你使用的是Ubuntu发行版,你可以运行以下命令: ``` sudo apt-get update sudo apt-get upgrade ``` 如果你使用的是其他发行版,请参考相应的包管理器文档来更新系统。 3. 如果在更新系统后仍然遇到问题,你可以尝试手动安装GLIBC库的版本2.23。你可以从GLIBC的官方网站下载适合你系统的安装包,并按照官方文档的指导进行安装。 4. 在安装完GLIBC库的版本2.23后,你可能会遇到其他错误。如果你在运行"make install"命令时遇到问题,你可以尝试使用多线程编译来提高效率。你可以运行"make -j n"命令,其中n是你服务器的核数。这将启动n个线程并行编译。 5. 如果你在执行"make install"命令时仍然遇到错误,你可以尝试执行以下命令来创建一个链接: ``` cd /lib64 ln -sf libm-2.23.so libm.so.6 ``` 这将创建一个libm.so.6的软链接,指向libm-2.23.so文件。 通过按照上述步骤操作,你应该能够解决"ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found"错误,并成功部署TensorFlow。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值