I previously upgraded an Ubuntu server from 14.04 LTS to 16.04 LTS (LTS = long term support) but didn’t document the steps. So this time I thought I would. This article has been a long time coming. I was lucky enough (depending on your view) to still have a server running 14.04 LTS as it is out of support now.
I have Let’s Encrypt’s Certbot on this server so I will show what to do when that fails. Other non-Ubuntu-bundled installs will need attention after the upgrade too.
Before starting make sure all packages are up to date. I have some packages held from updating and others that I have modified manually so my answers to some questions might be different from yours. To start the process just run the following.
sudo do-release-upgrade
You will then be warned about running the upgrade remotely under SSH and prompted if you want to continue. A separate port will be opened to allow you in. This is just in case there are any upgrade issues and you get disconnected.
Press the enter key to accept opening port 1022 and continue with the upgrade.
Package installation questions
As you go through the individual package upgrade questions, you will be prompted in various ways for any that you have modified. The choices will come down to either keeping your current configuration or use the manufacturer’s latest. For the packages where I remembered making changes, I selected to keep my own. For the others I went with the latest from the manufacturer. Sometimes, you can get to see the details. If you do this then use “q” to return from viewing.
The next series of screenshots are from my installation and with my answers. As mentioned, your answers might be different depending on whether you have any packages in a “held” state or what you have previously modified. Held packages don’t get updated; they fail but the upgrade continues.
Finally, “y” to restart.
Installing missing packages
After restarting, you will have to reinstall any missing packages. First of all, I thought I would try Certbot for Apache. That needed to be reinstalled and it did as the Certbot for Apache command failed.
I did an update, installed it and tested again.
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache
Check that Certbot now runs by testing with the same command again. See if it fails or brings up a list of your enabled sites and aliases.
sudo certbot ‐‐apache
There might be more packages missing but I didn’t find any that I needed on my installation.