我尝试使用 do-release-upgrade 将 Ubuntu 18.04 升级到 20.04,但在升级两个软件包时出现错误

我尝试使用 do-release-upgrade 将 Ubuntu 18.04 升级到 20.04,但在升级两个软件包时出现错误

昨晚我尝试使用以下命令从 Ubuntu 18.04.5 升级到 20.04

sudo do-release-upgrade.

当它提示我开始下载新软件包,并警告我一旦下载就无法停止时,我点击了详细信息以检查将被删除的软件包。进入详细信息屏幕后,我不知道如何退出以确认下载,所以我按了ctrl+c退出,然后sudo do-release-upgrade再次输入。但它给了我一个错误,说我必须在进行发布升级之前更新所有当前软件包。我运行

sudo apt update 
sudo apt upgrade

它显示了数千个需要升级的软件包。假设这就是升级到 20.04 所需的操作,我确认了升级,然后它开始下载和升级软件包。

升级到一半时,出现了错误,并且停止了升级。

我重试

sudo apt upgrade

但会出现同样的错误。

几分钟后,当我尝试打开软件和更新时,我自动退出,并且无法重新登录,因为它会将我踢回登录屏幕。

现在我开始用谷歌搜索这个问题,并本指南. 当做

sudo dpkg --configure -a

显示如下:

包装:依赖问题阻止了 libgles-dev:amd64 的配置:
 libgles-dev:amd64 依赖于 libgl-dev;然而:
  软件包 libgl-dev:amd64 未安装。

软件包:处理包 libgles-dev:amd64 (--configure) 时出错:
 依赖问题 - 未配置
软件包:依赖问题阻止了 libglvnd-dev:amd64 的配置:
 libglvnd-dev:amd64 依赖于 libgl-dev (>= 1.3.0-1);然而:
  软件包 libgl-dev:amd64 未安装。
 libglvnd-dev:amd64 依赖于 libgles-dev (>= 1.3.0-1);然而:
  软件包 libgles-dev:amd64 尚未配置。
 libglvnd-dev:amd64 依赖于 libglx-dev (>= 1.3.0-1);然而:
  软件包 libglx-dev:amd64 未安装。

软件包:处理包 libglvnd-dev:amd64 (--configure) 时出错:
 依赖问题 - 未配置
软件包:依赖问题阻止 libgl1-mesa-dev:amd64 的配置:
 libgl1-mesa-dev:amd64 依赖于 libgl-dev;但是:
  软件包 libgl-dev:amd64 未安装。
 libgl1-mesa-dev:amd64 依赖于 libglvnd-dev;但是:
  软件包 libglvnd-dev:amd64 尚未配置。

软件包:处理包 libgl1-mesa-dev:amd64 (--configure) 时出错:
 依赖问题 - 未配置
软件包:依赖问题阻碍了 libegl-dev:amd64 的配置:
 libegl-dev:amd64 依赖于 libgl-dev;但是:
  软件包 libgl-dev:amd64 未安装。

软件包:处理软件包 libegl-dev:amd64 (--configure) 时出错:
 依赖问题 - 未配置
软件包:依赖问题阻止了 libglvnd-core-dev:amd64 的配置:
 libglvnd-core-dev:amd64 依赖于 libglvnd-dev;但是:
  软件包 libglvnd-dev:amd64 尚未配置。

软件包:处理包 libglvnd-core-dev:amd64 (--configure) 时出错:
 依赖问题 - 未配置
软件包:依赖问题阻止了 libglu1-mesa-dev:amd64 的配置:
 libglu1-mesa-dev:amd64 依赖于 libgl1-mesa-dev | libgl-dev;然而:
  软件包 libgl1-mesa-dev:amd64 尚未配置。
  软件包 libgl-dev:amd64 未安装。

软件包:处理包 libglu1-mesa-dev:amd64 (--configure) 时出错:
 依赖问题 - 未配置
