尝试使用 从 21.10 更新到 22.04 do-release-upgrade
,并收到一条错误消息,提示需要先安装所有可用更新。软件包包括gir1.2-javascriptcoregtk-4.0
、gir1.2-webkit2-4.0
、libjavascriptcoregtk-4.0-18
和libwebkit2gtk-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,没有任何保留的软件包。
我不知道这种方法是否适用于每种情况,但如果我再次遇到这个问题,这似乎是我将来要采用的方法。