专注app软件定制开发ImportError: /lib64/libc.so.6: version `GLIBC_2.18‘ not found

专注app软件定制开发先看一个错误:

  1. File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  2. File "/service/webapps/urls.py", line 13, in <module>
  3. from webapps.utils.auth import BlacklistUsersAuthFrom
  4. File "/service/webapps/utils/auth.py", line 11, in <module>
  5. from mozilla_django_oidc.auth import OIDCAuthenticationBackend
  6. File "/service/webapps/py38env/lib/python3.8/site-packages/mozilla_django_oidc/auth.py", line 16, in <module>
  7. from josepy.b64 import b64decode
  8. File "/service/webapps/py38env/lib/python3.8/site-packages/josepy/__init__.py", line 40, in <module>
  9. from josepy.json_util import (
  10. File "/service/webapps/py38env/lib/python3.8/site-packages/josepy/json_util.py", line 14, in <module>
  11. from OpenSSL import crypto
  12. File "/service/webapps/py38env/lib/python3.8/site-packages/OpenSSL/__init__.py", line 8, in <module>
  13. from OpenSSL import crypto, SSL
  14. File "/service/webapps/py38env/lib/python3.8/site-packages/OpenSSL/crypto.py", line 8, in <module>
  15. from cryptography import utils, x509
  16. File "/service/webapps/py38env/lib/python3.8/site-packages/cryptography/x509/__init__.py", line 6, in <module>
  17. from cryptography.x509 import certificate_transparency
  18. File "/service/webapps/py38env/lib/python3.8/site-packages/cryptography/x509/certificate_transparency.py", line 10, in <module>
  19. from cryptography.hazmat.bindings._rust import x509 as rust_x509
  20. 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造成的。

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

再看一眼,专注app软件定制开发当下是个啥版本。

  1. [root@59610a7283d8 lib64]# ll | grep "libc.so.6"
  2. 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."

  1. [root@51225b1a8232 webapps]# ll /lib64/ | grep "libc."
  2. -rwxr-xr-x 1 root root 2156592 Oct 13 2021 libc-2.17.so
  3. -rwxr-xr-x 1 root root 10228968 Aug 10 06:33 libc-2.18.so
  4. -rw-r--r-- 1 root root 22237936 Aug 10 06:33 libc.a
  5. -rw-r--r-- 1 root root 253 Aug 10 06:33 libc.so
  6. 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 这个命令,务必按照上述命令执行。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发