阻止在 APT 中卸载软件包

Del*_*ted 10 apt

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

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

如果包依赖项发生变化,因此abc应该在dist-upgrade我很高兴被迫做某事然后dist-upgrade再次卸载。

lor*_*nix 5

并不是真的什么都可以“固定”软件包以防止删除,而是允许升级。

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

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

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

echo firefox hold | dpkg --set-selections
Run Code Online (Sandbox Code Playgroud)

这将使' firefox '不朽。 但是,在这种状态下也无法升级。

删除保持状态更容易一些,但它是一种彻底的手势:

dpkg --clear-selections
Run Code Online (Sandbox Code Playgroud)

从 EVERYTHING 中删除 HOLD 状态!所以如果你想保留几个包裹,你最好保留一个清单,以便以后重新申请

使用aptitudesynaptics执行实际上非常愉快和容易,因为它们有菜单选项来保存/打开包裹,为您处理幕后的所有簿记。我建议使用其中一个(或您可能遇到的无数其他包管理器中的任何一个)

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

aptitude hold <package>
aptitude unhold <package>
Run Code Online (Sandbox Code Playgroud)

但请记住,如果想要升级,您需要“取消持有”某些东西。虽然如果你使用 Aptitude 的 GUI 端,它应该告诉你所持有的东西是否可以升级

  • `apt-get` 将愉快地卸载保留的软件包。 (3认同)