意外删除/usr/lib/*.so.*

Modified on: Thu, 14 Jun 2018 11:15:53 +0800

当我安装MRTG时,我错误地删除了/usr/lib/*.so.*/usr/lib/*.so

我现在无法启动我的系统,它在启动屏幕上卡住了,当我按下PAGEDOWN按钮时,我发现有几件事情无法加载。

然而,DHCP和WebMin正在运行,而且从Webmin我可以看到系统日志,它告诉我没有加载cups,因为libpipeline.so.1缺少,还有其他几个。

我的电脑正在运行11.04

作者:jrg,Ahsan

最佳答案

由于您只删除了/usr/lib/*而不是/lib/*,因此您可以恢复。我认为你需要恢复系统的所有程序都只使用/usr/lib中的库。

引导至文本登录提示。如果正常启动在文本模式下没有提供login:提示符,则仅使用最少的服务启动。当您的计算机开始显示Grub提示时,按住 Shift ;你需要在BIOS初始化键盘之后但在加载Grub之前按下键,这在一些机器上只留下一个小时间窗口,可能需要多次尝试。在Grub提示符下,按 Down 突出显示单用户模式启动项并启动它。

获得命令行后,运行apt-get --reinstall install PACKAGE1 PACKAGE2 …以重新安装包含/usr/lib中文件的软件包。您可以运行此shell片段以获取要重新安装的软件包名称列表:

egrep -l '/usr/lib/[^/]*\.so\.' /var/lib/dpkg/info/a*.list |
sed -e 's!^/var/lib/dpkg/info/!!' -e 's!\.list$!!'

某些软件包安装脚本可能需要存在其他软件包中的库,因此您可能需要按特定顺序运行重新安装。如果您发现软件包的安装脚本正在尝试使用特定程序,您可以使用ldd找出该程序需要哪些库。例如,这表明python缺少需要重新安装的三个库:

$ ldd /usr/bin/python | grep 'not found'
    libssl.so.0.9.8 => not found
    libcrypto.so.0.9.8 => not found
    libz.so.1 => not found

dpkg -S /usr/lib/libz.so.1显示该文件来自zlib1g,依此类推。

如果您发现apt-get无法下载软件包,请先从Live CD下载一些密钥软件包。 zlib1glibssl0.9.8是您很早就需要的两个软件包。

作者:Gilles

相关问答

添加新评论