升级libc系统命令几乎无效

情况说明:在linux上安装java8,libc版本只达到2.3.4,而我们至少需要2.4,所以将glibc升级,结果升级后,系统命令都不能用了,估计是升级后这个linux系统带不动这个libc版本。

 

报错信息:make: relocation error: /lib/i686/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

 

解决:先查看linux下还有哪些命令可以用,用这些命令去修复,但是我不是特别懂linux,所以没试这个方法,最后在百度上找到一个解决办法。它的报错信息是:relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference 问题解决;用了这条命令解决:sln /usr/lib64/ld-2.17.so /usr/lib64/ld-linux-x86-64.so.2。 

那么我要先去找出类似ld-2.17.so和ld-linux-x86-64.so.2的文件,这个文件要么在/usr/lib/(也许是/usr/lib64)下要么在/lib/(也许在/lib64)下,我们通过在命令行上输入/usr/lib/Id- 再按两次tab键盘 (意思是在/usr/lib/文件夹下找文件名中带有Id-的文件),最后我找到/lib/ld-2.3.4.so(我之前的最高libc版本)和/lib/ld-linux-so.2,在命令行中输入:sln /ib/ld-2.3.4.so /lib/ld-linux.so.2,解决。

 

这还不能解决全部问题,还有一些命令不能用。最根本的办法是,你查看make install的过程,结果发现,它在执行命令rm -f /home/mytmp/elf/symlink.list之后就报错了,我们把make install的过程复制下来,搜索symlink.list关键词,发现它把/lib/libc.so.6等都放到symlink.list中了,所以最后删除了这个文件夹,所以报错了。把这些被删除的数据从其他系统复制进来就行了。

 

我解决这个办法的时候,查看了我的执行命令和报错信息,却没有查看执行过程。所以一定要看where(在哪里产生了bug)、what(做了什么命令)、why(为什么会错),而我只想了why这个问题,看问题不全面。

 

另外,大神说升级glibc要用yum,会自动编译的

你可能感兴趣的:(bug)