尝试从 Ubuntu 18.04 升级到 18.10 时出错:“请在升级前为您的版本安装所有可用更新。”

dup*_*ont 52 upgrade 18.10

在联想笔记本电脑上,我想从Ubuntu 18.04升级到Ubuntu 18.10 (budgie)

当我在更新管理器上选择升级时,对话框消失,没有任何反应。升级未开始。

注意 - 我今天早上在我的另一台笔记本电脑上经历了同样的过程,Ubuntu 成功升级。

do-release-upgrade 升级失败并抛出此错误:

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

我该怎么做才能成功升级系统?

Cir*_*郝海东 61

支持从 LTS 升级到非 LTS 版本(20.04 到 20.10、18.04 到 18.10)

在 20.04 上,他们为失败添加了更清晰的消息sudo do-release-upgrade

Checking for a new Ubuntu release
There is no development version of an LTS available.
To upgrade to the latest non-LTS develoment release 
set Prompt=normal in /etc/update-manager/release-upgrades.
Run Code Online (Sandbox Code Playgroud)

以前,例如从 18.04 到 18.10,它有时只是给出 OP 报告的不清楚的错误消息:

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

解决这两个问题的方法是:

software-properties-gtk
Run Code Online (Sandbox Code Playgroud)

或通过它命名的 Windows 键破折号访问它:

软件和更新

然后:

  • “更新”选项卡
  • “通知我有新的 Ubuntu 版本”下拉菜单
  • “对于任何新版本”

在此处输入图片说明

TODO 如何仅从命令行执行此操作?

然后像往常一样:

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

没有For any new version设置,它无法找到新版本:

No new release found.
Run Code Online (Sandbox Code Playgroud)

出于某种原因,apt-get错过了一次升级,我得到了:

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

apt工作。

19.10 到 20.04:手动安装任何没有自动升级的包

我在尝试从 19.10 升级到 20.04 时遇到了这个问题,它有相同的Please install all available updates for your release before upgrading错误消息,所以我也会在这里为 Google 员工提供解决方案。

当我尝试通常的方法时:

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

sudo apt upgrade 告诉我:

The following packages have been kept back:
  libomp-dev
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Run Code Online (Sandbox Code Playgroud)

然后do-release-upgrade给出了Please install all available updates for your release before upgrading.错误。

解决方案是手动安装libomp-dev

sudo apt install libomp-dev
Run Code Online (Sandbox Code Playgroud)

这给了我一些解决冲突的选项,我选择了其中之一,然后do-release-upgrade工作了!

sudo apt upgrade libomp-dev没有工作,只是apt install做了,upgrade失败了:

The following packages have unmet dependencies:
 libomp-dev : Depends: libomp-9-dev (>= 9~) but it is not going to be installed
E: Broken packages
Run Code Online (Sandbox Code Playgroud)

do-release-upgrade -d 启用开发版本,这不是您通常想要的

我建议不要,do-release-upgrade -d除非你真的知道你在做什么,因为升级到不稳定的开发版本,这不是大多数用户想要的。

升级仅在 ISO 发布后的几天/几周内可用

另外需要注意的是,升级并不是在18.10盘出来的同时发布的,看来要等几天18.10.1发布才能升级。

如果您sudo do-release-upgrade在此之前尝试,您仍然会得到:

No new release found.
Run Code Online (Sandbox Code Playgroud)

“.0” ISO 通常也更容易出错。例如,当我尝试 21.04 ISO 时,UI 随机崩溃可能是由于 Wayland:Ubuntu UI 屏幕图像在全新 21.04 安装后在使用过程中随机冻结,怀疑是 Wayland 或 Nouveau

  • +1 最后关于使用 `apt` 而不是 `apt-get` 的注释正是我所需要的。 (11认同)
  • `sudo apt update` 表示一个可升级的包,并建议 `apt list --upgradable` 查看它。有问题的包是“virtualenvwrapper”。然后我使用 `sudo apt install virtualenvwrapper` 进行升级。那为我解决了这个问题。 (4认同)
  • 有趣的是,我发现自己遇到了相反的问题,`apt` 给了我全部清除,但 `apt-get` 显示了一个被阻止的包。 (2认同)

Szy*_*ski 12

从 18.10 升级到 19.04 时,我遇到了同样的问题。就我而言,原因是我将一些包标记为kept back. 在这种情况下,它们与 MSSQL 相关。

szymon@szymon-Lenovo-Z580:~$ sudo apt upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libodbc1 unixodbc
0 to upgrade, 0 to newly install, 0 to remove and 2 not to upgrade.
Run Code Online (Sandbox Code Playgroud)

我只是将它们连同它们的依赖项一起删除了:

szymon@szymon-Lenovo-Z580:~$ sudo apt remove unixodbc libodbc1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  odbcinst odbcinst1debian2
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED
freetds-bin libodbc1 msodbcsql17 mssql-tools unixodbc
Run Code Online (Sandbox Code Playgroud)

然后以下命令序列使我成功升级:

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

编辑:后来我找到了迈克尔对类似问题的详细回答,这可能有助于实现相同的目标。

  • 啊,是的,这有效。事实证明,只有在升级电脑上的所有软件包后,升级才会生效。我想这是一种预防升级问题的预防措施,这是有意义的 - 对我来说,删除 Wine/升级它解决了这个问题 (3认同)

Sim*_*mon 10

安装所有更新,然后通过终端执行系统升级,应该可以:

sudo apt-get update && sudo apt-get upgrade
sudo apt dist-upgrade
sudo do-release-upgrade
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`-d` 升级到开发版本,对于大多数用户来说可能是一个坏主意,请查看此选项:https://askubuntu.com/questions/1085295/upgrade-form-18-04- to-18-10-issue/1100915#1100915 (9认同)
  • 在做`do-release-upgrade`之前也需要调用`apt dist-upgrade` (8认同)
  • 即使进行 dist-upgrade,它仍然给我错误“请在升级前为您的版本安装所有可用更新。” (4认同)

mah*_*off 5

我遇到了一些 Wine 包的“保留”问题,但不需要它们,所以只需apt-get remove (packages)执行apt-get autoremove,它就解决了问题。