2024/05/07(火)Ubuntu 24.04 インストール (オマケ) WSL2

はじめに

Ubuntu 24.04 インストールシリーズのオマケとして、Windows 10/11のWSL2のインストールについて書いてみます。

WSLについて書くのは、2016年のbash on Ubuntu on Windowsを試してみるの記事以来です。当時はまだWSLとは呼ばれていませんでした。WSL1からWSL2になって仮想マシンを使うようになって性能及び互換性が向上し、またWSL-gとなってX serverを別にインストールしなくてもGUIアプリを動かすことができるようになりました。ちょうどWSL2の中に入れられるLinuxとしてUbuntu 24.04も出たので、ここらでインストール方法についてまとめてみました。Windows 10でもWindows 11でも基本的には同じと思いますが、まっさらなWindows 10に入れてみました。

マシンに慣れていない人でも分かるように、画像をたくさん貼り付けてみました。プログラミングの演習のためにパソコンを設定する大学1年生あたりを想定しています。今更ですが買ったばかりのマシンに設定することを想定するなら、Windows 11でやれば良かった…

インストール

VT-x

WSL2になって仮想マシンを使うようになって性能が向上したのですが、それと引き換えに、VT-xと呼ばれる機能をBIOS(正確にはUEFI?)で有効にする必要があります。ほとんどのマシンで有効になっているとは思いますが、もしなっていない場合、BIOSに入って有効にする必要があります。入り方はマシン毎に千差万別なので説明のしようもありませんが、起動時にDEL連打、もしくはF2連打のマシンが多い気がします。うまくBIOSに入れたら、Intel VT-x (Intel CPUの場合) もしくはAMD-V Virtualization (AMD CPUの場合)を探してオンにして下さい。

Windowsの機能の有効化

「Windowsの機能の有効化または無効化」(Windows10なら、スタートボタン→Windowsシステムツール→コントロールパネル→プログラム→Windowsの機能の有効化または無効化)で、
  • Linux用Windowsサブシステム
  • 仮想マシンプラットフォーム
の2つにチェックを入れて再起動する必要があります。

wsl01.png

WSLを最新にアップデート

自分が試した限り、ストアでインストールする前にこの作業をやっておかないとWSL1でインストールされてしまい、後でアップデートの作業が必要になりました。先にこれをやっておくのがお薦めです。

まず、Windows PowerShellを管理者モードで起動します。Windows10では、スタートボタンを右クリックし、「Windows PowerShell(管理者)」を選択します。

wsl02.png
wsl03.png


ここで、「wsl --version」としてみると、自分の場合は--versionというオプションは無いと言われました。これは、wslコマンドがとても古いことを意味しています。「wsl --update」と打ち込んで最新にします。

wsl04.png


これにより、
WSL バージョン: 2.1.5.0
カーネル バージョン: 5.15.146.1-2
WSLg バージョン: 1.0.60
MSRDC バージョン: 1.2.5105
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.19045.4291
になりました。

Microsoft StoreからUbuntu 24.04をインストール

ここでMicrosoft Storeを起動し、Ubuntu 24.04を検索してインストールします。どういうわけだか、「WSL」では検索に引っかからず、「ubuntu」だと見つかりました。

wsl05.png
wsl06.png


Ubuntu 24.04 LTSを「入手」でインストールします。終わったら、そのまま「開く」で起動して下さい。スタートメニューに登録された「Ubuntu 24.04 LTS」を起動でもOKです。

wsl07.png


WSLのターミナルが起動し、しばらく待った後、「Enter new UNIX username:」と聞かれるので、ユーザ名(たぶん半角英数のみ、先頭はアルファベット)を決めます。次にパスワードを聞かれるので、2度入力して下さい。このパスワードはアプリケーションのインストール等、管理者(root)になる必要があるときに何度も聞かれるので、忘れないようにしてください。

wsl08.png


この状態で、Windows PowerShellの方で「wsl --list -v」してみると、ちゃんとUbuntu 24.04がVERSION 2で入ったことが確認できました。

wsl09.png

ファイルのやりとり

