apt-get --fix-missing有什么用?什么时候有用?


37

从手册页:

-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. 'ignore missing'和'fix missing'是同一个选项的同义词吗?
  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...)是否完全相等?


是的,这很奇怪。我一直认为那--fix-missing是的同义词-f。但是,其行为应与Synaptic相同:尝试仅更新下载的软件包。
Danatela 2014年

Answers:


34

好的,依次为:

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

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

此外,有很多原因,安装可突然中断(A终止信号,电力短缺,图形驱动程序的失败......)在这种情况下,apt-get update可能无法正常工作,所以你首先需要一起解决问题apt-get install --fix-missing或一些dpkg 命令。

您可以看到apt-get install --fix-missing诸如dpkg-reconfigure --all或的轻松友好版本的命令dpkg


36
人们对此表示强烈反对,但我对此一无所知。
LondonRob

-1

以下步骤将解决此问题:

  • 更新nameserver 8.8.8.8/etc/resolve.conf
  • sudo apt-get update
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.