博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次生产环境中得删系统库行为
阅读量:6960 次
发布时间:2019-06-27

本文共 1217 字,大约阅读时间需要 4 分钟。

由于在生产环境中需要使用python 中得一个包tensorflow在机器中导入包发现有以下报错

经过百度 需要升级glibc库。

 如图所示此图为升级后得截图,正常应该指向是没升级前libc-2.12.so

然后我发现 在/bigdata/anaconda/lib 下面有 libc-2.17.so就考虑把libc-2.17.so拷贝到/lib64下面然后修改软连接

cd /usrlib64

rm libc.so.6

ln -s libc-2.17.so libc.so.6  然后悲剧就发生了 发现这里报错。。。我使用其他命令。。都报错。。。

 

 

赶紧百度

解决办法:

既然命令无法寻址到软连接,那么直接命令行给他就是了,网上看到了两种方法

1、ldconfig -l -v /lib64/libc-2.12.so
这里写的libc库必须是原来使用的而不是你更新过的
2、LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
LD_PRELOAD允许你定义在程序运行前优先加载的动态链接库,因此在使用ln前就加载了lib库,而不是等到使用ln时加载,这样就能临时使用命令了
不仅仅是ln,只要加了LD_PRELOAD=/lib64/libc-2.12.so,后面可以跟一切因为libc.so.6被删不能用的命令
我使用的是第二种方法
然后命令又能用了.

 

好了问题解决了 理解下原因 

glibc库是很多命令操作得依赖库 如图

仅仅是iconv,基本上非系统命令都有这一条 libc.so.6 => /lib64/libc.so.6 ,因此libc.so.6至关重要,绝对不能删,不能改名,能不能覆盖就不知道了,想作死的可以试试

 

 但是还是没有解决根本问题。 怎么解决呢? 老老实实得源码安装吧

解决办法:glibc-2.17下载地址:https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gzwget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gztar -xvf glibc-2.17.tar.gzcd glibc-2.17mkdir buildcd build../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/binmake && make install

  

同样经历的还有  https://www.cnblogs.com/weijing24/p/5890031.html  这位同学

 

转载于:https://www.cnblogs.com/ZFBG/p/10375432.html

你可能感兴趣的文章
嵌入式Linux加快物联网开发速度的方案研究
查看>>
java程序员如何拿到2万月薪
查看>>
redis常用命令总结
查看>>
ActiveMQ —— <一> 概述
查看>>
SylixOS内核打印调试方法.
查看>>
加号+和减号-
查看>>
详解Mysql分布式事务XA(跨数据库事务)
查看>>
移动端概述和hybird模式、响应式布局
查看>>
2018年,成功的创业公司网站是怎么设计的?
查看>>
MySQL数据库开发规范
查看>>
安装elasticsearch
查看>>
MySQL 创始人:写代码比打游戏还爽,程序员应该多泡开源社区
查看>>
构造器内部的多态方法的行为
查看>>
Android Studio库Module引用aar文件
查看>>
008-tar,gzip,bzip2的使用
查看>>
静态单元格
查看>>
浅谈 MySQL 集群高可用架构
查看>>
两个路径与四个centos7命令
查看>>
学习之初
查看>>
Linux启动顺序
查看>>