我犯了一个严重的错误,在没有在不同分区中进行备份的情况下升级到 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
命令无法修复。更新 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 之类的东西,这不是当前需要的),并且能够使用 Gnome 终端。
我正在寻找解决所有这些问题的入门步骤。有没有关于如何开始的指南?我在搜索答案时错过了一个明显的帖子?我认为这个帖子方向正确,但有点超出我的理解范围。任何帮助都非常感谢。我想知道从全新 16.04 安装开始是否真的更容易。
答案1
这里有几件事可以尝试。
方法一:
这是最容易尝试的方法。不要使用 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 升级后遇到了很多不同的问题。我发现全新安装要容易得多。我认为全新安装或干净安装始终是最佳选择。
希望这可以帮助,
答案2
我遇到了同样的问题。我不得不去编辑/var/lib/dpkg/status
并清除整个依靠:正在抱怨的软件包的行。
我不确定这可能会导致什么其他问题,但这是唯一可以apt-get install -f
重新运行的东西。
答案3
以root权限,前往var/lib/dpkg/status
并删除状态文件的内容。
然后sudo dpkg --configure -a
然后sudo apt-get install -f
然后安装你想要的
sudo apt-get install nvidia-390
答案4
“如果有办法在 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 的第一个版本之前。