この状態で、Windows側からWSL側のファイルを見るには、エクスプローラに追加されている「Linux」という項目を使うことができます。

wsl12.png


たとえばユーザ名が「kashi」なら、ここからhome→kashiと辿っていけばホームディレクトリの内容が見えます。また、「\\wsl.localhost\」とエクスプローラに打ち込んでも同じです。

wsl13.png


逆にWSL側からWindows側のファイルは、「/mnt/c/」からアクセスすることができます。

アプリケーションの追加

ubuntuの最新化

ここから必要なアプリケーションをaptコマンドを使って追加していきますが、その前に絶対必要な作業があります。WSLのターミナルで、
sudo apt update
sudo apt upgrade
として、Ubuntu 24.04を最新にしてください。特に最初の1行が重要で、これをやらないとこの先のaptコマンドでのインストールが失敗してしまいます。

wsl10.png
wsl11.png

日本語化

メッセージ等を日本語化するため、WSLのターミナルで
sudo apt install -y language-pack-en
sudo apt install -y language-pack-ja
sudo update-locale LANG=ja_JP.UTF8
として、いったんWSLターミナルを閉じて再度スタートメニューから起動します。language-pack-enの方はすぐには不要かもですが、無いと何かと不便なのでこちらもついてに入れておきます。自分の環境では、Visual Studio CodeでのWSLターミナルで問題が発生しました。

アプリケーションのインストール

ここまで来れば、後は好きなように環境を整えていきます。以前と違ってWSLターミナルの中ではWindowsのIMEを使って日本語を書くことが出来るようになっています。GUIアプリもgnuplotなどの簡単なアプリなら動きます。自分は、Ubuntu 24.04 インストール (リンク集)のうちからapache, sambaなどを除き、適当に抜粋して次のようなものを入れてみました。
sudo apt install -y texlive-full
sudo apt install -y nkf
sudo apt install -y gnuplot
sudo apt install -y tgif
sudo apt install -y pdfarranger
sudo apt install -y pdftk-java
sudo apt install -y build-essential
sudo apt install -y clang
sudo apt install -y libboost-all-dev
sudo apt install -y default-jdk
sudo apt install -y lua5.4
sudo apt install -y liblua5.4-dev
sudo apt install -y luajit
sudo apt install -y gfortran
sudo apt install -y python3
sudo apt install -y python3-dev
sudo apt install -y python3-numpy
sudo apt install -y python3-scipy
sudo apt install -y python3-matplotlib
sudo apt install -y python3-sympy
sudo apt install -y python3-mpmath
sudo apt install -y ipython3
sudo apt install -y python-is-python3
sudo apt install -y octave
sudo apt install -y octave-dev
sudo apt install -y libgmp-dev
sudo apt install -y libmpfr-dev
sudo apt install -y gcc-multilib
sudo apt install -y g++-multilib
sudo apt install -y nim
sudo apt install -y lv
この段階でも、
  • メモ帳等、任意のwindowsのエディタ
  • (抵抗が無ければ) vi, nano等のLinuxのターミナルで動くエディタ
を用いてhome directoryにファイルを作成し、プログラミングを行ったり、TeXのコンパイルを行う(pdfを見るのはEdge等windowsアプリで)ことが出来ます。

wsl14.png

Visual Studio Codeを使う

Visual Studio Codeという、Windows上で動くエディタがあります。これは、そのWindowsにインストールされたWSLと連携する機能を持っており、なかなか便利です。これをインストールして連携させてみます。

Microsoft Storeで、「visual studio code」で検索すると見つかります。

wsl16.png
wsl17.png


インストールして起動したら、こんな感じになりました。

wsl18.png


まずは、左下の歯車アイコン→Extensionで、「Japanese Language Pack for Visual Studio Code」を検索し、インストールします。「Change Language and Restart」というボタンを押せば、メニュー等が日本語になります。

wsl19.png


