apt-get –fix-missing做什么以及什么时候有用?

从手册页:

-m, --ignore-missing, --fix-missing Ignore missing packages; if packages cannot be retrieved or fail the integrity check after retrieval (corrupted package files), hold back those packages and handle the result. Use of this option together with -f may produce an error in some situations. If a package is selected for installation (particularly if it is mentioned on the command line) and it could not be downloaded then it will be silently held back. Configuration Item: APT::Get::Fix-Missing. 

这令人困惑:

  1. 如何“忽略失踪”和“修复失踪”是同一选项的同义词?
  2. 在这种情况下,“阻碍”意味着什么?
  3. “处理结果”是什么意思?

在什么情况下它还有用吗? 当您尝试安装不在apt索引中的包时,您会收到以下消息:

 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 

这两个建议( apt-get updateapt-get install --fix-missing...apt-get install --fix-missing...吗?

好的,按顺序:

  • (1) -m忽略缺失或修复丢失的包(与-f 破坏的包相反)。 这些选项是同一选项的同义词 。 (因为修复它从这里忽略它需要它自己的怪异 :-))
  • (2-3)当您使用apt-get upgradeapt-get install somepackage安装/升级时,通常会尝试更新依赖项。 这意味着它可能会发现某些软件包需要现有软件包的新版本或更新版本,依此类推。 如果其中一些软件包丢失或完整性检查失败,它似乎暂停此软件包,并希望您按照需求软件包的handle方法 处理结果,如果可能的话。 通常它会停止安装此软件包。
  • (4)使用apt-get update您可以下载重建依赖项列表所需的内容。
    之后,您可以再次尝试apt-get install --fix-missing ,希望更新的列表能够自行解决问题。
    这有时非常有用,例如在/etc/atp/sources.list添加包的源时,或者更新包索引文件时。

并非您在Ubuntu下可以使用的所有程序都来自官方的Ubuntu存储库,并且使用相同的版本进行更新 – 这种情况很少见。

此外,安装可能突然中断的原因有很多(终止信号,电源短缺,图形驱动程序故障……)在这些情况下, apt-get update可能无法正常工作,因此您首先需要修复apt-get install --fix-missing或一些dpkg命令的问题。

您可以看到apt-get install --fix-missing作为dpkg-reconfigure --alldpkg等命令的轻松友好版本。

以下步骤将解决此问题:

  • 更新/etc/resolve.confnameserver 8.8.8.8
  • 运行sudo apt-get update