升级到18.04,现在有很多损坏的程序包和未满足的依赖项


17

我犯了一个可怕的错误,并通过执行以下操作在没有在其他分区中进行备份的情况下升级到了18.04:

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt-get autoremove
sudo apt install update-manager-core
sudo do-release-upgrade -d

然后我在重启后做了更新和升级命令。现在,存在许多sudo apt-get -f install无法满足的依赖关系和损坏的软件包这些命令无法修复的问题。UPDATE sudo apt install -f错误日志的输出的第一部分是:

    Reading package lists...
Building dependency tree...
Reading state information...
Correcting dependencies... failed.
The following packages have unmet dependencies:
 gnome-calendar : Depends: gsettings-desktop-schemas (>= 3.21.2) but 3.18.1-1ubuntu1 is installed
 gnome-session : Depends: gnome-shell (>= 3.25.91-0ubuntu4~) but it is not installed
                 Depends: gnome-session-bin (>= 3.28.1-0ubuntu2) but 3.18.1.2-1ubuntu1.16.04.2 is installed
                 Depends: gnome-session-common (= 3.28.1-0ubuntu2) but 3.18.1.2-1ubuntu1.16.04.2 is installed
                 Depends: xwayland but it is not installed
                 Recommends: fonts-cantarell but it is not installed
                 Recommends: adwaita-icon-theme-full
                 Recommends: gnome-themes-extra but it is not installed
 gnome-settings-daemon : Depends: libgnome-desktop-3-17 (>= 3.17.92) but it is not installed
                         Depends: gsettings-desktop-schemas (>= 3.20) but 3.18.1-1ubuntu1 is installed
 hplip : Depends: python3 (< 3.6) but 3.6.5-3 is installed
 libc-dev-bin : Depends: libc6 (< 2.24) but 2.27-3ubuntu1 is installed
 libc6-dbg : Depends: libc6 (= 2.23-0ubuntu10) but 2.27-3ubuntu1 is installed
 libc6-dev : Depends: libc6 (= 2.23-0ubuntu10) but 2.27-3ubuntu1 is installed
 libgmime-3.0-0 : Depends: libgpgme11 (>= 1.7.0) but 1.6.0-1 is installed
 libreoffice-avmedia-backend-gstreamer : Depends: libreoffice-core (= 1:5.1.6~rc2-0ubuntu1~xenial3) but 1:6.0.3-0ubuntu1 is installed
 libreoffice-base-core : Depends: libreoffice-core (= 1:5.1.6~rc2-0ubuntu1~xenial3) but 1:6.0.3-0ubuntu1 is installed
 libreoffice-calc : Depends: libreoffice-base-core (= 1:6.0.3-0ubuntu1) but 1:5.1.6~rc2-0ubuntu1~xenial3 is installed
                    Depends: liborcus-0.13-0 (>= 0.13.3) but it is not installed
 libreoffice-core : Depends: libgpgmepp6 (>= 1.10.0) but it is not installed
                    Depends: liborcus-0.13-0 (>= 0.13.3) but it is not installed
                    Depends: libpoppler73 (>= 0.62.0) but it is not installed
                    Depends: libxmlsec1 (>= 1.2.25) but it is not installed
                    Depends: libxmlsec1-nss (>= 1.2.25) but it is not installed
 libreoffice-gnome : Depends: libreoffice-gtk3 but it is not installed
 libreoffice-gtk : Depends: libreoffice-gtk2 but it is not installed
 libreoffice-math : Depends: libreoffice-core (= 1:5.1.6~rc2-0ubuntu1~xenial3) but 1:6.0.3-0ubuntu1 is installed
 libreoffice-writer : Depends: libreoffice-base-core (= 1:6.0.3-0ubuntu1) but 1:5.1.6~rc2-0ubuntu1~xenial3 is installed
                      Depends: libabw-0.1-1 but it is not installed
                      Depends: libepubgen-0.1-1 (>= 0.1.0) but it is not installed
 libtotem0 : Depends: libgnome-desktop-3-17 (>= 3.17.92) but it is not installed
 libwayland-egl1-mesa : Depends: libegl1 but it is not installed
 libwebkitgtk-1.0-0 : Depends: libjavascriptcoregtk-1.0-0 (= 2.4.11-0ubuntu0.1) but 2.4.11-3ubuntu3 is installed
                      Depends: libwebkitgtk-1.0-common (>= 2.4.11) but it is not installable
 nautilus : Depends: libgnome-desktop-3-17 (>= 3.18.1) but it is not installed
 python3-brlapi : Depends: python3 (< 3.6) but 3.6.5-3 is installed
 python3-cffi-backend : Depends: python3 (< 3.6) but 3.6.5-3 is installed
 python3-crypto : Depends: python3 (< 3.6) but 3.6.5-3 is installed

