如何将 apt 包降级到存档中的版本?

use*_*032 4 ubuntu debian apt

我刚刚注意到,在 ubuntu 20.04 上,focal-proposed 存储库包含在我的 sources.list 中,尽管这似乎并不推荐。禁用后,命令

apt-show-versions | grep newer
Run Code Online (Sandbox Code Playgroud)

显示了大约 30 个软件包,其安装版本比存储库中的版本更新。有没有一种简单的方法可以将它们全部降级到可用版本?

Ste*_*art 5

在这里写了一个类似的答案

为此,首先删除带有focal-proposedfrom/etc/apt/sources.list和 的所有行/etc/apt/sources.list.d/*

其次,我们将告诉 apt 允许降级。这意味着 pinning focalfocal-updates并且focal-security优先级高于 1000。/etc/apt/preferences.d/focal使用以下内容创建:

Package: *
Pin: release n=focal
Pin-Priority: 1001

Package: *
Pin: release n=focal-updates
Pin-Priority: 1002

Package: *
Pin: release n=focal-security
Pin-Priority: 1003
Run Code Online (Sandbox Code Playgroud)

如果您不使用focal-updatesfocal-security跳过这些部分。

第三,运行以下命令:

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt --fix-broken install
sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)

并在这些命令之间不断循环,直到一切稳定。

最后,删除/etc/apt/preferences.d/focal


或者,您可以直接删除focal-proposed. 这些包最终会focal-updates在它们通过测试时迁移到,并且您将再次同步。

随着你的小三角,--fix-broken installautoremove可能不会neccessary,但apt会告诉你,当你阅读上述命令的输出。


对于遇到此帖子的任何其他人: 不支持降级。任何大幅降级都可能失败。这是一个非常微不足道的案例,但从focalbionic可能会是一场灾难,并让您的系统损坏。