如何强制 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
包,而不必指定特定的版本。
我还没有测试过这个设置来验证它是否有效。