是否有可能阻止所需软件包的安装?

是否有可能阻止所需软件包的安装?

如果您安装的程序依赖于一些尚未安装的其他软件包,则会apt-get自动安装这些依赖项。在几乎所有情况下,这都是所需的行为。

但是有时我会遇到这样的情况,我不想安装一个标记为必需的包,但是这个包对于使用我真正想要安装的程序来说并不是真正需要的。

例子:

  • 我想安装该程序logwatch
  • logwatch软件包依赖于邮件传输代理 (MTA) 的安装
  • logwatch无需 MTA 即可使用
  • 我不想安装 MTA

我知道我可以从源代码安装程序。但我想知道是否apt-get 提供了一种方法来阻止依赖项的安装(而不会破坏整个包管理系统)。

答案1

我认为,如果不以某种方式侵入包管理系统,这是不可能的。

原因是logwatch声明postfix,或者mail-transport-agent作为依赖性,而不是作为推荐。如果该包在没有 MTA 的情况下也能工作,那么这种强依赖性可能是一个错误。

通过安装也无法解决,因为被忽略的依赖项会在下次操作dpkg时继续弹出。apt-get

一种可能的方法是下载并修改软件包以删除冒犯依赖关系。这并不难实现,但如果你感兴趣的话,我会给你详细说明。

答案2

我还没有尝试过这个logwatch,但通常忽略依赖关系是这样的:

sudo dpkg -i --ignore-depends=postfix the_package.deb

apt据我所知没有其他方法可以做到这一点。

编辑:恩佐替布是正确的,apt稍后会抱怨缺少依赖项。apt-pinning或者改变包中的依赖项deb可能是更好的方法。

相关内容