libpython3.10:依赖:libpython3.10-stdlib(= 3.10.4-3ubuntu0.1)但需要安装 3.10.6-1+focal1(升级到 Ubuntu 22.04 后)

libpython3.10:依赖:libpython3.10-stdlib(= 3.10.4-3ubuntu0.1)但需要安装 3.10.6-1+focal1(升级到 Ubuntu 22.04 后)

从 20.04 更新到 Ubuntu 22.04.1,设置(又名gnome-control-center)丢失。经过一番搜索,我发现我应该执行sudo apt install gnome-control-center。但是当我尝试这样做时,出现了以下输出:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
 libpython3.10 : Depends: libpython3.10-stdlib (= 3.10.4-3ubuntu0.1) but 3.10.6-1+focal1 is to be installed
E: Unable to correct problems, you have held broken packages.

接下来我尝试了sudo apt --fix-broken install。输出:

Building dependency tree... Done
Reading state information... Done
0 to upgrade, 0 to newly install, 0 to remove and 1 not to upgrade.

sudo apt upgrade输出结果如下:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libpeas-1.0-0
0 to upgrade, 0 to newly install, 0 to remove and 1 not to upgrade.

接下来,我执行了 sudo aptitude safe-upgrade。输出:

No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

我通过 打开 aptitude sudo aptitude。在“可升级软件包”下,有 1 个软件包。如果我按下g它,我会看到以下屏幕:

在此处输入图片描述

我单击了“确定”,然后向下滚动libpeas-1.0-0找到:

在此处输入图片描述

如果我单击-,我会收到以下警告:

在此处输入图片描述

看到如果我删除它,像 gedit 这样的重要应用程序也将被删除。

现在我该怎么办?如何解决此错误?

答案1

在执行此操作之前,请确保备份这些文件。

您需要手动编辑 dpkg 状态文件

sudo gedit /var/lib/dpkg/status

然后查找有问题的软件包名称。删除那些 ubuntu 20.04 软件包并保存文件。deadsnakes 也支持 jammy ppa,所以不用担心,然后更新和升级。

sudo apt-get update && upgrade

然后它将在更新期间安装所需的软件包。如果这不起作用,请告诉我。

答案2

在我的情况下,问题就是这么解决的。这绝对不是最好的解决方案,并且只有在升级之前使用 TimeShift 备份系统才可用。但这对我来说很有效。确实如此不是但是,这意味着其他答案对我来说都不起作用,而且我无法评论它们是否有效,因为我没有机会测试它们。

在我提出这个问题后不久,来自@user535733 的评论让我想起我曾在 Ubuntu 20.04 中从 deadsnakes PPA 安装了 Python 3.10。然而,那时我已经按下了gaptitude 菜单,并且libpeas-1.0-0,以及许多其他应用程序(如 gedit、rythmbox 等)都被卸载了。我还应该注意,虽然在这个问题中我提到了libpeas-1.0-0唯一显示为“保留在当前状态”的软件包,但列表中还有gdbobs-studio,我在发布问题之前已经卸载了它们。

无论如何,卸载了一堆重要软件后,我别无选择,只能回滚到 Ubuntu 20.04。幸运的是,我在升级之前拍摄了 TimeShift 快照(如果您在升级之前阅读本文,我建议您在开始升级过程之前拍摄系统的完整快照),使用它,我可以恢复我的旧操作系统,所有应用程序都处于完美状态。

接下来,我从系统中删除了 Python 3.10,清除了它的配置文件,并将变量python和改回了 Python 3.8。对系统进行了另一次快照,然后重新开始升级。升级结束后,一切都很顺利,没有损坏的软件包。事实上,或 都python3没有问题。libpeas-1.0-0gdbobs-studio

我会接受这个答案,因为这对我有用,但我重申这不是最好的解决方案,它的可用性取决于您是否使用 TimeShift 备份了您的系统。

请注意不是只需从 Ubuntu 22.04 中删除 Python 3.10,sudo apt remove python3.10因为这将带走几乎所有的东西,从 gnome-shell 开始。

相关内容