在恢复模式下选择 dpkg 选项时运行什么命令?

在恢复模式下选择 dpkg 选项时运行什么命令?

我最近遇到了以下情况:

  • 我无法正常启动计算机。 (在引导加载程序和 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

请注意,这两个选项不仅修复损坏的软件包,还将系统升级到安装的任何版本中可用的软件包的最新版本。 (这是必要的,因为修复损坏的软件包可能涉及安装丢失的软件包,并且只能使用配置的存储库中的当前版本的软件包来完成。)

相关内容