近来在服务器安装软件,发现了一个老版本。于是就试图将老版本移动到一个目录。结果没注意,在根目录下,将/lib64移走了。结果最简单的ls/cd命令都用不了。
于是在另外一台机器上同样操作,果然复现了。
当然,吾讲过,多做多错,这是没法避免的。关键在于,要不断的吸取教训,不要犯同样错误。
网上找到一个办法:
编译hadoop 2.7.3时需要protobuf,centos6.5 直接用yum安装的版本太低,无法完成编译。于是从我本地ubuntu环境传了个高版本的过去,然后发现/lib64/libc.so.6版本也太低,一时脑抽竟然想直接用我本地的替换掉这个库,于是把其链接指向的libc-2.12.so给重命名了。然后可怕的事情发生了,执行所有命令都报/libc.so.6错误,再开ssh也连不上了,直接报链接重置!!!幸好还有一个执行那个脑抽命令的连接还是可用的,网上搜下下报的错,找到一个紧急救助的办法
[plain] view plain copy
LD_PRELOAD=/usr/lib64/libc-2.12.so_bak mv /usr/lib64/libc-2.12.so_bak /usr/lib64/libc-2.12.so
LD_PRELOAD=/usr/lib64/libc-2.12.so ln -bs /usr/lib64/libc-2.12.so /usr/lib64/libc.so.6
LD_PRELOAD用来在搜索系统库前加载制定库,可以临时把libc.so库挂上让命令不报错。执行完成后所有命令又恢复正常了。
怕以后忘了,记录一下