当前位置: 首页>>技术教程>>正文


apt – 意外卸载大量软件包后,Ubuntu 系统崩溃

,

问题描述

我意外地删除了所有以名称 jpeg 开头的软件包:

sudo apt-get remove jpeg*

这搞砸了很多事情,删除了 Unity、Firefox、Flash 播放器等。

我设法恢复了桌面和 Unity,但很多东西仍然有问题。例如 .rpm 文件和 .tag.gz 根本无法打开。

我想要的是一种可以修复所有问题的方法。相当于 Windows 光盘上的 ‘repair installation’。

有人有什么建议吗?

最佳回答

您可以安装 ubuntu-desktop 任务:

sudo apt-get install ubuntu-desktop^

这将安装您已删除的标准 Ubuntu 桌面的所有软件包。它不会恢复您已安装的不属于标准桌面的软件包(即它将重新安装 Unity 和 Firefox,但不会重新安装 Flash Player)。

要安装这些软件包,您可以查看 /var/log/apt/history.log 并准确查看您删除的内容。

注意:安装 ubuntu-desktop^ 任务与安装 ubuntu-desktop 软件包不同。前者将为 APT 提供一些提示,以解决涉及虚拟软件包的依赖关系,后者将为 APT 提供选择软件包的自由(最终将安装 ubiquity 等无用的东西)。

为什么会出现此问题?apt-get remove jpeg* 不会删除所有以 jpeg 开头的软件包。相反,它将删除名称中包含 jpe 的所有软件包。这是因为 apt-get 使用正则表达式,因此 jpeg* 表示:所有包含 jpe 且后跟零个或多个 g 的软件包。

次佳回答

解决此问题的最佳方法可能是重新安装 Ubuntu。(即使您打算重新安装而不重新格式化,也应该先备份文档。)

如果您确实想尝试修复系统,请查看软件包管理器的日志文件以查看哪些软件包被删除,然后重新安装它们:

  • /var/log/dpkg.log(信息完整,但难以阅读)

  • /var/log/apt/history.log(缩写将告诉您每个被删除或修改的包 – 可能是您最好的选择)

  • /var/log/apt/term.log(如果您在终端中使用 apt-get 删除了软件包,这应该会显示您当时看到的内容,包括将要删除的软件包列表 – 所以这可能是最好的方法)

仅重新安装名称以 jpeg 开头的软件包是行不通的,因为许多(几乎肯定是大多数)被删除的软件包是因为它们依赖于这些软件包。

将来,我建议仔细检查卸载软件包的后果。如果您使用 命令行,您将始终收到通知。(除非您使用 -y 选项,在这种情况下通常不会收到通知。我建议不要使用该选项,除非您知道自己在做什么,尤其是对于删除。)

检查使用 apt-get 执行的包管理操作的后果而不冒风险的一种方法是运行 apt-get -s 而不是 sudo apt-get 。这仅模拟指定的操作,并报告哪些包会受到影响以及如何影响。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14511.html,未经允许,请勿转载。