はじめに
自分のPCのwsl(Windows Subsystem for Linux)を構築しなおすことになったので、自分好みの環境を構築するまでの手順を備忘録的にまとめておきます。
wslを有効にするまでの各種設定は済んでいる前提で進めます。
1. WSLのインストール
PowerShellから以下のコマンドを入力。インストールしたいディストリビューションを決めます。
wsl -l --online
今回はUbuntu 22.04 LTS
を導入します。
以下のコマンドでインストール
wsl --install Ubuntu-22.04
インストールが終わったら、UsernameとPasswordの入力を求められるので入力してください。
そしたら次に各パッケージのアップデートとアップグレードを済ませてしまいましょう。
インストールしたディストリビューションのコンソールで以下を実行。
sudo apt update
sudo apt upgrade
2. GithubへのSSHキーの登録
ホームディレクトリで以下のコマンドを実行
ssh-keygen -t ed25519
いろいろ聞かれますが、何も入力せずEnter連打でOK
そしたらホームディレクトリに.ssh
ディレクトリが作成されるので、その中に生成されたsshキーをgithubに登録します。
.ssh
ディレクトリの中には2つのファイルが生成されていると思いますが、.pub
とついているファイルの中身を控えておきます。
今回はクリップボードにコピーします。
cd ~/.ssh
cat id_ed25519.pub | clip.exe
そしたらGithubを開き、settings > SSH and GPG keys > New SSH key
を押します。
Titleにはこのsshキーがどのデバイス/ディストリビューションのものであるかわかるような説明でも書いておきましょう。
Key typeはAuthentication
Keyには先ほどクリップボードにコピーしたsshキーを貼り付けます。
欄が埋まったらAdd SSH key
をクリック。
そしたらUbuntuに戻り、登録したSSHキーが正しく動作するかチェックします。
以下のコマンドを実行
ssh -T git@github.com
「Hi あなたの名前
! You've successfully authenticated, but GitHub does not provide shell access.」と表示されたら成功です。
3. エイリアスの設定
このままでは不便なLinuxなので、自分好みのエイリアスを設定します。
普段エイリアスなんか使わないという人はこの章を飛ばしてもOK
(でもエイリアスを設定することはお勧めします)
エイリアスは.bashrc
に記述するのではなく.bash_aliases
ファイルを作成してその中に記述するのがお作法らしいのでそれに倣います。
vim .bash_aliases
そしたらお好みのエイリアスを追加していってください。
参考までに私が普段使用しているエイリアスを載せておきます。
alias cc='cd ~'
alias cl='clear'
alias lc='clear'
alias ..='cd ..'
alias nano='vim'
alias emacs='vim'
alias atom='vim'
alias code='vim'
エイリアスが追加出来たら、忘れずにエイリアスを読み込んでおきます。
source .bash_aliases
4. Dockerのインストール
Dockerを使用したいのでインストールします。
巷ではDocker DesktopをWindows側にインストールする方法が一般的らしいですが、なるべくWindows側は汚したくないのでwslの中だけで完結する方法をとります。
wslのUbuntuディストリビューションでもUbuntuデスクトップと同じ方法でDockerがインストールできます。
Microsoft公式による手順をそのまま実行するだけです。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
上記のコマンドが実行出来たら、下のコマンドを実行してdockerが実行できるか確かめましょう
sudo docker run hello-world
「Hello from Docker! This message shows that your installation appears to be working correctly.」
このようなメッセージが出てきたらOKです。
しかし、このままではdockerコマンドの前に必ずsudo
をつけないといけないので、dockerグループに自分を追加します。
sudo usermod -aG docker $USER
追加出来たらUbuntuを再起動してください。
5. GPUを使えるようにする
NvidiaのGPUが搭載されているマシンの前提で話していきます。他社のGPUを使用していたり、PCにGPUがない場合はこの章を読み飛ばしてください。
wslでGPUリソースを使用したいので設定していきます。
ただし、CUDAのバージョン違いなどで各種ツールをインストールしなおしたりが面倒なので、DockerのコンテナからGPUを使うことを想定します。
5.1. WindowsにNvidiaドライバーをインストール
WindowsにGPUドライバがインストールされていない場合は、ご自身が使用しているGPUに合ったドライバをインストールしてください。このドライバにはwslのドライバも含まれています。
インストール出来たら、一度wslを立ち上げなおしてから以下のコマンドを実行します。
nvidia-smi
以下のような表示が出ればOKです。
ここで表示された「Driver Version: 566.36 CUDA Version: 12.7」とは、「CUDA 12.7バージョンまでサポートするドライバが入っていますよ」という意味(らしい)です。
CUDAのバージョンの情報は後々必要になるので「CUDA Version: 12.7」を覚えておきましょう。
5.2. NVIDIA Container Toolkitのインストール
DockerからGPUを使用するために、wsl側にNVIDIA Container Toolkitをインストールします。
公式による手順を実行します。
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 実験的パッケージを使用する場合、以下のコマンドでコメントアウトを削除
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# dockerを再起動
systemctl restart docker
5.3. 動作チェック
nvidida/cudaのイメージを動かすことでNvidia Container Toolkitが正常に動作するかチェックします。
あらかじめチェックしたCUDAバージョンに適したイメージを探します。
今回はCUDA12.4を使用します。ディストリビューションがUbuntu22.04であるため、こちらのイメージを使用します。
そしたら以下のコマンドでイメージを引っ張ってきて、内部でnvidia-smi
コマンドを使用してGPUが認識されているか確認しましょう。
--gpus all
というオプションは「コンテナ内でGPUを使いますよ」という意味です。
docker run --gpus all nvidia/cuda:12.4.1-runtime-ubuntu22.04 nvidia-smi
先にnvidia-smi
で確認した出力と同じようなものが確認できればOKです。
6. ターミナルの見た目の変更
このままだとターミナルが味気ないのでデコって行きます。
6.1. Windows Terminal
Windows11からは標準で入っているWIndows Terminalをターミナルとして使用します。
設定からプロファイル > Ubuntu > 追加の設定 > 外観
で変更します。
配色等はお好みで設定してください。今回は「One Half Dark」で行きます。
背景画像もなんかいい感じにしとくとテンションが上がります。
こうなりました。
6.2. Oh My Posh の導入
Oh My Posh というプロンプトエンジンを導入します。
これにより、のターミナルのプロンプト部分にgithubのブランチやステータスをアイコンを使って表示することができます。
6.2.1 Nerd Fontのダウンロード
Oh My Poshではアイコンを使用するため、そのためのフォントをダウンロードする必要があります。
Nerd Fontsというものが一般に使われているらしいのでそれをインストールします。
以下のサイトから気に入ったフォントのDownload
をクリックしてzipファイルを落としてください。
今回は「Hack Nerd Fonts」をダウンロードしました。
そしたら落としたzipファイルの中身を
C:\Users\ユーザー名\AppData\Local\Microsoft\Windows\Fonts
に展開してください。
Windows Terminalに移り、設定から プロファイル > Ubuntu > 追加の設定 > 外観 > フォント フェイス
で先ほどダウンロードした「Hack Nerd Fonts」を選択します。
6.2.2. Oh My Poshのインストール
以下のコマンドでOh My Poshのインストールを行います。
sudo wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh
sudo chmod +x /usr/local/bin/oh-my-posh
続いてOh My Poshのテーマをインストールします。
sudo apt install unzip
mkdir ~/.poshthemes
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/themes.zip -O ~/.poshthemes/themes.zip
unzip ~/.poshthemes/themes.zip -d ~/.poshthemes
chmod u+rw ~/.poshthemes/*.omp.*
rm ~/.poshthemes/themes.zip
最後にOh My Poshを使用するように.bashrc
に記述します。
一応.bashrc
のバックアップも取っておきましょう。
cp ~/.bashrc ~/.bashrc_backup
echo "eval \"$(oh-my-posh init bash)\"" >> ~/.bashrc
source ~/.bashrc
こうなりました。
6.2.3 Oh My Poshのテーマ変更
Oh My Poshには様々なテーマがあります。
テーマを切り替えるには、以下のコマンドを実行します。
1_shell
の部分を自分の好みのテーマにしてください。
eval "$(oh-my-posh init bash --config ~/.poshthemes/1_shell.omp.json)"
7. 一旦完成
次はエディターの導入を書こうとしたけど長くなったので次回に回します。
エディターはNeoVimがおすすめです。