/lib64 系统库文件出问题,报 ln: error while loading shared libraries: libc.so.6: cannot open shared object

我有一次安装zabbix 客户端,报error :
/lib64/libc.so.6: version `GLIBC_2.7’ not found 解决方案;因为系统版本的问题太低没有这个glibc_2.7 的库文件,
(库文件的解释:对于头文件和库的区别我们可以这样理解:就是头文件提供的是一个函数的声明,并没有这个函数具体代码,而库呢就是存放这个函数的具体实现代码。

c语言在编译过程中会经过预处理(需要头文件),编译,汇编,链接(需要库文件)。执行的时候可能还有动态链接过程。在编译的时候只要有头文件的声明就可以了,在链接的时候,把已经编译好的.obj和现有的.lib文件进行链接,这时就可以最终生成可执行文件了。)
接下来我把/lib64/libc.so.6 软链接给移除了,导致除了cd 命令其他的命令都不能用了,因为无法进行库文件调用了,最后网上查找,http://devzc.com/post/440 ,
libc.so.6被误删除后急救,找到方法,
cd /lib64 ;export LD_PRELOAD=/lib64/libc-2.5.so ;ln -s libc-2.5.so libc.so.6
中间还是有点波折的,上个链接有坑要结合下面的这个链接才 做出来
https://blog.51cto.com/13401435/2314132
一般centos 不支持 LD_PRELOAD=/lib64/libc-2.5.so ,需要用export 定义环境变量,然后 系统命令就可用了。 好险呀,这可是服务器,不能用了很麻烦的。
还有 /lib 和/lib64 库的区别 有人说lib64 是 /lib 的重命名,但是还是有区别的。
有些东西不一样,但是主要的东西确实一样的,都是内核级别的,

发布了45 篇原创文章 · 获赞 0 · 访问量 2094

猜你喜欢

转载自blog.csdn.net/weixin_43513408/article/details/100763912
今日推荐