I've been using Linux for eight years, LTS releases of Ubuntu for five; I'm comfortable with the system, and okay with command line, but not an expert user by any stretch. I've reached a point where third-party software requires libraries that aren't available in my current 16.04. The libraries I need are libc++-8-dev and libc++abi-8-dev, and they are available in the bionic-updates repository -- so, 18.04, with an optional (still from Canonical) library.

Every time I've attempted to upgrade a Linux install, however, I've had one or another failure that required a clean install to fix -- and my experience is that installing clean, re-enabling the necessary repositories/ppas, and reinstalling the software I choose to use takes a full day if it goes smoothly (might run into a second day if there are problems). I have two machines to upgrade; my desktop (with many third party applications) and my laptop (fewer third party apps, but slower processor and network connection), and I'm reluctant to run both upgrades or installs at the same time, because I want to have a working machine to use to look up solutions in case of a problem.

That means I have to allow at least a weekend to upgrade -- with the possibility of needing a second weekend.

Both systems are kept up to date, with update notification (so I can load updates when I'm ready, rather than having them interrupt other things). I'm aware of the Synaptic capability to export a list of my installed packages, and to import such a list to automatically install listed items, and have used that in the past. My /home is in a separate partition, so I can easily drag in or create launchers for third party software that comes as equivalent of a .tar.gz archive.

What else can I do to make this process smoother and less painful?

  • I was where you were, but liked to install every version, but kept LTS as main working install. After doing the same configuration multiple times, I said why is not computer doing this. So then tried to do as much as I could with command line & copied all those commands into a bash file. I now do a clean install in 10 minutes, import applications, relink data partition (using the script) where most of my data really is. Full configuration is about an hour, a few settings I still do manually. But I do not restore /home with most test installs which would avoid the manual work completely.
    – oldfred
    Dec 12, 2019 at 0:41

1 Answer 1


I am part of a student driven lab at my university. I usually spend quite a bit of time keeping the computers, all running Ubuntu, up to date. The aspects that I noticed that cause major issues during updates are:

  1. Drive speed. The slightly older machines present have old spinning hard drives. An SSD, if you don't already have one, should speed up the process.
  2. Dependencies. This one is a real pain to deal with. I had machines fail to boot after an upgrade because of one annoying package that wouldn't upgrade properly. Uninstalling these weird packages can help increase the chances of a successful upgrade on the first attempt. I faced issues particularly with ROS and nfs-kernel. Unfortunately, knowing which packages to handle with care comes from experience.

Other than these, most of the upgrades I have performed using do-release-upgrade have been successful on the first try with minimal cleanup afterwards.

  • How many of those machines were running a significant number of third party ppa based packages? BOINC, up-to-date SeaMonkey, Wine, update-sun-java, Steam, DropBox, CHIRP, mono?
    – Zeiss Ikon
    Dec 12, 2019 at 0:21
  • All the machines have wine installed. A significant number of them have the ROS packages installed. They also have Wireshark 2.6 installed from the PPA. Most of them include a variety of development tools installed from various PPAs such as VS Code, Sublime, etc. One of them has an NFS kernel installed. Dec 12, 2019 at 2:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .