目次
WSL2のUbuntu18.04LTSを、最新の20.04LTSにアップグレード
Windows11のWSL2にインストールしてあるUbuntuを18.04LTSから20.04LTSにアップグレード(ubuntu 18.04 to 20.04)します。
18.04LTSは2023年4月までのサポートで、20.04LTSは2025年4月までだからです。
簡単なはずが、意外に躓きところが多かったので、そのままリアルに描いていきます。
アップグレード手順
現在インストールされているバージョンを確認します。
lsb_release -a
こう表示されました。
間違いなく18.04LTSです。
1.現在の環境を最新化する。
まず環境を最新にするため、Updateします。
sudo apt update
アップグレード対象があるかの確認をします。
確認が必要なければ、ここは飛ばしても大丈夫です。
sudo apt list --upgradable
アップグレード対象を実際に更新します。
sudo apt upgrade
2.パッケージソースのクリーンアップ
未使用のパッケージを削除します。
sudo apt --purge autoremove
途中で
Do you want to continue? [Y/n]
と聞いてくるので「y」を入力して続行します。
3.アップデートコアパッケージのインストール
アップデート マネージャー コア パッケージをインストールすることで、システムは新しい LTS が利用可能であると認識します。
これによって、インプレース アップグレードを実行できるようになるわけです。
sudo apt install update-manager-core
実行画面のイメージです。
4.リリースアップグレードの実行(1つ目の躓き)
リリースのアップグレードをします。
実行前に以下のコマンドをうってupgradeを試みます。
sudo do-release-upgrade -d
どういうわけか、以下のようなメッセージがでて止まってしまいました。
でも、気にしないで、今度は「-d」をつけずに、もう一回やります。
sudo do-release-upgrade
このあたり、記事によって「-d」なしでエラーになったら「-d」をつける・・みたいに書いているものもあるので、いろいろなのかもしれませんが、僕の場合はこれでいったんいけました。
5.リリースアップグレードの実行(2度目の躓き)
upgradeは始まりました。
ですが、今度は、途中で以下のような画面を表示してとまってしまいました。
Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink
また、悩ましいメッセージです。
シンボリックリンクが壊れているっぽいので再作成します。
sudo ln -fs /usr/bin/python3.6 /usr/bin/python3
6.リリースアップグレードの実行(3度目の躓き)
こののち、再度以下を実行します。
sudo do-release-upgrade
すすみましたが、また、以下のようなメッセージで止まってしまいました。
Command terminated with exit status 1
今度は「snap」のキャッシュの処理でエラーがでているようです。
若干乱暴ですが、snapを削除することで対応します。
sudo apt remove snapd
7.リリースアップグレードの実行(やっといけた)
この後で再度アップグレードを実行します。
sudo do-release-upgrade
今度はすすみはじめました。
途中、ENTERを押せとか、continueで[yn」とか何度も聞いてきます。
結構時間もかかります。
途中で紫の背景の画面がでてきて、そこだけは「Tab」キーを押して「yes」を選択しないといけなかったりしますが、どんどん進めていけば、最終的に「System upgrade is complete.」とでてきたらOKです。
WSL2でやってると、最後のcontinueに「y」をすると、リブートできないのでエラーになりますが・・ここは、気にしないでおきます。
8.ターミナルを立ち上げなおしてバージョン確認
最後に、Windowsターミナルを立ち上げなおしてバージョン確認します。
lsb_release -a
画面表示は
なんとかいけてます。
最後に、アップグレードを動かすために削除した「snaped」が気になったので、インストールをかけてみたところ
snapd is already the newest version (2.57.5+20.04).・・つまり、snapdはすでに最新版になっているよ・・なので、大丈夫でした。
やれやれです。
ではでは。