WSL2とLinuxディストリビューションのインストール方法とWSL2で動作させているUbuntuで発生した問題点と修正方法について紹介します。
WSL2とは
WSL (Windows Subsystem for Linux) とは、Windows上でLinuxを動作させるための実行環境です。現在はバージョン2になっており、WSL2からGPUへのアクセスが可能になりました。
WSL2とLinuxディストリビューションのインストール
PowerShellまたはコマンドプロンプトを管理者権限で開きます。
wsl --install
このコマンドでWSL2とLinuxディストリビューション(デフォルトだとUbuntu)がインストールされます。
インストールが完了したらシステムを再起動してください。インストールしたLinuxディストリビューションはアプリとして追加されているのでスタートメニューから起動することができます。
Linuxディストリビューションのアカウント作成
Linuxディストリビューションを初めて起動するとユーザーアカウントを設定します。作成したアカウントは、そのLinuxディストリビューションの規定のユーザー(管理者)となり起動時に自動的にサインインされます。
ユーザー名とパスワードを設定します。パスワードは入力しても画面には何も表示されないので注意してください。
Linuxディストリビューションの追加・削除
PowerShellまたはコマンドプロンプトを管理者権限で開きます。
インストールできるLinuxディストリビューションの一覧
wsl --list --online
Linuxディストリビューションを追加でインストール(例 Debian)
wsl --install -d Debian
インストールされているLinuxディストリビューションの一覧
wsl --list --verbose
Linuxディストリビューションの停止(例 Debian)
wsl --terminate Debian
Linuxディストリビューションの解除(例 Debian)
wsl --unregister Debian
登録を解除すると関連付けられているすべてのデータは削除されます。アプリを再度起動するとユーザーアカウントの設定からになります。アプリも不要な場合はアンインストールしてください。
WSL2のUbuntuの使い方
アプリからUbuntuを起動します。GUIはなく基本的にコマンドでの操作になります。
フォルダの移動
カレントディレクトリ(現在いるディレクトリ)の確認
pwd
カレントディレクトリ内にあるファイルの一覧を表示
ls
カレントディレクトリ内のフォルダへ移動(例 Downloadフォルダへ移動)
cd Download
現在のユーザーのホームディレクトリへ移動
cd
Windowsのエクスプローラーからも\\wsl$で中身を確認できます。
初期セットアップ
最新のパッケージ情報をリポジトリから取得
sudo apt update
インストール済みのパッケージを最新のバージョンにアップグレード
sudo apt upgrade
開発ツールやライブラリ、コンパイラなどの主要なビルドツールをインストール
sudo apt install build-essential
WSL2でのUbuntuの問題点
libcuda.so.1 is not a symbolic link
WSL2でsudo apt upgradeを実行する”libcuda.so.1 is not a symbolic link”と警告が出る問題について以下で議論されています。
これらはCUDA関連のビルドや実行で問題が起こる可能性があります。いくつかの回避策が提案されておりそのひとつを紹介します。
/etc/wsl.confに ldconfig = falseを追加
echo -e "[automount]\nldconfig = false" | sudo tee -a /etc/wsl.conf
/usr/lib/wsl/lib2フォルダを作成
sudo mkdir /usr/lib/wsl/lib2
/usr/lib/wsl/lib内のファイルに対して/usr/lib/wsl/lib2にシンボリックリンクを作成
sudo ln -s /usr/lib/wsl/lib/* /usr/lib/wsl/lib2
/etc/ld.so.conf.d/ld.wsl.confファイルに/usr/lib/wsl/lib2のパスを追加
echo /usr/lib/wsl/lib2 | sudo tee /etc/ld.so.conf.d/ld.wsl.conf
ld: cannot find -lcuda: No such file or directory
lcudaが見つからずtiny-cuda-nnのビルドに失敗します。
環境変数の設定で以下のパスを追加してください。(cudaのバージョンは自身の環境に合わせてください)
export LIBRARY_PATH="/usr/local/cuda-12.3/lib64/stubs:$LIBRARY_PATH"
WSL環境ではほかにもさまざまな問題起こる可能性があるかもしれません。GPUを活用したアプリケーションの利用には、完全なLinux環境を構築するのがよいかと思います。