【WSL2】Ubuntu 20.04.4 LTS を 22.04 LTS へアップグレードした
はじめに
先日、2022年4月21日にUbuntu 22.04 LTS Jammy Jellyfishがリリースされました。これは2020年4月23日にリリースされたUbuntu 20.04 LTSの次のLTSリリースとなります。
現在WSL2(Windows Subsystem for Linux)ではUbuntuの18.04 LTSと20.04.4 LTSのLTSリリースがMicrosoft Storeにて提供されています。
記事執筆現在、wsl --list --online
で確認できるディストリビューションリストには表示されていませんが、Microsoft Storeには掲載されております。
以下のページからUbuntu 22.04 LTSを新規にダウンロードしてWSL2で実行できます。
新規にインストールすることはもちろん可能なのですが、現在使用しているLTS環境を引き続ぐ形でバージョンをアップグレードすることも可能となります。
今回はWindowsで開発する際にメイン利用していたUbuntu 20.04.4 LTSを早速22.04 LTSへアップグレードしてみたので備忘録としてまとめていきます。
余談にはなりますが、この記事は以下の手順でアップグレードしたWSL2上のUbuntu 22.04 LTSですべて執筆しています。
アップグレードのインストール準備
アップグレードを行う前に、現在実行しているバージョンの把握とパッケージの依存関係を最新にし解決しておきます。事前準備をすることで、この後の作業を進めやすくなります。
アップグレードの際に日本語表示できたほうが原因の特定がしやすくなるのでUbuntuのロケール変更と日本語対応させておくのがおすすめです。
WSL2のUbuntu日本語対応については以前執筆した「WSL2を日本語化するときにやったこと」の記事内で解説しております。以下の表示項目は日本語対応させた環境での出力結果となることをご了承下さい。
現行バージョンを確認
まず、現在実行しているUbuntuのバージョン情報を確認しておきます。
WSL2にてUbuntuを起動し、バージョン情報が記述されたファイルをcat
で確認します。Ubuntuは/etc/os-releaseからバージョンの詳細を確認できます。
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.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=focal
UBUNTU_CODENAME=focal
バージョン情報が確認できました。上の例だと2行目VERSION="20.04.4 LTS (Focal Fossa)"
の部分からUbuntu20.04.4 LTSが実行されていることが読み取れます。
パッケージの依存解決
Ubuntuにインストールしているパッケージのアップデートと依存解決を行います。
$ sudo apt update && sudo apt upgrade
上記のコマンドでパッケージのアップデートとアップデートを同時に行い、パッケージを最新の状態にしておきます。
ディストリビューションアップデートの確認
ディストリビューションのアップグレードを確認するために必要なパッケージをインストールします。
$ sudo apt dist-upgrade && sudo apt install update-manager-core
ディストリビューションアップグレードの依存解決が行われます。apt install update-manager-core
は、update-manager-coreが存在しなかった場合のみインストールが行われます。
エラー、警告がでないことを確認したら次のステップに進みます。
relese-upgradeの設定
relese-upgradeの設定ファイルを変更します。以下のファイルをエディタで開きます。このとき使用するエディタはVimやnanoなど普段使用しているもので問題ありません。
# sudoでファイルを開く
$ sudo vim /etc/update-manager/release-upgrades
ファイルの一番下にPrompt
という項目があります。ここの値をlts
に変更します。すでにLTSリリースを使用している場合はデフォルトでPrompt=lts
となっているため変更する必要はありません。
設定を確認しファイルを閉じます。値を変更した場合はファイルを保存して閉じるようにします。
これで最新のLTSへアップグレードする準備が完了しました。
アップグレードの実行
ここまでで最新のLTSへのアップグレード準備が完了しているため、アップグレードの実行に着手していきます。アップグレードの前に重要なファイルや個人設定をバックアップしておくのがおすすめです。
上記の設定後に以下のコマンドを実行するだけでアップグレード処理が始まります。
sudo do-release-upgrade -d
アップグレードに伴うパッケージの依存関係の解決が行われていくので完了するまで待ちます。処理が一旦完了した際に以下のような同意を求められます。
アップグレードをインストールするのに数時間かかることがあります。
ダウンロードが完了してしまうと、処理はキャンセルできません。
続行する[yN] 詳細 [d]
d
で変更が行われる箇所の詳細情報を確認できます。y
でダウンロードとアップグレードに同意します。警告がでているように、アップグレード開始後のキャンセルは非推奨となるため、ここでアップグレードにて削除される項目、追加される項目について目を通しておくことをおすすめします。
アップグレードのインストールには時間がかかるため気長に待ちます。途中でパッケージの削除について以下のような確認を求められた場合はy
で確認して続行します。
アップグレードの途中で以下のようなsshdの設定について聞かれる場合があります。
なぜかUIが崩れています...
ここは自身の環境に応じて適宜選択してください。私は上から2番目の「現在インストールされているローカルバージョンを保持」を選択しました。
サポートが中止された(あるいはリポジトリに存在しない)パッケージを削除しますか?
71 個のパッケージが削除されます。
サポートされなくなったパッケージが削除されたのちにアップグレードは完了します。
システムのアップグレードが完了しました。
再起動が必要です
アップグレードを完了するには再起動が必要です。
'Y' を選択すると再起動します。
上の表示があった時点でアップグレードは完了しています。
画面の指示に従いy
と入力してシェルを再起動します。シェルの再起動に失敗する場合は、Windows Terminalなどで再度開きなおすことで解決します。
アップグレード後のバージョンを確認
正常にアップグレードできているかバージョンを確認します。アップグレード前と同じようにUbuntuの場合はcat /etc/os-release
で確認できます。
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
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"
UBUNTU_CODENAME=jammy
20.04.4と比べた場合各項目の順番がと少し異なっております。
VERSION="22.04 (Jammy Jellyfish)"
と記載されていることを確認できればアップグレードは問題なく完了しております。
おわりに
今回はWSL2で動かしているUbuntu 20.04.4 LTSをUbuntu 22.04 LTSへアップグレードする手順についてまとめました。
普段使用している環境をそのままアップグレードすることで、情報を引き続きつつ、新しいバージョンを使い続けられるのはメリットだと感じます。Ubuntu 22.04.4はLTSリリースとなり、2027年5月までサポートされるとのことだったので、長期間安定したバージョンを使い続けられるという安心感はありますね。
Ubuntu 22.04 LTSの変更点については現在勉強中のため、引き続きWSL2をメイン環境として使用しつつ理解を深めていきたいです。
最後まで読んでいただきありがとうございました。
Discussion