我刚刚注意到,在 ubuntu 20.04 上,focal-proposed 存储库包含在我的 sources.list 中,尽管这似乎并不推荐。禁用后,命令
apt-show-versions | grep newer
Run Code Online (Sandbox Code Playgroud)
显示了大约 30 个软件包,其安装版本比存储库中的版本更新。有没有一种简单的方法可以将它们全部降级到可用版本?
为此,首先删除带有focal-proposedfrom/etc/apt/sources.list和 的所有行/etc/apt/sources.list.d/*。
其次,我们将告诉 apt 允许降级。这意味着 pinning focal,focal-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-updates或focal-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 install并autoremove可能不会neccessary,但apt会告诉你,当你阅读上述命令的输出。
对于遇到此帖子的任何其他人: 不支持降级。任何大幅降级都可能失败。这是一个非常微不足道的案例,但从focal到bionic可能会是一场灾难,并让您的系统损坏。