E: Error, pkgProblemResolver::Resolve generated breaks,   
this may be caused by held packages.  

尝试在Synaptic中修复损坏的程序包会产生以下错误消息:

E: Error, pkgProblemResolver::Resolve generated breaks,   
this may be caused by held packages.     

看起来sources.list文件没有任何问题,并且在我尝试安装时似乎已更新。我几乎不知道自己在做什么,并且很乐意提供有关错误消息的更多详细信息。如果有一种方法可以在xterm中向上滚动,这就是我现在正在使用的方法,因为无法打开Gnome终端。

我想删除所有47个损坏的软件包和保留的软件包,如果可以的话(例如,对于LibreOffice之类的东西,这不是当前的需要),请正确地重新安装它们或暂时不安装它们,并能够使用侏儒终端。

我正在寻找有关如何解决所有这些问题的初学者步骤。有入门指南吗?我在寻找答案时错过了一个明显的帖子?我认为这篇文章朝着正确的方向前进,但我的想法有点过头了。任何帮助深表感谢。我想知道从全新的16.04安装开始是否真的更容易。


尝试sudo apt-get install -fdpkg --configure -a
N0rbert

1
@ N0rbert OP说install -f已经运行了。
WinEunuuchs2Unix

1
您可以尝试使用aptitude,这有时可以更成功地修复不良的程序包树。
塞巴斯蒂安·史塔克

为什么在do-release-upgrade上使用-d?老实说,如果可能的话,最简单的解决方法是进行全新安装。
chaskes

-d的原因是,我显然在一个星期五早上感到不便和幻想,并且互联网告诉我这样做,所以围绕一整套确实糟糕的决定。不用说,我已经吸取了教训。干净的安装或至少对第一个发行版本保持耐心是将来的工作。
k.mat27

Answers:


10

我有同样的问题。我必须去编辑/var/lib/dpkg/status并从抱怨的包中清除整个Depends:行。
我不确定还会导致什么其他问题,但这是唯一又能解决的问题apt-get install -f


删除依赖项行是否是一种快速修复程序,以允许我安装软件包要求的版本以使这些软件包正常工作?之后,您的下一步行动是什么?我编辑了原始问题,以显示一些与python版本相关的错误,因为我担心它们是整个18.04功能所不可或缺的,但是如果您成功完成此操作,则可以考虑尝试一下。
k.mat27

1
基本上,我认为这允许“ apt get”继续进行,而不是轰炸并拒绝执行任何操作,因为它会遇到很多依赖错误。从警告的每个程序包中删除依赖项后,我运行“ apt-get install -f”,然后运行“ apt get upgrade”,然后继续进行约800个程序包的安装/安装。好像它已经挂在18.04升级的中间,有许多安装待处理。升级完成后,一切似乎都正常,我正在运行稳定的18.04系统。
dmattp '18年

1
另外,请务必在编辑之前备份“状态”文件!如果使用手动编辑来伪造文件,则必须从备份中还原。
dmattp

备份状态文件后,我为您的解决方案做了一些尝试。我不得不重复这些步骤几次,然后不得不卸载一个挂架(无论如何我都不会用),这是我通过Synaptic完成的。现在,我可以安装东西了,这很棒,但是作为对其他尝试这样做的人的警告,我仍然不能使用软件和更新以及gnome 16.04附带的标准东西……这对我来说很好,但可能对我不利其他。谢谢!我将对18.04的实际发行版保持耐心,欢迎再次备份并执行全新安装,以备不时之需。
k.mat27

