我已经完成了对 Ubuntu 20.04 的更新,并尝试更新软件包,但遇到了一个错误,其中一个软件包被保留了。这是运行“sudo apt upgrade”后的输出:
Reading package lists...
Done Building dependency tree
Reading state information...
Done Calculating upgrade...
Done The following packages have been kept back:
gdb gir1.2-peas-1.0 libpeas-1.0-0 libsmbclient libwbclient0 samba-libs
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
我尝试运行多个命令来清除损坏的包/依赖项,包括:
sudo apt clean
sudo apt autoclean
sudo apt autoremove
似乎没有任何效果(甚至 dist-upgrade 也没有任何作用),当我尝试手动更新软件包时,我收到以下消息:
sudo apt-get install gdb
The following packages have unmet dependencies:
gdb : Depends: libpython3.8 (>= 3.8.0~a1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
我尝试了很多方法但都没有任何结果,所以我想知道我有什么选择。
运行apt cache policy gbd libpython3.8
产生输出:
gdb:
Installed: 8.1-0ubuntu3.2
Candidate: 9.1-0ubuntu1
Version table:
9.1-0ubuntu1 500
500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
*** 8.1-0ubuntu3.2 100
100 /var/lib/dpkg/status
libpython3.8:
Installed: (none)
Candidate: 3.8.2-1ubuntu1
Version table:
3.8.2-1ubuntu1 500
500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
答案1
我也遇到了这个问题,这就是我解决它的方法
首先不要忘记这两点:
-- 1 -- 完成所有步骤前请勿重启电脑
-- 2 -- 不要忘记在重启之前通过执行以下命令来更新 grub:
sudo update-grub2
这里的问题是,当你将 ubuntu 从 18.04 升级到 20.04 时,系统并没有用 focal 替换 bionic 的每个实例:它没有用 libpython3.8-stdlib(= 3.8.2-1ubuntu1.1)替换 libpython3.8-stdlib(3.8.2-1+bionic1)所以解决方案是手动替换它:) 执行此操作的步骤如下:
1 - 将依赖于该库的包的名称保存在文本文件中,以便稍后重新安装它们运行:sudo apt-get autoremove libpython3.8-stdlib
一条消息将显示所有这些包:
(( apg apparmor apport apport-gtk ...xserver-xorg-video-vmware xwayland yelp yelp-xsl
))
将它们复制到文本文件中,然后点击“是”以卸载 libpython3.8-stdlib 的仿生版本
2- 安装焦点版本:
sudo apt-get install libpython3.8-stdlib
3-现在逐个安装保存在文本文件中的软件包:您可以创建一个这样的脚本文件:((...
sudo apt-get install gir1.2-gck-1
sudo apt-get install gir1.2-gcr-3
sudo apt-get install gir1.2-gdm-1.0
sudo apt-get install gir1.2-geoclue-2.0
sudo apt-get install gir1.2-gnomebluetooth-1.0
... ))
如果包文本文件中没有 ubuntu-desktop,请不要忘记安装它
sudo apt-get install ubuntu-desktop
(非必填)
4-更新你的 grub,运行: sudo update-grub2
5- 最后重启你的电脑
就这样 :)
答案2
由于使用 deadsnakes ppa,我也遇到了这个问题,并通过几个简单的步骤解决了它:
# sudo apt list --upgradable
Listing... Done
gdb/focal-updates 9.2-0ubuntu1~20.04 amd64 [upgradable from: 8.1.1-0ubuntu1]
gir1.2-peas-1.0/focal,focal 1.26.0-2 amd64 [upgradable from: 1.22.0-2]
libpeas-1.0-0/focal,focal 1.26.0-2 amd64 [upgradable from: 1.22.0-2]
libsmbclient/focal-updates,focal-security 2:4.11.6+dfsg-0ubuntu1.6 amd64 [upgradable from: 2:4.7.6+dfsg~ubuntu-0ubuntu2.21]
libwbclient0/focal-updates,focal-security 2:4.11.6+dfsg-0ubuntu1.6 amd64 [upgradable from: 2:4.7.6+dfsg~ubuntu-0ubuntu2.21]
samba-libs/focal-updates,focal-security 2:4.11.6+dfsg-0ubuntu1.6 amd64 [upgradable from: 2:4.7.6+dfsg~ubuntu-0ubuntu2.21]
# python3 --version
Python 3.8.8
# sudo apt list | grep python3.8
==> few entries were pointing to bionic
# sudo rm -f /etc/apt/sources.list.d/deadsnakes-ubuntu-ppa*
# sudo apt-get install gdb/focal gir1.2-peas-1.0/focal libpeas-1.0-0/focal python3.8/focal python3.8-minimal/focal libpython3.8/focal libpython3.8-minimal/focal libpython3.8-stdlib/focal
# sudo apt update
# sudo apt list --upgradable
# sudo apt upgrade
# sudo apt upgrade samba-libs
# sudo apt list --upgradable
Listing... Done
# sudo apt update
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
# sudo apt list | grep python3.8
==> all entries should point to focal
答案3
我遇到了类似的情况,因为我从死蛇PPA 在 18.04 中,因此系统 Python 3.8 软件包被保留。我不得不运行
sudo apt-get purge libpython3*
摆脱死蛇包。
谨防!正如穆罕默德·阿里警告的那样,这将删除大部分 Ubuntu 软件包并使你的系统无法使用。重新安装系统之前请勿重新启动。
然后我重新安装了系统
sudo apt install ubuntu-desktop
全新启动后,现在一切都运行良好。
答案4
我今天能够升级一个系统,并且在此过程中我注意到了一些我将与大家分享的事情......
我从 18.04 升级到 20.04 的一个系统需要几组(大约 5 组)更新 && 升级。在最后两组更新过程中,我收到通知说除了我已经完成的操作之外,还有更多需要更新的内容和文件上传的指示。在终端中执行最后一个“sudo apt upgrade”命令时,我收到了大量升级的通知。它没有表明它们是升级到 20.04,但事实证明它们是。要实现这一点,需要将更新设置为“适用于任何版本”。这台机器正在运行!
第二台电脑我直接清空了。只将数据备份到另一块磁盘,插入一个活动的 USB,然后按照说明操作。在收到多次错误消息,提示软件包损坏和文件丢失后,我这样做了。我需要结束这种沮丧。
第三台机器是旧的。这台笔记本电脑已从 14.04 升级到 16.04,再升级到 18.04(所有 LTS)。有很多遗留的东西,包括一些 i386 文件和程序。这台不会升级!随机错误消息包括一个文件未升级;7 个文件未升级;12 个文件未升级;只有最新支持的版本才能升级到开发版本;转到软件更新程序(GUI),我会收到需要加载其他文件的通知,有时是 3 个,有时是 6 个,以及介于两者之间的每个数字;我收到通知说我的互联网连接或服务器有问题;等等。其中大部分与我使用第一台计算机所经历的过程相同。
而且,这是我的猜测……20.04 版本太新了,下载的人太多了,服务器无法处理流量(我尝试过其他服务器,结果相同)。更新和升级被零碎地输入到我的电脑中。以下是我所做的:- 在终端中 - sudo update && upgrade,然后 sudo do-release-upgrade -d - 在更新程序(GUI)中 - 单击设置,然后单击更新,交替将更新设置为“...任何新版本”,然后设置为“...长期支持版本”;也尝试不同的服务器。
这很令人恼火,但我认为我们唯一能做的就是继续使用计算机,输入相同的命令;交替使用终端和更新程序(GUI),直到最终我们找到圣杯......然后升级!