我最近遇到了以下情况:
- 我无法正常启动计算机。 (在引导加载程序和 Ubunutu 加载屏幕之后但在登录页面之前,我看到了一个闪烁的光标,但从未到达登录页面。)
- 我能够进入恢复模式。如果我完全继续启动,我可以到达一个终端,在那里我可以使用 apt-get 添加/删除任何软件包。
- 在完全启动进入恢复模式之前,我看到了一个菜单,其中一个选项是
dpkg
修复已安装的软件包。如果我选择了这个选项,系统计算出如果我重新安装103个软件包就可以进行修复。然而,在尝试下载软件包进行重新安装时,对该操作说“是”会遇到网络问题。 - 我能够通过查看提供修复的软件包列表来解决这种情况,然后通过使用“扔飞镖并祈祷”策略,我选择
sudo apt-get install --reinstall ubuntu-gnome-desktop
在完全进入恢复模式后根据提供的提示运行。这最终触发了 103 个软件包的重新安装。完成后,我就可以正常启动Ubuntu了。
我的问题是:
启动时我可以在命令提示符下输入什么命令来执行与dpkg
菜单选项相同的操作?
答案1
此功能由友好的恢复菜单,特别是其dpkg
插入(它添加了一个标题为“修复损坏的包”的菜单条目,以用户配置系统使用的任何语言进行了适当的翻译)。
该插件使用两种不同的方法来修复损坏的包:
如果
dist-upgrader
可用,它使用它来修复系统,通过运行env RELEASE_UPGRADER_NO_SCREEN=1 python3 /usr/lib/python3/dist-packages/DistUpgrade/dist-upgrade.py \ --partial --frontend DistUpgradeViewText \ --datadir /usr/share/ubuntu-release-upgrader
否则,它会运行
dpkg --configure -a apt-get update apt-get install -f apt-get dist-upgrade
要达到与菜单选择相同的效果,您应该尝试使用第一个命令dist-upgrader
,如果由于它不存在而失败,请运行以 开头的四个命令dpkg --configure -a
。
请注意,这两个选项不仅修复损坏的软件包,还将系统升级到安装的任何版本中可用的软件包的最新版本。 (这是必要的,因为修复损坏的软件包可能涉及安装丢失的软件包,并且只能使用配置的存储库中的当前版本的软件包来完成。)