Ubuntu – Can’t upgrade from 15.10 to 16.04

15.1016.04do-release-upgraderelease-managementupgrade

I am running into some trouble with this upgrade, I ran a "do-release-upgrade" and I guess that I wasn't paying attention and the system went from ubuntu 14.04 to 15.10 instead of 14.04 to 16.04. There was a problem with upgrading dconf, but I resolved that by creating a folder that the installer was unable to create for some reason. However, when I try to run the upgrade again for 16.04, it fails with the error "Could not calculate upgrade". Some google searches point to looking at the log "/var/log/dist-upgrade/…/apt.log". I can't determine what is causing the issue because of the magnitude of information in the file.

I used grep and cut to filter the apt.log with the command below and the output is…

"grep Broken /var/log/dist-upgrade/20160501-2239/apt.log |cut -d":" -f1|cut -d" " -f2 > /home/sam/Desktop/broken\ packages.txt"
perl-base
perl-base
findutils
libgtk-3-0
libgnutls30
libgnutls30
libgnome-desktop-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-charwidth-perl
libtext-wrapi18n-perl
libtext-iconv-perl
libmwaw-0.3-3
libodfgen-0.1-1
libkf5messageviewer5
dictionaries-common
libsocket6-perl
thumbnailer-service
thumbnailer-service
hunspell-en-us
libmailcommon5
buteo-sync-plugins-contacts-google
aspell
unity-lens-music
libmono-system-data2.0-cil
libmetacity-private3a
vlc
python3-click-package
libqca2
libmono-system-web2.0-cil
libclass-c3-xs-perl
libnet-libidn-perl
libmono-system-runtime2.0-cil
libmono-wcf3.0a-cil
libmono-data-tds2.0-cil
libvoikko1
libpython3.4-stdlib
libmono-system-data-linq2.0-cil
libmono-sqlite2.0-cil
address-book-updater
libidl-2-0
libkf5messagelist5
libkf5ksieveui5
libmono2.0-cil
libparams-util-perl
libopenobex2
libcalendarsupport5
qml-module-ubuntuone
libapt-pkg-perl
libtemplateparser5
libfcgi-perl
libcdr-0.1-1
libmessagecomposer5
libcheese7
libeventviews5
libmono-system-messaging2.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-plugin
xserver-xorg-input-mouse
libperl5.20
libnoteshared5
libcheese-gtk23
libgnutls28
libmono-winforms2.0-cil
mono-gmcs
libhunspell-1.3-0v5
checkbox-ng-service
findutils
debconf-i18n
debconf-i18n
debconf-i18n
aspell-en
aspell-en
libtext-charwidth-perl
libtext-wrapi18n-perl
libtext-iconv-perl
dictionaries-common
libio-socket-inet6-perl
libsocket6-perl
lintian
aspell
libcgi-fast-perl
address-book-service
openjdk-7-jre-headless
libdata-optlist-perl
libpython3.4-stdlib
libparams-util-perl
libapt-pkg-perl
libfcgi-perl
tzdata-java
findutils
debconf-i18n
debconf-i18n
debconf-i18n
aspell-en
aspell-en
libtext-charwidth-perl
libtext-wrapi18n-perl
libtext-iconv-perl
dictionaries-common
libio-socket-inet6-perl
libsocket6-perl
lintian
aspell
aspell
libcgi-fast-perl
qtcontact5-galera
openjdk-7-jre-headless
libdata-optlist-perl
libpython3.4-stdlib
libparams-util-perl
libapt-pkg-perl
libfcgi-perl
python3.4
python3.4-minimal
tzdata-java
libpython3.4
debconf-i18n
aspell-en
libio-socket-inet6-perl
lintian
ubuntu-minimal
libcgi-fast-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-exporter-perl
libgetopt-long-descriptive-perl
libdata-section-perl
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libwebkit2gtk-4.0-37-gtk2
empathy
mcp-account-manager-uoa
enchant
libwebkitgtk-3.0-0
account-plugin-salut
account-plugin-jabber
gedit
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-software
libhunspell-1.3-0v5
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
libenchant1c2a
ubuntu-software
libwebkit2gtk-4.0-37
yelp
unity-control-center
gnome-user-guide
libyelp0
librhythmbox-core9
unity-control-center-signon
rhythmbox
zenity
libgoa-backend-1.0-1
gir1.2-rb-3.0
rhythmbox-plugins
gnome-online-accounts
rhythmbox-plugin-zeitgeist
gir1.2-webkit2-4.0
metacity
apturl
shotwell
ubuntu-docs
software-center
nautilus-share
ubuntu-desktop
rhythmbox-plugin-magnatune
rhythmbox-plugin-cdrecorder
webaccounts-extension-common
webaccounts-extension-common
xul-ext-webaccounts
gnome-control-center
ubuntu-release-upgrader-gtk
ubuntu-release-upgrader-gtk
update-manager
gnome-session-flashback
gnome-session-fallback

Another file in that "dist-upgrade" log folder was main.log, but the only line that I found of interest was one "ERROR" line that reads…

2016-05-01 22:44:45,086 ERROR Dist-upgrade failed: 'E:Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.'

I don't see how there could be broken or held packages, because of the output of the following…

sam@sam-laptop:/var/log/dist-upgrade$ !349
sudo apt-get autoclean
Reading package lists... Done
Building dependency tree      
Reading state information... Done
sam@sam-laptop:/var/log/dist-upgrade$ !350
sudo apt-get clean
sam@sam-laptop:/var/log/dist-upgrade$ !351
sudo apt-get autoremove
Reading package lists... Done
Building dependency tree      
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
sam@sam-laptop:/var/log/dist-upgrade$ !531
dpkg --get-selections | grep hold
sam@sam-laptop:/var/log/dist-upgrade$

More Troubleshooting:
I also tried the following, which completed without error.

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

The next thing I thought of was to disable any non-essential repos, so I disabled multiverse and universe repos in sources.list

Full contents of logs and sources.list pastebin
/var/log/dist-upgrade/20160501-2239/main.log
/var/log/dist-upgrade/20160501-2239/apt.log
/etc/apt/sources.list

My last idea is to just boot into single user mode and force remove all the packages that are marked broken, and try the upgrade again. I am tempted to just install over my current install with 16.04 since /home is on a separate partition, but I really don't want to have to re-install all the software on this machine. Also that's the easy way out. Can somebody please help me analyze what is happening?

Best Answer

This is more of a redirect, but when I posted my broken package issue on launchpad (similarly trying to upgrade from 15.10 to 16.04), I got excellent support. In my case my issue was that I had used a foreign source (a ppa) to install some more recent graphics packages, specifically libgl1-mesa-dri, libegl1-mesa, and libgbm1. I had to downgrade those packages to the Ubuntu source versions, and then I was able to proceed with the upgrade. So my suggestion for handling broken package issues is to follow the steps in the OP, e.g.

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

and if that fails, consider whether any ppas might be introducing package versions that would interfere with stock Ubuntu packages. Additionally, if you get extremely frustrated (like I did), get support on Launchpad.

Related Question