微信公众号:运维开发故事
作者:wanger
背景
公司环境有台机器硬盘故障,需要安装megacli工具进系统查看raid信息,在ubuntu20.04安装megacli解决依赖过程中失误将高版本的libtinfo包装系统上了,导致系统报glibc对应的版本没有找到,系统实际glibc的版本是2.31。
解决办法
如果系统的ssh没有断开,可以将原来版本的libtinfo文件删除,并重新软链接
cd /lib/x86_64-linux-gnu/
rm -rf libtinfo.so.6
ln -s libtinfo.so.6.2 libtinfo.so.6
但是很遗憾,ssh和接显示器都登录不到系统上了,单用户也进不去,安装的ubuntu server 20.04也没有live cd,不过好在ubuntu 20.04 desktop版本用的核心库版本和server是一样的,可以使用ubuntu 20.04 desktop做live CD
使用ubuntu 20.04 desktop 制作live CD修复
插入制作好的启动盘,选择try ubuntu without installing进入liveCD之后切换到root用户,将硬盘上的文件系统挂载到/mnt目录上
sudo -i
mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt
cd /mnt/lib/x86_64-linux-gnu
将原来版本的libtinfo文件删除,并重新软链接到6.2版本上去
rm -rf libtinfo.so.6
ln -s libtinfo.so.6.2 libtinfo.so.6
之后切换根目录为/mnt,使用绝对路径重新软链接一次
chroot /mnt
cd /lib/x86_64-linux-gnu
rm -rf libtinfo.so.6
ln -s /lib/x86_64-linux-gnu/libtinfo.so.6.2 /lib/x86_64-linux-gnu/libtinfo.so.6
exit
reboot
重启系统问题解决
以上是由于安装依赖版本问题导致glibc版本报错的解决办法和思路,如果各位还想了解更多关于Linux的知识,能看到这篇文章那可真是太巧了,运维开发故事今天有福利相送,抽四本《Linux从入门到应用部署实战》纸质书送给一直以来关注运维开发故事的朋友,书籍由北京理工大学出版社赞助,在此感谢北京理工大学出版社。
公众号:运维开发故事
github:https://github.com/orgs/sunsharing-note/dashboard
博客**:https://www.devopstory.cn**
爱生活,爱运维
我是wanger,《运维开发故事》公众号团队中的一员,一线运维农民工,云原生实践者,这里不仅有硬核的技术干货,还有我们对技术的思考和感悟,欢迎关注我们的公众号,期待和你一起成长!