如何从Apt-Get升级中排除升级某些软件包

时间:2019-05-19 01:26:02  来源:igfitidea点击:

有时,我们偶然升级包,而不是更新。
在完全更新或自动包升级过程中也会发生这种情况。
这在服务器上造成了严重的问题。
例如,在通过apt更新系统时,需要排除内核、PHP、MySQL和Apache包的更新。

保留或排除包

使用以下命令从更新中排除或保留特定的Debian包。
这将从自动升级或手动升级中关闭指定包的更新。
使用apt

sudo apt-mark hold package_name

使用dpkg

echo "package_name hold" | sudo dpkg --set-selections

使用aptitude

sudo aptitude hold package_name

列出状态为hold的包

你可以在任何时候检查那些被搁置的包。
使用以下命令查看已经设置为“hold”的所有包。

sudo dpkg --get-selections | grep "hold"

在安装中unhold或者包括软件包

以后,如果需要升级任何包,执行unhold。
我们需要在升级之前解除所有包。
使用以下命令之一来取消保存任何包。
使用apt

sudo apt-mark unhold package_name

使用dpkg

echo "package_name install" | sudo dpkg --set-selections

使用aptitude

sudo aptitude unhold package_name