2.6.4. 使用 dpkg 命令进行救援

因为 dpkg 是非常底层的软件包工具,它可以在很糟糕的情况下进行工作,例如无法启动系统且没有网络连接。让我们假定 foo 软件包损坏了,并且需要更换。

你可以在软件包缓存目录:“/var/cache/apt/archives/” 中找到旧的 foo 软件包的无 bug 版本。(如果找不到,你可以从档案库 https://snapshot.debian.org/ 中下载它,或从具有软件包缓存功能的机器中拷贝它。)

如果你能够启动系统,你可以通过下列命令来安装它。

  1. # dpkg -i /path/to/foo_<old_version>_<arch>.deb
[提示]提示

如果你系统损坏较小,你也可以使用更高层的 APT 系统来降级整个系统,就像 第 2.7.10 节 “紧急降级” 中做的那样。

如果你的系统无法从硬盘启动,你应该寻找其它方式来启动它。

  1. 使用 Debian 安装光盘以救援模式启动系统。

  2. 将硬盘上无法启动的系统挂载到 “/target”。

  3. 通过下列命令安装旧版本的 foo 软件包。

  1. # dpkg --root /target -i /path/to/foo_<old_version>_<arch>.deb

即使位于硬盘上的 dpkg 命令已损坏,该命令依旧可以执行。

[提示]提示

任何由硬盘、live GNU/Linux CD、可启动的 USB 驱动或网络启动上的另一系统启动的 GNU/Linux 系统到可以类似地用来救援损坏的系统。

如果由于依赖问题,无法用这种方式安装软件包,并且你真的必须真么做,你可以使用 dpkg 的 “--ignore-depends”、“--force-depends” 和其它选项来无视依赖。如果你这么做了,之后你必须认真努力地修复依赖关系。更多细节参见 dpkg(8)。

[注意]注意

如果你的系统严重损坏了,你应该将系统完整备份到一个安全的地方(参见 第 10.2 节 “备份和恢复”)并进行一次全新的安装。这是耗时较少且效果较好的办法。