它适用于我的系统。我从/ var / lib / dpkg / status中删除了所有未满足的依赖项
Fahad Naeem,

10

这里有一些尝试的方法。

方法一:

这是最容易尝试的一种。与其使用sudo apt-get install PACKAGENAME(其中PACKAGENAME是您要与apt系统一起安装的软件包),不如使用sudo apt-get install -f。-f参数将尝试纠正依赖项已损坏的系统,之后您将能够安装有问题的软件包。

打开一个终端并输入:

sudo apt-get install -f

然后按Enter。

现在输入:

sudo dpkg --configure -a

然后按Enter。

现在再来一次:

sudo apt-get install -f

方法二:

Aptitude是apt-get的替代方法,您可以将其用作更高级别的软件包管理器。您可以使用它来尝试使用它来安装软件包,而不是使用apt-get,但是首先需要安装aptitude。

打开一个终端并输入:

sudo apt-get install aptitude

然后按Enter。

现在输入:

sudo aptitude install PACKAGENAME

然后按Enter。

PACKAGENAME是您要安装的软件包。这将尝试通过aptitude而不是apt-get安装软件包,这可能会解决未满足的依赖关系问题。

如果不起作用

损坏的软件包可能已锁定,需要删除。要删除锁定的文件,请打开终端并输入:

sudo rm /var/lib/apt/lists/lock

然后按Enter。

锁定的文件可能还需要在缓存目录中删除。为此,请打开一个终端并输入:

sudo rm /var/cache/apt/archives/lock

我从16.04升级,遇到了许多不同的问题。我发现执行全新安装要容易得多。在我看来,全新或干净的安装始终是可行的方法。

希望这可以帮助,


我们应该如何处理您格式错误的命令,因为sudo dpkg –configure -a(打字在终端中不起作用)?看起来像是在没有批判性思考的情况下进行复制和粘贴。请编辑您的答案,下次再准确!
N0rbert '18年

不好意思打错了!我的错。答案已编辑。
戴夫

1
对于许多问题,请不要发布相同的答案。在各处发布相同的答案并不是“一劳永逸”的解决方案,除非您可以真正确认所有建议的解决方案都能真正解决所陈述的问题,否则您应该强烈考虑在所有地方发布相同的答案。
托马斯·沃德

嗨,戴夫,尝试删除锁定文件及其在缓存目录中的存在是否会带来负面影响?之后,我应该再次尝试尝试方法1的建议(在首次安装aptitude之后!)还是可能导致相同的问题?
k.mat27 '18

安装aptitude是与方法一不同的方法,因此回到它将是多余的。至于删除锁定的文件,我总是确保我知道它的用途或该特定文件是否被锁定,因为由于某种原因,没有安装依赖项(这是我的几次)。就我而言,我删除了文件,然后使用程序包管理器重新安装。我强烈建议Synaptic软件包管理器,因为它可以帮助修复未满足的依赖性。
戴夫

2

我想通过使用Software Updater升级到18.04并遇到问题时说的解决方法是打开终端并输入:

sudo apt-get autoremove

其次是最初引起问题的原因,引起了如下讨论:

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt-get autoremove
sudo apt install update-manager-core
sudo do-release-upgrade -d

欢迎JWeb777询问Ubuntu!我建议编辑此答案以扩大其详细信息,以了解自动删除为什么可以解决此问题。
abu_bua '18

1
我不确定我是否理解要求?但是解决的问题是在升级过程中出现了问题,长话短说,我结束了部分升级,因为Ubuntu中安装的Software Update程序无法解决我按此顺序发布的命令行,从而解决了上述问题并带来了所有空白返回到工作状态,大多数更新也已完成,没有任何问题,只需要做很少的更新
JWeb777 '18

如果您要指定u您想知道些什么,也许我会有更好的答案
JWeb777 '18

2

使用root特权,转到var/lib/dpkg/status并删除状态文件的内容。

