It is 2019, time to upgrade your Ubuntu 14.04 Trusty machines!

Written by - 0 comments

Published on - Listed in Linux


News! It's 2019!

Usually the uneven years are "boring". There is no big football tournament in summer. That's probably the reason why Canonical decided to use uneven years as EOL year for their long term support (LTS) versions.

Ubuntu 14.04 (Trusty Tahr) was released in April 2014 (hence 14.04) and came with a 5 year LTS "patching warranty". That's 2019. Oh no, that's now!

So it's time to upgrade the still running (and damn stable! pre-systemd... ;P) 14.04 machines.

For the sake of documentation, I noted down my double-release-upgrade steps from 14.04 -> 16.04 -> 18.04.

0. Before you even begin, make sure you have a backup. Create a snapshot of your VM, of your LXC LV's, dd your hard drive or whatever you're using. 

1. Run apt-get update and apt-get dist-upgrade on existing version to get the latest updates.

# apt-get update && apt-get dist-upgrade

Note: I'd even reboot the machine afterwards, to make sure the latest Kernel is running.

2. Copy existing apt source list file /etc/apt/sources.list

# cp -p  /etc/apt/sources.list{,.trusty}

3. Disable special sources in /etc/apt/sources.list.d/ directory -> rename files to end with .disabled or similar

# for file in $(ls /etc/apt/sources.list.d/*.list); do mv ${file} ${file}.disabled; done

4. Create the new /etc/apt/sources.list for 16.04 (xenial):

deb http://ch.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse

Note: Obviously you should use your own local mirror or country.

5. Run apt-get update and apt-get dist-upgrade. If apt asks to overwrite config files, usually chose "Y" to get the new config file from the updated package, unless you're sure that you require the current config file.

# apt-get update && apt-get dist-upgrade

6. If no errors occurred during dist-upgrade, reboot

# reboot

7. Verify system/applications work

8. Copy existing apt source list file /etc/apt/sources.list -> /etc/apt/sources.list.xenial

# cp -p /etc/apt/sources.list{,.xenial}

9. Create the new /etc/apt/sources.list for 18.04 (bionic):

deb http://ch.archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse
deb http://ch.archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse

10. Run apt-get update and apt-get dist-upgrade. If apt asks to overwrite config files, usually chose "Y" to get the new config file from the updated package, unless you're sure that we require the current config file (in my case that was only nrpe.cfg).

# apt-get update && apt-get dist-upgrade

11. If no errors occurred during dist-upgrade, reboot

# reboot

12. Verify system/applications work

13. Enable additional apt sources in /etc/apt/sources.list.d (adjust them to match the new distribution version). Maybe this requires manual research to see if these additional/third party repos even support the new distribution version.

Hopefully these steps worked as fine for you as they did for me. It always depends on the applications you're running on the Ubuntu machine of course.


Add a comment

Show form to leave a comment

Comments (newest first)

No comments yet.

RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Office   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder