我正在寻找一种方法来在我的 Debian 包中构建方向(例如,在control
文件中或其他地方),它将告诉apt-get install
我表现得好像我已经包含了--no-install-recommends
标志一样。
背景故事
我管理一个包 - 称之为foo
- 它明确依赖于其他三个包(顺便说一下,它们是libcuda1-340
、nvidia-340
和nvidia-opencl-icd-340
,如果知道这有帮助的话)。当我尝试foo
使用...安装时
apt-get install foo
...它最终会尝试安装一大堆我并不需要的软件包,而这实际上会损坏我的机器。我发现如果我这样做...
apt-get install --no-install-recommends foo
...它只安装了foo
三个显式依赖项,没有其他任何东西,这让我得到了我想要的最终结果。
完美的!
但问题是:我不能使用该--no-install-recommends
标志。
那是因为...
- 这
apt-get install
是由一个我无法控制的工具帮我完成的, - 该工具还
foo
为我安装了许多其他软件包,并且 - 我只想要
--no-install-depends
与包相关的行为foo
。在所有其他情况下,我也想引入依赖项。
问题:那么,我是否可以将一些指令放入包foo
的debian/control
文件中或其他地方,以便仅针对包实现这种行为foo
?
提前感谢您的指导。
史蒂夫
答案1
为了在我们的 Trusty LTS 服务器上完成同样的事情,我将这些放入 /etc/apt/apt.conf 中
APT::Install-Recommends "0";
同样,对于“建议”的软件包
APT::Install-Suggests "0";
答案2
使用“冲突”和/或“中断”控制字段列表来防止安装会导致中断的软件包。
包可以在其控制文件中声明它们与其他包具有某些关系 - 例如,它们可能不会与某些其他包同时安装,和/或它们依赖于其他包的存在。
这是使用依赖、预依赖、推荐、建议、增强、中断和冲突控制字段完成的。
这意味着您需要缩小软件包列表,只保留那些真正导致损坏的软件包。
作为打包者,您无法决定最终用户系统上的适当设置。