专栏首页马一特ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found (required by /usr/local/python37/lib/p

ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found (required by /usr/local/python37/lib/p

一 问题背景

这个错误的出现往往与我前面的一篇文章 ImportError: /lib64/libm.so.6: version `CXXAB_1.3.8.' not found (required by /usr/local/python37/lib/python3.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so) 的错误共同出现,这两个错误不仅看似相似,解决办法相似,而且还有极大的关联性,一不小心,可能就会陷入极难修复的境地。

二 问题原因

都是由于linux的库比较老旧,而现代技术需要使用新的版本造成的,最后归结一下,就是需要升级gcc和glibc这两个内置库,这两个库必须手动升级,作为一个野生运维人员,我一直相信,凡手动,必出漏洞,这不是,为了这个问题,我花了好几天的时间,终于修复。

三 解决重点

  1. gcc的版本不要太高,gcc-7.2.0.tar.xz 这个版本即可,如需查看相关链接请点击 ImportError: /lib64/libm.so.6: version `CXXAB_1.3.8.' not found (required by /usr/local/python37/lib/python3.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so) 这篇文章
  2. gcc只安装一半就可以了,意思是,make完就可以了,不需要make install,这是使用 locate libstdc++.so 查看gcc-7.2.0目录下的libstdc++.so.6库,复制粘贴到lib64下。
  3. glibc的安装之前一直出错,可能就是因为我安装了gcc9的版本,现在gcc还是4.8.5的版本,glibc-2.23很轻松就可以安装了,具体安装细节如下。
# 1 无bug安装过程
wget http://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz
tar xf glibc-2.23.tar.gz 
cd glibc-2.23/
mkdir build 
cd build/
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make 
make install
ldd --version

# 2 大部分时候make之后需要这一步
make之后 make install之前打开新窗口去创建一个软链接不然install的时候会报错
cd /lib64
unlink libm.so.6
ln -s libm-2.23.so libm.so.6

# 3 可能出现的错误和解决方案
“”“
make的错误两个文件缺少一对 {}
如何快速找到需要添加的位置, 进入vim后  直接输入 / 符号 后面接你要搜索的内容,类似浏览器的Ctrl+F查找
”“”
/ *loc != NULL  快速匹配 *loc != NULL 

# 错误1
vim /home/glibc-2.23/nis/nis_call.c
   if (*loc != NULL)
+  {  #这里添加一个{号
     for (i = 1; i < 16; ++i)
       if (nis_server_cache[i] == NULL)
 	{
@@ -690,6 +691,7 @@ nis_server_cache_add (const_nis_name nam
 	       || ((*loc)->uses == nis_server_cache[i]->uses
 		   && (*loc)->expires > nis_server_cache[i]->expires))
 	loc = &nis_server_cache[i];
+  }  #这里添加一个} 号
   old = *loc;

# 错误2 
vim  /home/glibc-2.23/stdlib/setenv.c   
   
   ep = __environ;
   if (ep != NULL)
+  { #这里添加一个{号
     while (*ep != NULL)
       if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
 	{
@@ -290,6 +291,7 @@ unsetenv (const char *name)
 	}
       else
 	++ep;
+  }  #这里添加一个}号
 
   UNLOCK;   

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 八皇后问题Python实现

    问题: 国际象棋棋盘是8 * 8的方格,每个方格里放一个棋子。皇后这种棋子可以攻击同一行或者同一列或者斜线(左上左下右上右下四个方向)上的棋子。在一个棋盘上如果...

    马一特
  • wordpress:您的主机禁用了mail()函数,找回用户名和密码

    马一特
  • 数据分析与数据挖掘 - 08图形绘制

    Matplotlib是数据可视化工作中,最常用的一个可视化库。Matplotlib有非常多的图形,我们很难在短时间内将其掌握,所以我们首先要掌握的是画图的思路和...

    马一特
  • Spark2.4.0源码分析之WorldCount Stage提交顺序(DAGScheduler)(五)

    thinktothings
  • Python 技术篇-含中文编码的代码运行方法,(unicode error) ‘utf-8‘ codec can‘t decode问题原因及解决方法

    如果代码内包含中文,需要在代码开头指定下支持中文的编码格式 # -*- coding:utf-8 -*- 但需要注意的是我们保存代码的文件也是有编码格式的,需...

    小蓝枣
  • 计算机网络学习--网络层

    第一章 概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层

    shimeath
  • X-Future开发者大会等待黑科技降临

    VRPinea
  • 借助 VuePress 和 GitBook ,10 分钟即可免费部署你的静态博客网站

    因为自己平时经常写博客,也有博客网站,所以 Leader 叫我做一个 CMS 的帮助中心的技术选型,CMS 的帮助中心的功能:是通过文章来教用户如何使用我们的项...

    夜尽天明
  • python sitk.show()与imageJ结合使用常见的问题

    simpleITK已经通过pip install安装,但是sitk.show()功能无法正常使用,类似如下

    砸漏
  • 刚出炉的一个MySQL故障

    说说我的"丰功伟绩"吧,事情是这样的(真实IP地址我使用192.168段的IP代替):

    AsiaYe

扫码关注云+社区

领取腾讯云代金券