防止 Debian 软件包被 Puppet 删除

防止 Debian 软件包被 Puppet 删除

有没有办法防止删除 Debian 软件包?我想防止任何“替换”和“中断”属性的解析,因为解析会导致删除该软件包,但可以对其进行升级。只要在完成所有操作后该软件包安装在任何版本中,一切都会正常。

我发现的唯一方法是暂停该软件包。这不是解决方案,因为运行升级需要事先取消暂停。

这是在 Puppet 环境中,因此在每种主机类型上手动检查每个可能的包匹配是不可能的。

语境:

如果您在打包过程中犯了一个错误,那么就会发生包需求链导致删除该服务器的基础包(网络、用户管理等)的情况。我知道这其中有很多不幸的情况,所以这种情况会发生,比如分别测试两个包,它们之间的竞争条件会把一切都搞砸。关键是要提供一个可能出错的下限。

给其他人的指引:

您可以使用以下某个 apt 选项,Puppet 会尊重这些选项:

~ $ cat /etc/apt/apt.conf.d/99neverremoveanything 
APT::Get::Remove "false";
APT::Get::Upgrade-Allow-New "true";

对于我自己来说,这些选项并不完全令人满意,因此这个问题没有得到解答,因为只有一些包裹真正需要这种保护。

您也可以使用此处提出的解决方案:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=767891

它涉及创建具有“优先级:必需”的元包,这些元包取决于您想要保护的包。

答案1

您可以使用文件 /etc/apt/preferences 类似...

程序包:<程序包名称>

密码:版本 1.0*

引脚优先级:10

它将阻止 < 包名称 > 更新到 1.0* 以上的版本。

参考:- https://wiki.debian.org/AptPreferences

相关内容