如何阻止 apt 在更新时卸载软件包

如何阻止 apt 在更新时卸载软件包

我在终端中使用 apt 来安装更新。当我使用apt-get -f install它时显示

0 upgraded, 7 newly installed, 428 to remove and 3 not upgraded.
4 not fully installed or removed.
Need to get 5691kB of archives.
After this operation, 451MB disk space will be freed.
Do you want to continue [Y/n]?

我不想删除 428 个软件包。这些与其他应用程序链接。 (有些包是Ruby1.8、Perl、python库等)。我应该如何安装 7 个软件包而不删除 428 个软件包。

答案1

然后您需要查看依赖项是什么。

发生这种情况的原因只有一个。您明确请求安装的软件包与大量其他软件包所依赖的软件包发生冲突。

换句话说,428 个包依赖于libfoo.无论您做了什么都会导致libfoo被卸载,因此所有其他软件包必须被卸载。

$20 表示您正在 Ubuntu 和其他东西之间混合存储库,或者您正在混合主要发行版本的存储库。您有 Debian、Mint 或 PPA 源吗?

答案2

使用 apt-pin

http://jaqque.sbih.org/kplug/apt-pinning.html

可能需要一些时间才能准确弄清楚哪个包具有所有这些依赖项,但如果您将其固定,其余部分将保留。

不过,您可能会发现使用 aptitude 来识别和固定它们更容易:

http://wiki.debian.org/Aptitude

答案3

您可以输入 $ apt-get Upgrade package1 package2 .. 其中 package1、package2 是 apt-get 要删除的所有软件包。如果列表很长,请将列表复制粘贴到文件中。在“apt-get Upgrade”之前加入要删除的所有软件包行并键入。保存并执行文件: $ . 。/文件

相关内容