てっくらのーとは、触れた技術のメモと日常の記録が少し合わさった個人のサイトです。
Ubuntu16.04から18.04にアップグレードした
本サイトのUbuntuをアップグレードしました。16.04 LTS
とは言いながらアップグレードしないことはいかがなものだろうと思いながらも、2021年までは余裕があるしどうせならダウンタイムをゼロに出来るように構成したい、とアップグレードへの足枷が増していたのですが、先般のgit
の脆弱性のニュースがありそちらを対応するついでにやってしまおうと思ったのでした。
アップグレード手順
コマンドを書き並べていきます。
$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
お決まりのapt
のパッケージ更新コマンドを実行します。upgrade
の応答として下記のような表示となった場合はdpkg --configure -a
を行う、とあります。個人的には原因となるパッケージ名を確認してから実施したほうが良いと思うので直前にdpkg --audit
が欲しいなあ。
$ sudo apt upgrade
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
$ sudo dpkg --audit
The following packages are in a mess due to serious problems during
installation. They must be reinstalled for them (and any packages
that depend on them) to function properly:
tcpdump command-line network traffic analyzer
$ sudo dpkg --configure -a
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
早速、do-release-upgrade
でアップグレードを実行しようかなと思いましたが再起動を求められるので大人しく再起動します。さらば約8ヶ月起動した日々。
$ sudo do-release-upgrade
Checking for a new Ubuntu release
You have not rebooted after updating a package which requires a reboot. Please reboot before upgrading.
$ uptime
12:42:02 up 259 days, 10:44, 1 user, load average: 0.78, 0.64, 0.28
(再起動)
$ sudo do-release-upgrade
Reading cache
Checking package manager
各種設定
アップグレード中は何点か設定について選択する場面があります。
sshd
まずはssh。予備用のポートとして1022
を使用できますよという通知と、ファイアウォールを使用している場合は1022
をオープンしておいてね、という通知があります。y
を押しENTER
で進めます。下記ではファイアウォールとしてiptables
が想定されていますが、セキュリティグループなどなんやかんやが稼働していればそちらのお世話ももちろん必要になります。
Continue running under SSH?
This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.
If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?
Continue [yN]
To make recovery in case of failure easier, an additional sshd will
be started on port '1022'. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it's not done automatically. You can
open the port with e.g.:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT'
To continue please press [ENTER]
パッケージ削除/更新の内訳
削除/更新されるパッケージついて内訳を表示してくれています。アップグレードを開始する場合はy
。d
でパッケージの詳細を見ることができます。
アップグレード所要時間はtake several hours
と書かれていますが、正味15分程度でした。まあ所要時間はネットワーク環境によって上下するものなので参考までに。
Do you want to start the upgrade?
5 installed packages are no longer supported by Canonical. You can
still get support from the community.
4 packages are going to be removed. 167 new packages are going to be
installed. 553 packages are going to be upgraded.
You have to download a total of 579 M. This download will take about
1 minute with your connection.
Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.
Continue [yN] Details [d]
journald
journald.conf
について更新するかどうかを聞かれました。(確か何か設定変更していた記憶があるので)現状維持のN
を選択して次へ。
Configuration file '/etc/systemd/journald.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** journald.conf (Y/I/N/O/D/Z) [default=N] ?
grub
grub はプロンプトが表示されます。アローキーで操作できます。
show the differences between the versions
でdiffが閲覧できます。
支障はなさそうに見えたので、install the package maintainer's version
を選択。
openssh
ssh再び。
grub のときと同じようにアローキーで操作してdiffが閲覧できます。
一部隠ぺいしている通り、色々と内容を変更しているファイルですので、こちらはkeep the local version currently installed
を選択。
docker
デーモンの再起動をしないとトラブルが発生するよと脅し忠告をいただけるので、ここは素直にYes
を選択します。
逆に再起動さえ行えば、コンテナ含め正常稼働するだろうと目論んでいたのですが駄目でした。メッセージの後半でサービス化(systemd化?)していないコンテナも停止するよ、とあったので大丈夫かと考えていたのですが、実際コンテナ起動はdocker-compose
で制御しているのでその差異が影響していたのかも…と考えています。
というわけで数分間ですが本サイトが閲覧できない状態となっていました。すみません。
パッケージの削除
パッケージの削除を指定できます。これまでと同様にd
で内訳が閲覧できます。今回はy
で削除を選択しました。
Remove obsolete packages?
164 packages are going to be removed.
Removing the packages can take several hours.
Continue [yN] Details [d]
アップデート完了及び再起動
アップデートが完了し再起動するかどうかを訊かれます。y
で再起動に進みます。
System upgrade is complete.
Restart required
To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.
Continue [yN]
再接続して結果を確認します。
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
よかったよかった。