尽管依赖项不同,但自动升级某些包

尽管依赖项不同,但自动升级某些包

基本上,我想定期升级约 100 个工作站。我确实只需要自动升级特定的软件包(其余的可以根据需要手动完成),但由于机器从未处于标准更新周期,它们都有不同的版本和依赖项,我不能只是apt-get upgrade package-x package-y package-z.

我原本apt-get -y dist-upgrade以为 cron 作业会起作用,但我担心升级到某些特定其他软件包(例如 systemd)的损坏版本。我可以使用apt-mark hold package-a来阻止它升级,但我被告知会dist-upgrade覆盖所有保留标记。

在具有不同依赖关系的多台计算机上升级某些包,同时避免升级某些其他包的最佳方法是什么?

答案1

我认为dist-upgrade覆盖不成立...

无论如何,要仅升级您关心的软件包,请安装它们:

apt-get install package-a package-b ...

这会将指定的包升级到给定您的设置的候选版本(通常是您的版本中的最新版本)以及任何必需的依赖项。尽管该命令的名称如此,但它适用于安装和升级。

如果您正在跟踪稳定版本,我不会担心忽略更新,您应该升级所有内容。unattended-upgrades旨在为您处理这一问题(默认情况下用于安全升级,但您可以将其配置为自动获取稳定更新)。

答案2

apt-mark hold应该会阻止所需的软件包被升级。

有很多方法可以阻止某些软件包升级(2 个示例):

1) 将包添加到您的并/etc/apt/preferences 具有引脚优先级<0

Package: package_name_here
Pin: release o=Debian
Pin-Priority: -1

2) 使用 Synaptic 包管理器,选择所需的包,然后从菜单选项中选择 锁定版本并保存

相关内容