WSL の Ubuntu 16.04 LTS を 18.04 LTS にアップグレードしたときの手順を記録します。
目次
1. 公式な情報
マイクロソフト 及び Ubuntu からの情報は以下のページになります。
- A Guide to Upgrading your Ubuntu App’s Release – Windows Command Line Tools For Developers
- BionicBeaver/ReleaseNotes – Ubuntu Wiki
といってもあまり細かくは説明されていません。
1つ目のマイクロソフトのサイトでは、「sudo do-release-upgrade
コマンドを使え」というくらいしか書いてありません。
2つ目の Ubuntu のサイトではもう少し詳しくて、以下のような説明がされています。以下は、コマンドラインから行う場合の手順を翻訳したものです。
update-manager-core
をインストールします(まだインストールしていないのなら)。- /etc/update-manager/release-upgrades ファイル内の Prompt に “normal” をセットします(LTSではないバージョンにアップグレードする場合)。LTS バージョンにアップグレードする場合は、”lts” をセットします。
sudo do-release-upgrade
コマンドでアップグレードツールを開始します。- スクリーンに表示される指示に従います。
2. 現状確認
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS
Release: 16.04
Codename: xenial
3. アップグレード作業
(1) パッケージを最新の状態にする
現在インストールしているパッケージをアップグレードします。
$ sudo apt update
$ sudo apt upgrade
(2) update-manager-core をインストール
update-manager-core
をインストールする。
$ sudo apt install update-manager-core
しかしこれは既にインストールされていました。
そして、/etc/update-manager/release-upgrades ファイル内の Prompt には “lts” がセットされていました。
[DEFAULT]
Prompt=lts
(3) アップグレードを開始する
do-release-upgrade
コマンドでアップグレードを開始します。
まず、このコマンドのオプションをここにも記載しておきます。
$ do-release-upgrade -h
Usage: do-release-upgrade [options]
Options:
-h, --help show this help message and exit
-V, --version Show version and exit
-d, --devel-release If using the latest supported release, upgrade to the
development release
--data-dir=DATA_DIR Directory that contains the data files
-p, --proposed Try upgrading to the latest release using the upgrader
from $distro-proposed
-m MODE, --mode=MODE Run in a special upgrade mode. Currently 'desktop' for
regular upgrades of a desktop system and 'server' for
server systems are supported.
-f FRONTEND, --frontend=FRONTEND
Run the specified frontend
-s, --sandbox Test upgrade with a sandbox aufs overlay
-c, --check-dist-upgrade-only
Check only if a new distribution release is available
and report the result via the exit code
-q, --quiet
では実行します。
$ sudo do-release-upgrade
これ以降、表示された指示に従います。
途中、sshd の設定について聞かれました(表示が乱れています)。
sshd というのは、ssh のサーバーとしてのアプリケーション(接続を受け付ける側)を指しますが、特に何か設定していたつもりもなかったため「パッケージメンテナのバージョンをインストール] を選択しました。上の画像では、「現在インストールされているローカルバージョンを保持」が選択されていますが、正直 WSL で使っている Ubuntu においてはどちらでもあまり変わらないと思います。
更に指示に従い進めていきます。
最後に以下のメッセージが表示されました。
(省略)
システムのアップグレードが完了しました。
再起動が必要です
アップグレードを完了するには再起動が必要です。
'Y' を選択すると再起動します。
続行する[yN]
ここで y を押したのですが、以下のように表示されました。WSL の Linux は reboot コマンドが使えませんが、ここでも再起動できないようです。
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to talk to init daemon.
更に以下の指示が現れましたので、x を押して通常のターミナルに戻りました。
press x to destroy or r to resurrect
※ 実は最初 r も押したのですが、結局元の画面に戻るだけでした。
そして、この時点で Ubuntu 18.04 になっていました。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
(4) souces.list の更新
たまに、/etc/apt/sources.list
ファイル内の “xenial” となっている部分が “bionic ” に書き換えられていないことがあるようです。その場合は手動で書き換えます。
※ Ubuntu 16.04 LTS のコードネームが「xenial」、Ubuntu 18.04 LTS のコードネームが 「bionic」です。
念の為、現状の sources.list
ファイルをバックアップします。
$ sudo cp -p /etc/apt/sources.list ~/tmp/sources.list.backup
sources.list ファイルを書き換えます。
$ sudo sed -i 's/xenial/bionic/g' /etc/apt/sources.list
パッケージを更新します。
$ sudo apt update
$ sudo apt upgrade
4. おわりに
特に操作で困るようなことはありませんでしたが、結構な時間が掛かりますので、時間に余裕がある時にアップグレードすることをお勧めします。(2時間以上掛かりました)