如何在 Debian 中可靠地“持有”一个软件包?

jrd*_*oko 15 aptitude debian dpkg apt package-management

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

  • apt-pinning(见apt_preferences(5)
  • aptitude hold
  • dpkg --set-selections
  • 设置它dselect

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

sca*_*cai 8

aptitude并且dpkg具有单独的保持功能,不幸的是,它们不会相互尊重。因此,如果您同时使用这两种工具,则必须同时设置:

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

资质: aptitude hold $PACKETNAME

  • 根据 https://help.ubuntu.com/community/PinningHowto#Introduction_to_Holding_Packages,现在似乎有 `apt-mark hold`,它与 `dpkg --set-selections` 做同样的事情。 (4认同)

Sha*_*dur 0

据我所知,aptitude hold <package>除非您明确命令升级(例如当光标位于 aptitude 中的“可升级包”字段上时点击 +),否则其他人会很荣幸。

  • 看来这不是真的,请参阅上面的评论。 (3认同)