无法更新至最新版本

无法更新至最新版本

尝试使用 从 21.10 更新到 22.04 do-release-upgrade,并收到一条错误消息,提示需要先安装所有可用更新。软件包包括gir1.2-javascriptcoregtk-4.0gir1.2-webkit2-4.0libjavascriptcoregtk-4.0-18libwebkit2gtk-4.0-37。但是,尝试通过 更新它们时,apt会收到一条消息,提示这些软件包已被阻止。

我看到过其他有类似问题的人建议直接删除这些软件包(可能是不同的软件包),但是,我不知道这些软件包是做什么用的,如果我删除它们,apt也会删除一些重要的软件包:

The following packages will be REMOVED:
chrome-gnome-shell evolution evolution-data-server
evolution-plugin-bogofilter evolution-plugin-pstimport evolution-plugins
gdm3 gir1.2-javascriptcoregtk-4.0 gir1.2-webkit2-4.0 gnome-control-center
gnome-initial-setup gnome-online-accounts gnome-remote-desktop gnome-shell
gnome-shell-extension-appindicator gnome-shell-extension-desktop-icons-ng
gnome-shell-extension-prefs gnome-shell-extension-ubuntu-dock gnome-tweaks
gnome-user-docs libedataserverui-1.2-3 libevolution libgoa-backend-1.0-1
libjavascriptcoregtk-4.0-18 libwebkit2gtk-4.0-37 libyelp0 mutter ubuntu-docs
ubuntu-session yelp zenity

尝试安装其中一个软件包会导致类似的重要软件包被删除的问题。

除了备份重要文件、清除系统并安装 22.04 的全新副本之外,我还能做些什么来升级?

编辑:根据评论请求,这四个包的版本信息:

gir1.2-javascriptcoregtk-4.0:
  Installed: 2.34.4-0ubuntu0.21.10.1
  Candidate: 2.36.3-0ubuntu0.21.10.1
  Version table:
     2.36.3-0ubuntu0.21.10.1 500
        500 http://archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu impish-security/main amd64 Packages
 *** 2.34.4-0ubuntu0.21.10.1 100
        100 /var/lib/dpkg/status
     2.34.0-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu impish/main amd64 Packages

    gir1.2-webkit2-4.0:
      Installed: 2.34.4-0ubuntu0.21.10.1
      Candidate: 2.36.3-0ubuntu0.21.10.1
      Version table:
         2.36.3-0ubuntu0.21.10.1 500
            500 http://archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
            500 http://archive.ubuntu.com/ubuntu impish-security/main amd64 Packages
     *** 2.34.4-0ubuntu0.21.10.1 100
            100 /var/lib/dpkg/status
         2.34.0-1ubuntu1 500
            500 http://archive.ubuntu.com/ubuntu impish/main amd64 Packages
libwebkit2gtk-4.0-37:
  Installed: 2.34.4-0ubuntu0.21.10.1
  Candidate: 2.36.3-0ubuntu0.21.10.1
  Version table:
     2.36.3-0ubuntu0.21.10.1 500
        500 http://archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu impish-security/main amd64 Packages
 *** 2.34.4-0ubuntu0.21.10.1 100
        100 /var/lib/dpkg/status
     2.34.0-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu impish/main amd64 Packages

libjavascriptcoregtk-4.0-18:
  Installed: 2.34.4-0ubuntu0.21.10.1
  Candidate: 2.36.3-0ubuntu0.21.10.1
  Version table:
     2.36.3-0ubuntu0.21.10.1 500
        500 http://archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu impish-security/main amd64 Packages
 *** 2.34.4-0ubuntu0.21.10.1 100
        100 /var/lib/dpkg/status
     2.34.0-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu impish/main amd64 Packages

我从未使用过apt-mark,所以应该不会有问题,而且我总是使用full-upgrade它进行更新。所有第三方 PPA 都已被注释掉。

答案1

鉴于解决版本冲突会让我陷入一个巨大的困境(4 个包变成至少 50 个,因为依赖项也需要不同的版本),而且我不想重新安装整个系统,所以我想尝试其他方法。

每次我运行apt update并看到可以升级的软件包数量时,我都会想到如何do-release-upgrade首先检查需要升级的软件包,我想,为什么不注释掉 中的每一行sources.list和所有文件sources.list.d呢?我就是这么做的,然后apt update再次运行。没有要升级的软件包。很好。然后我运行do-release-upgrade它,它没有任何问题。

启用我从文件中注释掉的所有内容后sources.list,我完成了剩余的升级,现在我有 22.04,没有任何保留的软件包。

我不知道这种方法是否适用于每种情况,但如果我再次遇到这个问题,这似乎是我将来要采用的方法。

相关内容