无法从 15.10 升级到 16.04

无法从 15.10 升级到 16.04

我在这次升级中遇到了一些问题,我运行了“do-release-upgrade”,我想我没有注意,系统从 ubuntu 14.04 升级到了 15.10,而不是从 14.04 升级到了 16.04。升级 dconf 时出现了问题,但我通过创建一个安装程序因某种原因无法创建的文件夹解决了这个问题。但是,当我尝试再次运行 16.04 的升级时,它失败了,并显示错误“无法计算升级”。一些谷歌搜索指向查看日志“/var/log/dist-upgrade/.../apt.log”。由于文件中的信息量太大,我无法确定是什么导致了这个问题。

我使用 grep 和 cut 用下面的命令过滤 apt.log 并且输出是......

“grep Broken /var/log/dist-upgrade/20160501-2239/apt.log |cut -d”:“-f1|cut -d” “-f2 > /home/sam/Desktop/broken\ packages.txt”
perl 库
perl 库
查找工具
libgtk-3-0
libgnutls30
libgnutls30
libgnome-桌面-3-12
libkf5akonadicore-bin
libkf5akonadicore-bin
libkf5libkdepim5
libmono-corlib2.0-cil
libkf5libkleo5
unity-control-center-faces
libmono-system2.0-cil
libmono-i18n-west2.0-cil
libmono-security2.0-cil
python3-aptdaemon.pkcompat
libmono-posix2.0-cil
libpimcommon5
libtext-字符宽度-perl
libtext-wrapi18n-perl
libtext-iconv-perl
libmwaw-0.3-3
libodfgen-0.1-1
libkf5messageviewer5
常用字典
libsocket6-perl
缩略图服务
缩略图服务
hunspell-en-us
libmailcommon5
buteo-同步-插件-联系人-谷歌
阿斯佩尔
unity-lens-music
libmono-系统数据2.0-cil
libmetacity-private3a
甚高频
python3-click-package
libqca2
libmono-系统-web2.0-cil
libclass-c3-xs-perl
libnet-libidn-perl
libmono-系统-运行时2.0-cil
libmono-wcf3.0a-cil
libmono-数据-tds2.0-cil
libvoikko1
libpython3.4-stdlib
libmono-系统-数据-linq2.0-cil
libmono-sqlite2.0-cil
地址簿更新程序
libidl-2-0
libkf5messagelist5
libkf5ksieveui5
libmono2.0-cil
libparams-util-perl
libopenobex2
libcalendarsupport5
qml-模块-ubuntuone
libapt-kubernetes-pkg-perl - 库
libtemplateparser5
libfcgi-perl
libcdr-0.1-1
libmessagecomposer5
libcheese7
libeventviews5
libmono-系统消息传递2.0-cil
libmono-accessibility2.0-cil
libmono-sharpzip2.84-cil
tzdata-java
libincidenceeditorsng5
libmono-messaging2.0-cil
libmailimporter5
libtext-soundex-perl
libmono-webbrowser2.0-cil
libwpd-0.10-10v5
icedtea-7-插件
xserver-xorg-输入鼠标
libperl5.20
libnoteshared5
libcheese-gtk23
libgnutls28
libmono-winforms2.0-cil
单基因
libhunspell-1.3-0v5
复选框 ng-服务
查找工具
debconf-i18n
debconf-i18n
debconf-i18n
aspell-en
aspell-en
libtext-字符宽度-perl
libtext-wrapi18n-perl
libtext-iconv-perl
常用字典
libio-socket-inet6-perl
libsocket6-perl
林田
阿斯佩尔
libcgi-快速-perl
地址簿服务
openjdk-7-jre-headless
libdata-optlist-perl
libpython3.4-stdlib
libparams-util-perl
libapt-kubernetes-pkg-perl - 库
libfcgi-perl
tzdata-java
查找工具
debconf-i18n
debconf-i18n
debconf-i18n
aspell-en
aspell-en
libtext-字符宽度-perl
libtext-wrapi18n-perl
libtext-iconv-perl
常用字典
libio-socket-inet6-perl
libsocket6-perl
林田
阿斯佩尔
阿斯佩尔
libcgi-快速-perl
qtcontact5-galera
openjdk-7-jre-headless
libdata-optlist-perl
libpython3.4-stdlib
libparams-util-perl
libapt-kubernetes-pkg-perl - 库
libfcgi-perl
python3.4
python3.4-最小
tzdata-java
libpython3.4
debconf-i18n
aspell-en
libio-socket-inet6-perl
林田
Ubuntu 最小版本
libcgi-快速-perl
openjdk-7-jre-headless
libdata-optlist-perl
libnet-dns-perl
libemail-valid-perl
openjdk-7-jre
openjdk-7-jdk
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
hunspell-en-us
libsub-导出器-perl
libgetopt-long-descriptive-perl
libdata-section-perl
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libwebkit2gtk-4.0-37-gtk2
共情
mcp-帐户管理器-uoa
附魔
libwebkitgtk-3.0-0
账户插件
账户插件-jabber
编辑
gir1.2-webkit-3.0
libsoftware-license-perl
libpod-readme-perl
libgtkspell3-3-0
libwebkit2gtk-4.0-37
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
gnome 软件
libhunspell-1.3-0v5
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
ubuntu 软件
libwebkit2gtk-4.0-37
喊叫
统一控制中心
gnome 用户指南
libyelp0
librhythmbox-core9
unity-control-center 登录
节奏盒
禅意
libgoa-后端-1.0-1
gir1.2-rb-3.0
rhythmbox-插件
gnome 在线账户
rhythmbox-插件-zeitgeist
gir1.2-webkit2-4.0
元城市
apturl
肖特韦尔
ubuntu-文档
软件中心
nautilus 分享
Ubuntu 桌面
rhythmbox-插件-magnatune
rhythmbox-插件-cd录音机
webaccounts-扩展-通用
webaccounts-扩展-通用
xul-ext-webaccounts
gnome 控制中心
ubuntu-发布-升级程序-gtk
ubuntu-发布-升级程序-gtk
更新管理器
gnome 会话闪回
gnome-session-fallback