处理时遇到错误:
 libgles-dev:amd64
 libglvnd-dev:amd64
 libgl1-mesa-dev:amd64
 libegl-dev:amd64
 libglvnd-核心-dev:amd64
 libglu1-mesa-dev:amd64

但它修复了登录问题,所以我现在可以再次使用电脑了。但现在我仍然有无法升级到 20.04 的问题。而且似乎我的依赖项被破坏了。

当尝试

> sudo apt install -f 

我明白了

正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
纠正依赖关系...完成
以下软件包已自动安装并且不再需要:
  libcbor0.6 libdrm-dev libffi7:i386 libfido2-1 libglvnd-core-dev libpcre3:i386 libx11-xcb-dev
  libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0-dev
  libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxdamage-dev
  libxext-dev libxfixes-dev libxshmfence-dev libxxf86vm-dev mesa-common-dev x11proto-damage-dev
  x11proto-fixes-dev x11proto-xext-dev x11proto-xf86vidmode-dev
使用“sudo apt autoremove”来删除它们。
将会安装以下附加软件包:
  libgl-dev libglx-dev
将会安装以下新软件包:
  libgl-dev libglx-dev
升级了 0 个,新安装了 2 个,删除了 0 个,并且未升级 1689 个。
6 未完全安装或删除。
需要获取 0 B/112 kB 的档案。
此操作后将使用1.480 kB的额外磁盘空间。
您想继续吗?[Y/n] y
(正在读取数据库...当前安装了 246661 个文件和目录。)
准备解压 .../libglx-dev_1.3.1-1_amd64.deb ...
正在解压 libglx-dev:amd64 (1.3.1-1) ...
软件包:处理档案 /var/cache/apt/archives/libglx-dev_1.3.1-1_amd64.deb (--unpack) 时出错:
 尝试覆盖“/usr/include/GL/glx.h”,它也在包 mesa-common-dev:amd64 20.0 中。
8-0ubuntu1~18.04.1
准备解压 .../libgl-dev_1.3.1-1_amd64.deb ...
正在解压 libgl-dev:amd64 (1.3.1-1) ...
软件包:处理档案 /var/cache/apt/archives/libgl-dev_1.3.1-1_amd64.deb (--unpack) 时出错:
 尝试覆盖 '/usr/include/GL/gl.h',它也位于包 mesa-common-dev:amd64 20.0.8 中
-0ubuntu1~18.04.1
dpkg-deb: 错误:粘贴子进程被信号杀死(管道断裂)
处理时遇到错误:
 /var/cache/apt/archives/libglx-dev_1.3.1-1_amd64.deb
 /var/cache/apt/archives/libgl-dev_1.3.1-1_amd64.deb
E: 子进程 /usr/bin/dpkg 返回错误代码 (1)

我觉得值得一提的是,包裹清单似乎是焦点,而不是仿生海狸。参见sudo apt update

点击数:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
点击数:2 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease                             
点击数:3 http://security.ubuntu.com/ubuntu xenial-security InRelease                             
点击数:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease     
点击数:5 http://it.archive.ubuntu.com/ubuntu xenial-updates InRelease      
点击数:6 http://us.archive.ubuntu.com/ubuntu focal-security InRelease
正在读取软件包列表...完成                     
构建依赖关系树       
正在读取状态信息...完成
1689 个软件包可以升级。运行“apt list --upgradable”即可查看。

我将非常感激任何帮助我解决此问题的帮助。我正在考虑将软件包列表恢复为仿生海狸列表,但我不知道该怎么做。

先感谢您。

答案1

好的,我通过恢复 Bionic 源列表解决了依赖性问题。为此,我运行了:

sudo sed -i 's/focal/bionic/' /etc/apt/sources.list /etc/apt/sources.list.d/*list

然后我做了:

sudo apt update
sudo apt --fix-broken install
sudo apt full-upgrade

这修复了依赖性问题。现在我可以重试了sudo do-release-upgrade

更新:升级顺利。20.04 已成功安装。

相关内容