是否可以防止安装所需的包装?
如果您安装的程序依赖于许多未安装的其他软件包,那么apt-get
自动安装这些依赖项。 在所有情况下,这都是理想的行为。
但偶尔我有一个案例,我不想安装一个标记为必需的包,但实际上并不需要使用我想要安装的程序。
例:
- 我想安装程序
logwatch
-
logwatch
包依赖于邮件传输代理(MTA)的安装 -
logwatch
可以在没有MTA的情况下使用 - 我不想安装MTA
我知道我可以从源代码安装程序。 但我想知道apt-get
提供了一种防止依赖安装的方法(不破坏整个包管理系统)。
我认为,如果不以某种方式进入软件包管理系统,就不可能实现。
原因是logwatch
postfix
或者mail-transport-agent
声明为依赖项 ,而不是推荐 。 如果包没有MTA也可以工作,这种强烈的依赖可能是一个错误。
另外通过dpkg
安装也无法解决,因为忽略的依赖关系将继续在下一个apt-get
操作中弹出。
可能的方法是下载和修改程序包以删除违规依赖项。 这并不难实现,但如果你有兴趣我会详细说明。
我没有在logwatch
本身上尝试这个,但通常忽略依赖关系是这样做的:
sudo dpkg -i --ignore-depends=postfix the_package.deb
我知道,没有办法做到这一点。
编辑: enzotib是对的, apt
会在缺失依赖的后期抱怨。 Apt-pinning或更改deb
包中的依赖项可能是更好的方法。