“dist-upgrade”日志文件夹中的另一个文件是main.log,但我发现唯一感兴趣的行是一行“ERROR”,内容是...

2016-05-01 22:44:45,086 错误 Dist-upgrade 失败:“E:Error,pkgProblemResolver::Resolve 生成​​中断,这可能是由保留的软件包引起的。”

我不明白为什么包裹可能会损坏或被扣留,因为输出如下......

sam@sam-laptop:/var/log/dist-upgrade$ !349
sudo apt-get 自动清理
正在读取软件包列表...完成
构建依赖关系树      
正在读取状态信息...完成
sam@sam-laptop:/var/log/dist-upgrade$ !350
sudo apt-get clean
sam@sam-laptop:/var/log/dist-upgrade$ !351
sudo apt-get 自动删除
正在读取软件包列表...完成
构建依赖关系树      
正在读取状态信息...完成
升级了 0 个,新安装了 0 个,要删除 0 个,并且未升级 0 个。
sam@sam-laptop:/var/log/dist-upgrade$ !531
dpkg --get-selections | grep hold
sam@sam-laptop:/var/log/dist-upgrade$

更多故障排除:
我还尝试了以下操作,没有错误地完成。

sudo apt-get update--fix-missing
sudo dpkg--configure-a
sudo apt-get 安装 -f

我接下来想到的是禁用所有不必要的存储库,因此我在 sources.list 中禁用了 multiverse 和 universe 存储库

日志和来源的完整内容.列表粘贴箱
/var/log/dist-upgrade/20160501-2239/main.log
/var/log/dist-upgrade/20160501-2239/apt.log
/etc/apt/sources.list

我的最后一个想法是启动单用户模式并强制删除所有标记为损坏的软件包,然后再次尝试升级。我很想用 16.04 覆盖我当前的安装,因为 /home 位于单独的分区上,但我真的不想在这台机器上重新安装所有软件。这也是一种简单的解决方法。有人能帮我分析一下发生了什么吗?

答案1

这更像是一种重定向,但是当我在 launchpad 上发布我的损坏软件包问题时(同样尝试从 15.10 升级到 16.04),我得到了出色的支持。就我而言,我的问题是我使用外部源(ppa)安装了一些较新的图形包,特别是libgl1-mesa-dri, libegl1-mesa,libgbm1。我不得不将这些包降级为 Ubuntu 源版本,然后我才能继续升级。所以我对处理损坏的软件包问题的建议是按照 OP 中的步骤进行操作,例如

sudo apt-get update --fix-missing
sudo dpkg --configure -a
sudo apt-get install -f

如果失败,请考虑是否有任何 ppa 可能会引入会干扰 Ubuntu 原有软件包的软件包版本。此外,如果您感到非常沮丧(就像我一样),请在 Launchpad 上获取支持。

答案2

我讨厌这样做,但因为我需要一个可以正常工作的系统,所以我只能清除并重新安装。幸运的是,我的主文件夹位于单独的分区上,所以我需要做的就是格式化并重新安装。感谢所有提供帮助的人,希望这个问题可以成为宝贵的故障排除材料。

我忘记检查的另一个文件是......

sudo vi /etc/update-manager/release-upgrades

我忘了我一直在改变的Prompt=ltsPrompt=normal

相关内容