阻止 APT 中的软件包被卸载

阻止 APT 中的软件包被卸载

简而言之,我希望能够设置包abc以便:

  1. apt-get remove abc应该失败。
  2. apt-get purge abc应该失败。
  3. apt-get upgrade abc应该管用。

如果包依赖项发生变化,那么abc应该在卸载期间将其卸载,dist-upgrade我很高兴被迫再次执行某些操作dist-upgrade

答え1

实际上没有什么可以“固定”软件包来防止删除,但允许升级。

你可以在一个包中敲入一个钉子,不能被删除、清除、升级、舔,任何东西......

但这比大多数事情要复杂一点。

例如,我们希望固定 firefox:(当然,您可以使用包的正确全名)

echo firefox hold | dpkg --set-selections

这将使'火狐浏览器’不朽。 ,在此状态下也无法升级。

删除保持状态要容易一些,但这是一种扫荡手势:

dpkg --clear-selections

删除一切的保留状态!所以如果你想保留几个包裹,你最好保留一份清单以便稍后重新申请

它实际上非常令人愉快并且易于使用资质或者突触,因为他们有菜单选项来保留/取消保留包裹,为您处理幕后的所有簿记工作。我建议使用其中之一(或您可能遇到的无数其他包管理器中的任何一个)

使用 Aptitude,也可以使用命令行:

aptitude hold <package>
aptitude unhold <package>

但请记住,您需要'松开' 如果想要升级的话。尽管如果您使用 Aptitude 的 GUI 端,它应该会告诉您所持有的内容是否可以升级

関連情報