WSL2の環境管理まとめ|環境の複製・分離・Ubuntuのアップグレード
/ 6 min read
Table of Contents
はじめに
WSL2は、環境をまるごとファイルに書き出して別の名前で復元できます。この仕組みが分かると、壊す前提で試すことができるようになります。
環境の複製と、Ubuntuのバージョンアップの手順をまとめました。
環境を確認する
# インストール済みの環境と状態を表示$ wsl -l --verbose
# 実行中のものだけ$ wsl -l --running--verbose(-v)を付けると、名前・状態・WSLのバージョンが表になって出ます。
環境を複製して分ける
用途ごとに環境を分けたいときは、エクスポートしてから別名でインポートします。
# 環境をtarファイルに書き出す$ wsl --export Ubuntu Ubuntu-copy.tar
# 別の名前で取り込む$ wsl --import Ubuntu-copy C:\wsl\Ubuntu-copy C:\tmp\Ubuntu-copy.tar--import の引数は、登録する環境名 / インストール先のディレクトリ / 取り込むtarファイルの順です。インストール先は既存の環境と別の場所を指定してください。
起動するときは名前を指定します。
$ wsl -d Ubuntu-copy不要になったら登録を解除します。
$ wsl --unregister Ubuntu-copyUbuntuをアップグレードする
LTSから次のLTSへ上げる手順です。
# まず現状を最新にする$ sudo apt update && sudo apt upgrade -y
# アップグレード管理ツールを入れておく$ sudo apt install update-manager-core
# LTSからLTSへ上げる設定になっているか確認する$ sudo vim /etc/update-manager/release-upgrades# -> Prompt=lts になっていればOK
# アップグレード可能なバージョンを確認する$ sudo do-release-upgrade -c
# 実行する$ sudo do-release-upgrade以後は表示される指示に従って進めます。終わったらバージョンを確認します。
$ cat /etc/os-releaseアップグレード後にDockerを入れ直す
ディストリビューションのバージョンが変わると、aptのリポジトリ設定も新しいコードネームに合わせる必要があります。
# GPGキーの追加$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# リポジトリの追加(lsb_release -cs で現在のコードネームが入る)$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新して入れ直す$ sudo apt update && sudo apt upgrade -y$(lsb_release -cs) を使っているので、アップグレード後のコードネームが自動的に入ります。バージョンを直接書いていると、ここが古いままになって apt update が失敗します。
おわりに
WSL2は、環境を壊しても --import で戻せるのが大きな利点です。作業前にexportしておくという一手間を習慣にしておけば、アップグレードも新しいツールの検証も気軽に試せます。
