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サブシステム
- 仮想マシンプラットフォーム
WSLを最新にアップデート
自分が試した限り、ストアでインストールする前にこの作業をやっておかないとWSL1でインストールされてしまい、後でアップデートの作業が必要になりました。先にこれをやっておくのがお薦めです。まず、Windows PowerShellを管理者モードで起動します。Windows10では、スタートボタンを右クリックし、「Windows PowerShell(管理者)」を選択します。
ここで、「wsl --version」としてみると、自分の場合は--versionというオプションは無いと言われました。これは、wslコマンドがとても古いことを意味しています。「wsl --update」と打ち込んで最新にします。
これにより、
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」だと見つかりました。Ubuntu 24.04 LTSを「入手」でインストールします。終わったら、そのまま「開く」で起動して下さい。スタートメニューに登録された「Ubuntu 24.04 LTS」を起動でもOKです。
WSLのターミナルが起動し、しばらく待った後、「Enter new UNIX username:」と聞かれるので、ユーザ名(たぶん半角英数のみ、先頭はアルファベット)を決めます。次にパスワードを聞かれるので、2度入力して下さい。このパスワードはアプリケーションのインストール等、管理者(root)になる必要があるときに何度も聞かれるので、忘れないようにしてください。
この状態で、Windows PowerShellの方で「wsl --list -v」してみると、ちゃんとUbuntu 24.04がVERSION 2で入ったことが確認できました。
ファイルのやりとり
この状態で、Windows側からWSL側のファイルを見るには、エクスプローラに追加されている「Linux」という項目を使うことができます。たとえばユーザ名が「kashi」なら、ここからhome→kashiと辿っていけばホームディレクトリの内容が見えます。また、「\\wsl.localhost\」とエクスプローラに打ち込んでも同じです。
逆にWSL側からWindows側のファイルは、「/mnt/c/」からアクセスすることができます。
アプリケーションの追加
ubuntuの最新化
ここから必要なアプリケーションをaptコマンドを使って追加していきますが、その前に絶対必要な作業があります。WSLのターミナルで、sudo apt update sudo apt upgradeとして、Ubuntu 24.04を最新にしてください。特に最初の1行が重要で、これをやらないとこの先のaptコマンドでのインストールが失敗してしまいます。
日本語化
メッセージ等を日本語化するため、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のターミナルで動くエディタ
Visual Studio Codeを使う
Visual Studio Codeという、Windows上で動くエディタがあります。これは、そのWindowsにインストールされたWSLと連携する機能を持っており、なかなか便利です。これをインストールして連携させてみます。Microsoft Storeで、「visual studio code」で検索すると見つかります。
インストールして起動したら、こんな感じになりました。
まずは、左下の歯車アイコン→Extensionで、「Japanese Language Pack for Visual Studio Code」を検索し、インストールします。「Change Language and Restart」というボタンを押せば、メニュー等が日本語になります。
同様に、左下の歯車アイコン→拡張機能で、「WSL」を検索し、インストールします。これでWSL連携機能が使えるようになります。いったん、Visual Studio Codeを閉じて、WSLのターミナルで、「code .」(末尾のドットに注意)と入力すると、WSL側のカレントディレクトリが見えた状態でVisual Studio Codeが開きます。「このフォルダの作成者を信頼しますか?」などと聞かれたら「はい」。
更に上部のメニューで「ターミナル→新しいターミナル」とすれば、WSLのターミナルがVisual Studio Codeの画面内に現れて、以降はVisual Studio Codeの画面内だけで作業が完結するようになります。
TeXの執筆作業は、こんな感じになりました。この画面では、vscode-pdfというpdfをVisual Studio Codeの中で見ることができるようになる拡張機能を追加しています。LaTeX Workshopという拡張機能を入れるとすごく便利らしいですが、それは検証してません。
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」を起動します。すると、
のように「Fcitxの設定」が立ち上がると思います。ここで、真ん中の「←→↑↓」ボタンを使って、左ペインを、
- キーボード - 英語(US)
- Mozc
- キーボード - 日本語
- Mozc
のようになると思います。「OK」で閉じて下さい。これで、かな漢字変換が使えるようになっています。例えば、
sudo apt install -y geditなどとして、geditエディタで日本語が書けるのを確認して下さい。
他にも、
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執筆は次のような感じで行えます。
アンインストール
さて、これらのソフトは複雑に連携していて、操作ミスで壊してしまうこともあるかと思います。そこで、きれいさっぱりアンインストールする方法を書いておきます。WSLのアンインストール
まず、Windows PowerShellを管理者モードで起動し、「wsl --list -v」でインストールされている名前を調べ、「wsl --unregister Ubuntu-24.04」のように登録を解除します。解除後、スタートメニューの設定(歯車アイコン)→アプリで、Ubuntu 24.04 LTSを探してアンインストールします。
Visual Studio Codeのアンインストール
まず、普通にスタートメニューの設定(歯車アイコン)→アプリで、Microsoft Visual Studio Codeを探してアンインストールします。これだけでは不十分で、
- c:\Users\(ユーザ名)\.vscode
- c:\Users\(ユーザ名)\AppData\Roaming\Code