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

Ahs*_*san 9 dhcp webmin

当我安装MRTG,误我已删除/usr/lib/*.so.*/usr/lib/*.so

我现在无法启动我的系统,它卡在启动屏幕上,当我按下 PAGEDOWN 按钮时,我可以看到有几项无法加载。

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

我的电脑运行的是 11.04

Oli*_*Oli 10

您可以花一周时间查找丢失的所有内容,也可以花一个小时从 CD 重新安装,然后取回所有旧软件包。

我建议您先启动到 LiveCD 环境以先备份内容(将它们复制到外部 USB 驱动器或其他分区),然后重新启动。

  • 确切地说,如果您不重新安装所有内容,您可能会在*个月*之后出现奇怪的故障、崩溃等。 (2认同)

Gil*_*il' 5

由于您只删除了 ,/usr/lib/*而没有删除,因此/lib/*您可能可以恢复。我认为恢复系统所需的所有程序都只使用/usr/lib.

引导至文本登录提示。如果正常启动login:在文本模式下没有给您提示,请仅使用最少的服务启动。Shift当您的计算机开始显示 Grub 提示时按住;您需要在 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$!!'
Run Code Online (Sandbox Code Playgroud)

某些软件包安装脚本可能需要存在其他软件包中的库,因此您可能需要按特定顺序运行重新安装。如果您发现某个软件包的安装脚本正在尝试使用特定程序,您可以使用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
Run Code Online (Sandbox Code Playgroud)

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

如果您发现apt-get无法下载软件包,请先从 Live CD 下载几个关键软件包。zlib1g并且libssl0.9.8是您很可能在早期就需要的两个软件包。