起因
升级glibc版本后,apt、gdb等不能使用,报version `GLIBC_2.34’ not found,于是在硬盘上搜了一个包含GLIBC_2.34版本的libc.so.6,去替换原来的文件,但是手误,在普通用户下将libc.so.6改为了libc.so.6.bak,于是sudo su cp mv 等一系列依赖于glibc的命令全部不能使用了 呜呜呜~~~
解决方案
网上搜索的解决方案汇集如下:
1、通过设置LD_PRELOAD环境变量,使用指定的libc.so.6
LD_PRELOAD=/lib/libc-2.12.so ln -s /lib/libc-2.12.so /lib/libc.so.6
***其中的文件路径需要根据真实路径修改
但是,该方法仅限当前在root权限下
2、使用liveCD修改文件
我是在vmware里安装的镜像,在虚拟机中指定一个CD镜像(这个镜像版本不用与安装版本一致),保存
重新启动客户机,在vmware启动界面,按ESC进入Boot menu(注意鼠标要在虚拟机里,否则今进不去),选择CD_ROM Drive
进入到ubuntu的安装引导程序,选择try ubuntu,就是启动liveCD的体验版本,而非安装
在命令行中挂载硬盘,我这里是/dev/sdb1
mount /dev/sdb1 /mnt
mv /mnt/lib/libc.so.6.bak /mnt/lib/libc.so.6
sync
修改完毕,重启,问题修复
3、重装或者快照