如何修复更新问题 (Ubuntu 20.04)

Eug*_*ene 9 upgrade package-management apt

我已经完成了对 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.
Run Code Online (Sandbox Code Playgroud)

我尝试运行多个命令来清除损坏的包/依赖项,包括:

sudo apt clean
sudo apt autoclean
sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)

似乎没有任何效果(甚至 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.
Run Code Online (Sandbox Code Playgroud)

我尝试了更多的事情但没有任何结果,所以我想知道我的选择是什么。

运行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
Run Code Online (Sandbox Code Playgroud)

Moh*_*Ali 7

我也有这个问题,这就是我解决它的方法

之前不要忘记这两点:

-- 1 -- 在完成所有步骤之前不要重新启动PC

-- 2 -- 不要忘记通过执行以下命令来更新您的 grub 以便重新启动: sudo update-grub2

这里的问题是,当您将 ubuntu 从 18.04 升级到 20.04 时,系统并没有用 focus 替换每个仿生实例:它没有用 libpython3.8-stdlib 替换 libpython3.8-stdlib (3.8.2-1+bionic1)( = 3.8.2-1ubuntu1.1) 所以解决方案是手动替换它:) 执行此操作的步骤是:

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

...))

如果 ubuntu-desktop 不在包文本文件中,请不要忘记安装 sudo apt-get install ubuntu-desktop

4-更新您的 grub ,运行: sudo update-grub2

5- 最后重启你的电脑

就这样 :)


小智 -4

我今天能够升级一个系统,我在这个过程中注意到了一些事情,我将分享......

我从18.04升级到20.04的一个系统需要多组(大约5组)更新&&升级。在最后两次期间,我收到通知,除了我已经完成的工作之外,还有更多需要更新和文件上传的指示。在终端中的最后一个“sudo apt update”命令期间,我收到大量升级的通知。它并没有表明它们是 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),直到最终我们达到圣杯......然后升级!