然后sudo dpkg --configure -a然后sudo apt-get install -f

然后安装你想要的东西

sudo apt-get install nvidia-390 

1

由于无法向上滚动, “如果有一种方法可以在xterm中向上滚动”,则可以使用以下命令将所有输出发送到文件:

sudo apt install -f > output.log

然后编辑output.log并将消息复制到您的问题。更多信息可提高您获得良好答案的机会。


至于在升级到18.04之前想要将其数据复制到备份分区的任何其他人,这是从以下答案中借来的命令:Bash脚本可将Ubuntu克隆到新分区以测试18.04 LTS升级

rsync -haxAX --stats --delete --info=progress2 --info=name0 /* "$TargetMnt" \
      --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}

在运行命令之前,您需要创建一个备份分区并将其挂载。安装后设置:

TargetMnt=/mnt/my_backup_partition_name

当然,更简单的方法就是运行上面链接的脚本。它不仅提供对备份分区的交互式选择,还提供了验证和修改,grub因此您可以根据需要启动到备份分区。

PS我很伤心听到你的问题,我在这里读的许多其他问题问的Ubuntu自18.04的释放。不幸的是,每个新发行版都会遇到类似的问题。希望有一天,Conical会强调在升级之前首先对克隆分区进行备份和/或测试的重要性。特别是在2018年7月26日发布18.04.1的第一点之前。


非常感谢您对问题的xterm部分的回答,特别是因为我意识到其余帖子对我而言都是题外话(我很糟糕)。使用上面的输出编辑原始问题。希望我一开始就收到有关克隆的建议,但是一旦我解决了当前的问题,以后再提出,便会这样做!
k.mat27

@ k.mat27我现在甚至在安装nVidia驱动程序之前就开始克隆,该驱动程序引起了我各种各样的悲伤,并且很难“撤消”。您不是无意中否决了我的回答,对吗?
WinEunuuchs2Unix

没有!希望我能投票赞成,但我没有声誉。
k.mat27

单击答案旁边的对勾标记以接受您发布的问题,您将获得2分。另外,作者获得15分的认可答案。更重要的是,它可以帮助其他用户找到接受答案。对于您发布的问题的每一次投票,您都会获得5分。如果您回答一个问题,您的每张赞成票将获得10分,而每笔否决票将得到2分。希望这可以帮助。
WinEunuuchs2Unix

1

是什么帮助了我:

  1. 使用sudo dpkg --remove [package-name]删除通过sudo dpkg --configure -a找到的有问题的软件包(来源:https//stackoverflow.com/a/35969176/557223)。由于某些软件包是另一个软件包的依赖项,因此无法将其删除。
  2. 运行sudo apt-get install -f(它再次开始工作,是的)
  3. 重命名org.freedesktop.systemd1.service文件,如  https://askubuntu.com/a/838673中所述
  4. 运行sudo apt-get update和dist-upgrade和autoremove,以及do-release-upgrade

荣誉对https://ubuntuforums.org/showthread.php?t=2398895&page=2 dragans2的帖子!


1
只有这个有帮助!谢谢!
sophros

0

从Xubuntu 16.04升级到18.04确实有很多问题。除了与这篇文章无关的许多其他问题(英伟达,netplan和baloo)之外,我不得不从系统中完全删除gstreamer(不使用行为异常的Pulseaudio)。在管理台式机和服务器的多年中,这是我最难的迁移。因此,我建议您在稳定发行版之前不要升级到18.04。


0

如果您有无法登录的系统,请通过cltr + alt + F1键登录到tty1,然后尝试尝试此操作( sudo apt-get install -f dist-upgrade 如果要求那里提供使用Y / n的特定解决方案,请键入“。”)。对于其他解决方案,则列出了其他解决方案以全面升级您的系统。如果发生任何问题,请通知我


0

升级后,我遇到了缺少pyhon3.7库的问题,整个apt / dpkg被阻止。发现/usr/lib/python3.7/py_compile.py更深一层/usr/local/lib/python3.7。对我/usr/lib/python3.7有用的解决方案是整体备份(重命名)并替换为sym-link。

这是问题所在(apt install -f)。抱歉捷克语,重要的东西是英语

Načítají se seznamy balíků…
Vytváří se strom závislostí…
Načítají se stavové informace…
0 aktualizováno, 0 nově instalováno, 0 k odstranění a 7 neaktualizováno.
39 instalováno nebo odstraněno pouze částečně.
Po této operaci bude na disku použito dalších 0 B.
Nastavuje se balík python3-tk:amd64 (3.6.5-3) …
(null): can't open file '/usr/lib/python3.7/py_compile.py': [Errno 2] No such file or directory
dpkg: chyba při zpracovávání balíku python3-tk:amd64 (--configure):
 installed python3-tk:amd64 package post-installation script subprocess returned error exit status 2
Nastavuje se balík python3-lib2to3 (3.6.5-3) …
(null): can't open file '/usr/lib/python3.7/py_compile.py': [Errno 2] No such file or directory
dpkg: chyba při zpracovávání balíku python3-lib2to3 (--configure):
 installed python3-lib2to3 package post-installation script subprocess returned error exit status 2
dpkg: nesplněné závislosti zamezily konfiguraci balíku python3-distutils:
 python3-distutils závisí na python3-lib2to3 (>= 3.6.4); avšak:
  Balík python3-lib2to3 zatím není zkonfigurován.

...

dpkg: chyba při zpracovávání balíku libsdl-net1.2-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libsdl-image1.2-dev:amd64:
 libsdl-image1.2-dev:amd64 závisí na libsdl1.2-dev (>= 1.2.14~); avšak:
  Balík libsdl1.2-dev zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libsdl-image1.2-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libboost-iostreams1.65-dev:amd64:
 libboost-iostreams1.65-dev:amd64 závisí na libboost-regex1.65-dev (= 1.65.1+dfsg-0ubuntu5); avšak:
  Balík libboost-regex1.65-dev:amd64 zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libboost-iostreams1.65-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libboost-iostreams-dev:amd64:
 libboost-iostreams-dev:amd64 závisí na libboost-iostreams1.65-dev; avšak:
  Balík libboost-iostreams1.65-dev:amd64 zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libboost-iostreams-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
dpkg: nesplněné závislosti zamezily konfiguraci balíku libboost-regex-dev:amd64:
 libboost-regex-dev:amd64 závisí na libboost-regex1.65-dev; avšak:
  Balík libboost-regex1.65-dev:amd64 zatím není zkonfigurován.

dpkg: chyba při zpracovávání balíku libboost-regex-dev:amd64 (--configure):
 problém se závislostmi - nechávám nezkonfigurované
Při zpracování nastaly chyby:
 python3-tk:amd64
 python3-lib2to3
 python3-distutils
 libglib2.0-dev-bin
 python3-dev
 libglib2.0-dev:amd64
 libgdk-pixbuf2.0-dev
 libibus-1.0-dev:amd64
 libboost-python1.65-dev
 libpango1.0-dev
 libsdl2-dev:amd64
 libharfbuzz-dev:amd64
 dh-python
 libsdl2-ttf-dev:amd64
 libboost-python-dev
 libsdl2-image-dev:amd64
 libpulse-dev:amd64
 libicu-le-hb-dev:amd64
 libcairo2-dev:amd64
 libnotify-dev:amd64
 libatk1.0-dev:amd64
 libgtk2.0-dev
 librsvg2-dev:amd64
 libicu-dev
 libass-dev:amd64
 libxml2-dev:amd64
 libsdl2-mixer-dev:amd64
 libsdl1.2-dev
 libsdl-ttf2.0-dev:amd64
 libboost-all-dev
 libboost-regex1.65-dev:amd64
 libbluray-dev:amd64
 libsdl-gfx1.2-dev:amd64
 libsdl-mixer1.2-dev:amd64
 libsdl-net1.2-dev:amd64
 libsdl-image1.2-dev:amd64
 libboost-iostreams1.65-dev:amd64
 libboost-iostreams-dev:amd64
 libboost-regex-dev:amd64
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.