由于“请在升级前为您的版本安装所有可用更新”错误,无法将 Ubuntu 18.04 升级到 20.04

Mod*_*Bro 26 updates do-release-upgrade 18.04 20.04

我一直在尝试将我的 Ubuntu 18.04 版本升级到 20.04。我已经运行了从更新和升级 apt 和 apt-get 到更改更新管理器中的设置以及此链接中描述的所有步骤的所有步骤。但是我不断收到错误消息:

Please install all available updates for your release before upgrading.
Run Code Online (Sandbox Code Playgroud)

尝试从 18.04 升级到 20.04 是否有什么特别之处导致此错误?我可能需要先更新到 19.04 吗?

编辑:我刚刚注意到一些可能很重要的东西。当我运行时,sudo apt-get update我在输出结束时收到以下通知:

The following packages have been kept back:
  colord gimagereader python-sane sane simple-scan
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Run Code Online (Sandbox Code Playgroud)

这可能是导致问题的原因吗?

小智 16

从 18.04 到 20.04 的序列

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove
sudo do-release-upgrade -d -f DistUpgradeViewGtk3
Run Code Online (Sandbox Code Playgroud)

按照屏幕上的说明进行操作。祝你好运!

  • 仍然无法安装更新版本 (10认同)
  • 这对我也不起作用。 (3认同)
  • 这对我来说不起作用,因为它与未升级的特定包相关。请参阅下面我的回答以获取通用解决方案。 (2认同)

pii*_*t79 14

我也遇到了同样的问题。但是,当我运行通常的升级命令 ( sudo apt upgrade, sudo apt full-upgrade, sudo apt-get dist-upgrade) 时,它们都报告说没有要升级的软件包,也没有保留的软件包

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)

最后我把文件复制/usr/bin/do-release-upgrade到我家,修改如下:

for pkg in upgradable:
    if 'Phased-Update-Percentage' in pkg.candidate.record:
        # P-U-P does not exist if it is fully phased
        continue
    else:
        install_count += 1
        print(pkg)   # <--- ADD THIS LINE
        # one upgradeable package is enough to stop the dist-upgrade
        # break      # <--- COMMENT THIS LINE OUT to get all packages
Run Code Online (Sandbox Code Playgroud)

此更改将打印需要升级的所有软件包的名称。

当我运行时sudo ~/do-release-upgrade,打印了来自外部存储库的包,该包有可用的更新,但较新的版本依赖于不可用的库,这导致包无法升级。

不过不知道为什么它没有被报告为not upgraded通过apt upgrade

编辑:以下代码片段可以在 Python 控制台中运行以列出所有可升级的包 - 感谢 @jferard!

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)

  • 为我工作。您还可以输入 Python3 REPL:` &gt;&gt;&gt; import apt &lt;return&gt; &gt;&gt;&gt; cache = apt.Cache() &lt;return&gt; &gt;&gt;&gt; cache.open() &lt;return&gt; &gt;&gt;&gt; [pkg ​​for pkg in cache if pkg.is_upgradable] ` 列出需要升级的软件包。 (3认同)
  • 太好了,这对我来说似乎是最好的答案,因为另一个答案仅与某些用户删除其陈旧软件包的特定环境有关。点赞 (2认同)
  • 这应该是公认的答案。 (2认同)

小智 7

问题是您的存储库未更新,因此您需要删除这五个存储库:colord gimagereader python-sane sane simple-scan

执行sudo add-apt-repository -r ppa:<ppa to remove>或编辑/etc/apt/sources.list以删除所有这些存储库。

然后你就可以运行update-manager


小智 6

刚刚取出酒sudo apt-get remove --auto-remove winehq-stable,重复使用后对我有用sudo do-release-upgrade


小智 5

首先在你的终端中:

sudo apt dist-upgrade
Run Code Online (Sandbox Code Playgroud)

然后你会得到

The following packages have been kept back:

  mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools

0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Run Code Online (Sandbox Code Playgroud)

您所要做的就是使用

sudo apt install <软件包名称>

结果会是这样的:

sudo apt install mongodb-org mongodb-org-mongos mongodb-org-server mongodb-org-tools
Run Code Online (Sandbox Code Playgroud)

最后,继续:

sudo do-release-upgrade
Run Code Online (Sandbox Code Playgroud)