我在 Debian 中有一个已手动修补的软件包(我知道这并不理想),我必须保留其当前版本,以便升级不会覆盖已修补的更改(我将手动检查并应用安全更新)。据我了解,有几种方法可以解决这个问题:
- apt-pinning(参见
apt_preferences(5)
) aptitude hold
dpkg --set-selections
- 设置为
dselect
?
我读过,一个保留不会影响另一个(因此,例如,使用aptitude hold
不会阻止apt-get
或dselect
升级包)。需要做什么才能 100% 确保 Debian 的工具永远不会升级软件包,除非我取消保留?
答案1
aptitude
并dpkg
有单独的抓住不幸的是,这些功能不会互相尊重。因此,如果您使用这两种工具,则必须同时设置两者:
apt/dpkg:
echo $PACKETNAME hold | dpkg --set-selections
资质:
aptitude hold $PACKETNAME
答案2
在这种特殊情况(修补程序包)中,更好的方法可能是将修补版本安装在/usr/local
. Debian 不会碰这个。
答案3
据我所知,aptitude hold <package>
除非您明确命令升级(例如当光标位于 aptitude 中的“可升级包”字段上时点击 +),否则其他人会很荣幸。