Today after I updated the packages on my blog digital ocean droplet (here’s my entire wordpress setup) I discovered that it was ready to be upgraded to the new Ubuntu 16.04.1 LTS.
DigitalOcean already offers a wonderful guide for you to follow, but there were some caveats on my system that needed to be fixed before and after the upgrade.
- MariaDB repository
- Nginx failed to restart
here’s how I fixed it.
MariaDB Repo Authentication
If you followed my guide or configured your system with MariaDB it may happen that you get this error while upgrading your ubuntu
It was not possible to authenticate some packages. This may be a
transient network problem. You may want to try again later. See below
for a list of unauthenticated packages.
This might happen because the repo for the trusty has a different apt-key than the repo for the xenial.
To fix this head over at MariaDB Repository page and search for the new xenial repo (be sure to take the same MariaDB version you have right now).
Check the url of your mirror in the /etc/apt/sources.list to match the right one here.
This should fix the It was not possible to authenticate some packages. error 😉
Failed to start nginx.service: Unit nginx.service is masked.
This can happen once you have updated all your system and upgraded it, after the last reboot
Why this happens? My guess is that in Ubuntu 16.04 they moved onto systemctl which has a totally different way to behave compared to the old service model.
So, for reasons unknown to me, some services got masked (disabled) and therefore cannot start.
I cannot say the exact reason, but there’s obviously a way to fix it.
The Good Way – Unmasking
If you’re wondering why there’s a good and bad way, the reason is simple: I first stumbled upon the bad way and used it myself, but couldn’t believe that it was the right solution.
I used systemctl on other vps machines and never had this problem, so there should have been a better way.
And there it is 🙂 you use the systemctl to unmask it and then re-enable it correctly.
sudo systemctl unmask nginx.service sudo systemctl enable nginx.service sudo systemctl restart nginx.service
The Raw and Bad way – removing the file
If you search the web you’ll also find this way of fixing the problem, which is not the best (but still works) and it’s made of one simple command (I added a backup, just in case)
sudo cp /etc/systemd/system/nginx.service /root/nginx.service.backup sudo rm /etc/systemd/system/nginx.service sudo reboot
Every time I upgrade a system I am always worried, and as such I advice you to always take a snapshot of your VPS to keep just in case it goes wrong.
Aside from this, there were many things that worked flawlessly so these 2 issues are minor compared to the whole upgrade, although it did scare me to death.