问题描述
从手册页:
-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.
这令人困惑:
-
‘ignore missing’和’fix missing’如何成为同一选项的同义词?
-
在这种情况下,’hold back’意味着什么?
-
“处理结果”是什么意思?
在什么情况下它有用呢?当您尝试安装不在apt索引中的包时,您会收到以下消息:
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
这两个建议(apt-get update
,apt-get install --fix-missing...
)完全相同吗?
最佳解决思路
好的,按顺序:
-
(1)-m忽略缺失或修复丢失的包(与-f破坏的包相反)。这些选项是同一选项的同义词。 (因为修复它从这里忽略它需要它自己的怪异:-))
-
(2-3)使用
apt-get upgrade
或apt-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 --all
或dpkg
。