- 手贱升级了nodejs后,运行npm报错找不到libicuu.so.67
sudo pacman -Sy nodejs
- 发现icu这个包管理该库文件,而该库文件的版本是libicuu.so.65,于是再次手贱升级了icu,把库文件从libicuu.so.65升级到了libicuu.so.67,nodjs不报错了(笑)
sudo pacman -Sy icu
-
结果导致电脑重启后图形界面无法打开,但是tty可以打开,猜测是lightdm启动失败,心态爆炸
-
制作manjaro u盘启动盘,在u盘系统中重新挂载linux系统
manjaro-chroot -a
-
查询lightdm日志(/var/log/lightdm),发现日志文件seat中报错:无法找到libicuu.so.65 (想抽自己一巴掌)
-
由于pacman cache的缓存中还有旧版本的icu包,使用pacman恢复(幸好没再次手贱把pacman的缓存清空。。)
ls /var/cache/pacman/pkg | grep icu # 查找旧版本包
sudo pacman -U /var/cache/pacman/pkg/旧版本icu的包名称.tar.gz # 恢复原版icu包
- 恢复了库文件版本后,重启系统,发现图形节目恢复正常
教训
对于找不到库文件的错误,请不要随意升级相关的包从而升级库文件来解决问题,可能导致系统程序失去对原来库文件的依赖,从而无法启动系统