debian 上有个程序一直没运行起来,库调用有问题,没找到解决办法,看到这个帖子,就试了试,在/etc/ld.so.conf.d文件夹里添加了第三方程序自己的libs路径,然后lgconfig,更新了etc/ld.so.cache这个文件,当时没什么事,可重启开机就悲剧了,因为我自己自己添加的第三方程序libs还依赖其他库,但这些被依赖的库,系统太老,找不到,然后就报错,启动不了,/sbin/init 启动报错。使用liveCD进去看了看,cat /etc/ld.so.cache |grep netease.显示出了我添加的libs路径,感觉可以使用sed命令删除带有关键词的行,先备份文件,然后sed命令如下
cp ld.so.cache ld.so.cache.bak
sed -i '/netease/d' /etc/ld.so.cache #netease 关键字
unmount重启,可正常开机进入系统!但可能会有其他问题,所以进入系统后,bak文件改回/etc/ld.so.cache,然后执行ldconfig,恢复系统默认。
root@debian99:/etc# mv ld.so.cache.bak ld.so.cache
root@debian99:/etc# ldconfig
root@debian99:/etc# cat ld.so.cache |grep netease
sed编辑文件常用命令:
1、删除空行
命令:sed "/^$/d"
2、删除匹配上模式的行
命令:sed -i "/pattern/d" log.txt,比如:sed -i "/npm/d" log.txt,可以删除带有npm的行