Ubuntu 16.04→18.04→20.04 アップグレード録

imatomix
2021年12月1日 0:11

概要

サボり続けていた本サイトのWebサーバーのOS(Ubuntu)を16.04LTS→18.04LTS→20.04LTSと一気にアップグレードしました。やる度に手順を忘れているのと、毎回必ずトラブルので、未来の自分のためにメモを残しておきます。

基本手順

インストール可能なパッケージの一覧を更新する。
$ sudo apt update

新しいパッケージをインストールする。不要なパッケージは削除する。
$ sudo apt dist-upgrade

アップデートマネージャーを実行して、Ubuntuのバージョンをアップグレードする。コマンド実行後、いろいろ確認画面がでるので、yで許可する。
$ sudo do-release-upgrade -d

これでUbuntuが 16 → 18 となるので、もう1度上記手順を繰り返し、 18 → 20 にする。
意外にもWebサーバーは起動しっぱなしでアップグレードできた(そういうものなの?)。ただ念のために最後にはリスタートをかけた。

トラブル

update や upgrade の時点でエラーが出まくりだった。基本的にはエラー時に表示される方法で対処していくが、以下のパッケージに関するエラーがどうにも解消されなかった。
  • ubuntu-advantage-tools
  • 更新に失敗する
  • perl-modules-5.22
  • 競合エラー

最終的にはパッケージの削除で回避した。
$ apt remove ubuntu-advantage-tools

メモ

現バージョンの確認

$ cat /etc/os-release

apt と apt-get

ググるとaptapt-getが混在していてよくわからなかったので調べた。

apt-getは設計上問題があるとのことで、現在はaptへの移行が推奨されている。ただし、apt-getのほうがアップデート容量が少なかったり、優位な点もあるらしく、詳しい人は使い分けるらしい。

apt update と apt upgrade

updateupgrade の違いがよくわからない。すべては名前のせい。
  • apt updateは、更新するパッケージのリストを作成するためのコマンド。パッケージの更新自体は行わない。
  • apt upgradeは、リストに沿ってパッケージを更新するためのコマンド。
  • apt dist-upgrade は、不要になったパッケージを削除してくれる。