首页

linux系统抢救(deepin22.x)续

早前deepin安装软件的时候报错,随后输入什么命令都出现“段错误”(Segmentation Fault)提示。重启电脑黑屏无法进入系统,解决方案是用u盘PE急救,利用diskgenius软件读取linux系统分区数据按日期排序删除出错那段时间新增的文件。后来发现是apt install安装软件后会执行ldconfig生成运行库缓存,其生成的缓存文件在/etc/ld.so.cache。问题在于因为库文件有错误导致生成的库缓存也有问题,直接后果就是除了echo命令几乎任何命令都会报错,重启系统直接黑屏。 因为rm命令、sudo、su等命令都不可用,文件管理器也无法打开,常规手段无法删除/etc/ld.so.cache,只能通过外部系统来删。但删除后问题并没有彻底解决。后来发现如果root权限的终端没有关闭的话可以通过echo '' > /etc/ld.so.cache 清空缓存文件来临时解决。反复排查以后知道是前段时间自行编译升级libc核心库的锅。最后通过删除删除 /usr/local/lib/ld-2.29.so及其他/usr/local/lib下跟2.29.so相关的库后重新执行ldconfig问题终于完美解决。 可是依赖高版本库的软件无法正常运行了,问了AI让我另外编译一份高版本库放在其他的目录,然后通过.sh文件每次运行的时候临时指定要运行的软件跑高版本库对应的目录。 linux设计哲学是所有软件共享libc库避免臃肿,问题在于不同软件需要的库版本差异很大而且可能不兼容,容易陷入依赖地狱。ubuntu为了解决这个问题强推snap,让各个软件自己带自己需要的依赖,被一些开发者喷臃肿。我觉得只要适合自己用就行,linux本就是自由的。
更多>>
服务器报 -bash: cannot create temp file for here-document: No space left on device laravel全局中间件 支付宝周期付款(alipay连续包月)入坑指南 centos7用yum命令的时候报错Peer's Certificate has expired html页面通信-postMessage