如何可靠地“保留” Debian中的软件包?


15

我在Debian中有一个已手动修补的软件包(我知道这不是理想的),我必须保持其当前版本,以便升级不会覆盖已修补的更改(我将手动检查并应用安全更新)。据我了解,有几种方法可以解决此问题:

  • apt固定(请参阅apt_preferences(5)
  • aptitude hold
  • dpkg --set-selections
  • 设置dselect吗?

我已经读过一个保留不会影响另一保留(例如,使用aptitude hold不会阻止apt-getdselect升级软件包)。需要采取什么措施才能100%确保Debian的工具除非取消保留就永远不会升级软件包?


1
只是一个评论,在9年前,有人在Debian的错误系统中创建了一个关于如何真正容纳软件包的错误,并且似乎存在(或曾经)使用aptitude hold(链接:bugs.debian.org/cgi-bin/ bugreport.cgi?bug = 146207
Luciano Facchinelli

1
有人会是我。:-)。仍然是一个开放的错误,尽管最近恢复了才能的人说他们会看一下。
Faheem Mitha 2012年

1
丹尼尔·哈特维格(Daniel Hartwig)告诉我:“自从我开始研究智能以来,就意识到这个问题。目前,我还没有对它进行透彻的了解,因为我一直专注于多架构的工作。它的年龄和重要性确实令人生畏。我要说的还有一个问题,即在启动时aptitude会“解释” dpkg状态,以确定什么(如果有)更改以及如何将其合并到内部状态模型中。请确保不要单独更改此状态- -在查看代码的相关区域时,我始终牢记这一点。”
Faheem Mitha 2012年

1
据说bugs.debian.org/146207已在aptitude上载到不稳定的版本中得到修复。
Faheem Mitha 2015年

Answers:


8

aptitudedpkg有独立的保持,不会尊重对方,可惜功能。因此,如果同时使用两种工具,则必须同时设置两者:

apt / dpkg: echo $PACKETNAME hold | dpkg --set-selections

资质: aptitude hold $PACKETNAME


3
apt-mark hold根据help.ubuntu.com/community/…看来,现在有哪些功能与相同dpkg --set-selections
andyg0808'7

3

在这种特殊情况下(修补程序包),更好的方法是在中安装修补程序版本/usr/local。Debian不会碰那个。


0

据我所知,aptitude hold <package>除非您明确命令将其升级(例如,当光标位于aptitude中的“ upgradeable packages”字段上时按+),否则其他人将对此表示敬意。


3
看起来不正确,请参见上面的评论。
jrdioko 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.