同様に、左下の歯車アイコン→拡張機能で、「WSL」を検索し、インストールします。これでWSL連携機能が使えるようになります。いったん、Visual Studio Codeを閉じて、WSLのターミナルで、「code .」(末尾のドットに注意)と入力すると、WSL側のカレントディレクトリが見えた状態でVisual Studio Codeが開きます。「このフォルダの作成者を信頼しますか?」などと聞かれたら「はい」。

wsl20.png


更に上部のメニューで「ターミナル→新しいターミナル」とすれば、WSLのターミナルがVisual Studio Codeの画面内に現れて、以降はVisual Studio Codeの画面内だけで作業が完結するようになります。

wsl21.png


TeXの執筆作業は、こんな感じになりました。この画面では、vscode-pdfというpdfをVisual Studio Codeの中で見ることができるようになる拡張機能を追加しています。LaTeX Workshopという拡張機能を入れるとすごく便利らしいですが、それは検証してません。

wsl15.png

GUIアプリケーションを(無理やり)整える

ここから先はあまりお薦めではないかもです。Ubuntuで普段使っているGUIアプリを無理やり動かしてみます。WSLでは、WSLターミナル上ではWindowsのIMEを使って日本語入力が出来ますが、それ以外のGUIアプリケーションで日本語を入力する手段がありません。ここでは、Ubuntuのかな漢字変換システムをインストールして、それを可能にしてみます。

まず、WSLターミナルで、
sudo apt install -y fcitx5-mozc
を実行します。次に、home directoryの「.profile」の末尾に、
while true; do
  dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY 2> /dev/null && break
done

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
export INPUT_METHOD=fcitx5
export DefaultIMModule=fcitx5
if [ $SHLVL = 1 ] ; then
  (fcitx5 --disable=wayland -d --verbose '*'=0 &)
  xset -r 49
を書き加え、いったんWSLターミナルを閉じて再度起動します。再起動後、WSLターミナルで、「fcitx5-configtool」を起動します。すると、

wsl22.png


のように「Fcitxの設定」が立ち上がると思います。ここで、真ん中の「←→↑↓」ボタンを使って、左ペインを、
  • キーボード - 英語(US)
  • Mozc
から、
  • キーボード - 日本語
  • Mozc
に変更して下さい。

wsl23.png


のようになると思います。「OK」で閉じて下さい。これで、かな漢字変換が使えるようになっています。例えば、
sudo apt install -y gedit
などとして、geditエディタで日本語が書けるのを確認して下さい。

wsl24.png


他にも、
sudo apt install -y x11-apps
sudo apt install -y firefox
sudo apt install -y firefox-locale-ja
sudo apt install -y lxterminal
sudo apt install -y nautilus
sudo apt install -y evince
sudo apt install -y eog
などを入れました。gnome-terminal, gnome-text-editorは少し不安定な感じがしたので、それぞれlxterminal, geditで代用することにしました。

これで、普段ubuntuで行っている作業が(やや不安定ながらも)WSLで行えるようになりました。例えばTeX執筆は次のような感じで行えます。

wsl25.png

アンインストール

さて、これらのソフトは複雑に連携していて、操作ミスで壊してしまうこともあるかと思います。そこで、きれいさっぱりアンインストールする方法を書いておきます。

WSLのアンインストール

まず、Windows PowerShellを管理者モードで起動し、「wsl --list -v」でインストールされている名前を調べ、「wsl --unregister Ubuntu-24.04」のように登録を解除します。

wsl26.png


解除後、スタートメニューの設定(歯車アイコン)→アプリで、Ubuntu 24.04 LTSを探してアンインストールします。

wsl29.png

Visual Studio Codeのアンインストール

まず、普通にスタートメニューの設定(歯車アイコン)→アプリで、Microsoft Visual Studio Codeを探してアンインストールします。

wsl28.png


これだけでは不十分で、
  • c:\Users\(ユーザ名)\.vscode
  • c:\Users\(ユーザ名)\AppData\Roaming\Code
の2つのフォルダを削除してください。

おわりに

お楽しみいただければ幸いです。おかしなところがあればお知らせ下さい。特に無理やりUbuntuのGUIを使うあたりは、いろいろ改善点があると思います。
OK キャンセル 確認 その他