如何强制 apt/apt-get 更新到包服务器上的最新版本而不指定版本?

如何强制 apt/apt-get 更新到包服务器上的最新版本而不指定版本?

如何强制 apt/apt-get 更新到软件包服务器上可用的软件包的最新版本,即使这意味着降级,但不指定我想要安装的版本。

例如,我foo_0.2在本地安装了,而服务器上只有foo_0.1。在这种情况下,我想要foo_0.1安装。

我知道我可以通过手动找出软件包服务器上可用的版本,apt policy foo然后运行apt install foo=0.1
但是是否有一个命令可以只安装软件包服务器上的最新版本,而无需我明确指定版本?

注意:在如何通过 apt-get 降级软件包?,但是这里的问题是关于在不手动指定版本的情况下降级。

答案1

您可以尝试使用apt_preferences来完成此操作。

例如,如果包含foo包的“包服务器”是,archive.ubuntu.com那么您可以为该服务器配置首选项

cat <<EOF > /etc/apt/preferences.d/50my
Package: *
Pin: origin archive.ubuntu.com
Pin-Priority: 1001
EOF

Pin-Priority值必须是1000或更高。从apt_preferences 手册页

   P >= 1000
       causes a version to be installed even if this constitutes a downgrade of the package

如果您要运行apt-get install foo,则应降级该foo包,而不必指定特定的版本。

我还没有测试过这个设置来验证它是否有效。

相关内容