APT保持指定的软件包不更新

检查可更新软件包:

1
2
sudo apt update
sudo apt list --upgradable

hold选项传递给apt mark命令, 将软件包标记为保留, 这将阻止软件包自动安装、升级或删除:

1
sudo apt-mark hold <package-name1> <package-name2> ...

显示所有保留状态的软件包:

1
apt-mark showhold

取消软件包的保留状态:

1
sudo apt-mark unhold <package-name1> <package-name2> ...

将软件包标记为保留:

1
echo "<package-name> hold" | sudo dpkg --set-selections

检查指定包的保留状态:

1
dpkg --get-selections | grep <package-name>

取消软件包的保留状态:

1
echo "<package-name> install" | sudo dpkg --set-selections

将软件包标记为保留:

1
sudo aptitude hold <package-name>

取消软件包的保留状态:

1
sudo aptitude unhold <package-name>

还可以阻止软件包升级到特定版本, 同时允许自动升级到未来版本, 即跳过某一版本的更新:

1
sudo aptitude forbid-version <package-name>=<version>

比如:

1
sudo aptitude forbid-version bash=5.0-6ubuntu1.1