🐦‍⬛

Macユーザーが初めてWindowsでWSL2を試した話

2024/05/17に公開

WSL2環境構築手順

はじめに

普段はMacBookを愛用している私ですが、最近Windowsマシンを手に入れたので、WSL2を通じてUbuntuの開発環境を構築しました。
ここではその一連の手順と、個人的に感じたことを共有します。

1. WSL2のインストール

PowerShellでの操作

Powershell
# 管理者権限でPowerShellを起動し、実行
wsl --install
# 特定のディストリビューションをインストールする場合
wsl --install -d <Distribution Name>

インストール後、ユーザー名とパスワードを設定します。
ユーザー名はWindowsと同一でも大丈夫です。

2. パッケージのインストール

基本パッケージ

bash
# パッケージリストの更新とアップグレード
sudo apt update -y
sudo apt upgrade -y
# 日本語パッケージ
sudo apt install language-pack-ja -y

Homebrewの導入

Macでおなじみのパッケージマネージャー、Homebrewをインストールします。

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Homebrewのパスを通す
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile
# 依存関係のインストール
sudo apt-get install build-essential
brew install gcc

シェルのカスタマイズ

私はzshが好きなので、デフォルトシェルをzshに変更します。

bash
brew install zsh
# zshをデフォルトシェルに変更
sudo chsh $USER -s $(which zsh)
# 設定ファイルの作成
touch ~/.zshrc
# 再起動
exec zsh

その他便利なパッケージ

zsh
# 便利なツールたちをインストール
brew install curl wget git keychain vim tree zsh-autosuggestions zsh-completions zsh-syntax-highlighting
# 自分が入れたいパッケージを記載してください
brew install act mise poetry uv starship jupyterlab

補完設定

zsh
# 補完設定を有効化
autoload -U compinit
rm -f ~/.zcompdump; compinit

# miseの補完設定 (必要な場合のみ)
mise completion zsh  > /home/linuxbrew/.linuxbrew/share/zsh/site-functions/_mise

~/.zshrcに以下を追記

~/.zshrc
# zsh-autosuggestionsを有効化
. /home/linuxbrew/.linuxbrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh
# zsh-completionsを有効化
if type brew &>/dev/null; then
  FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
  autoload -Uz compinit colors
  compinit
  colors
fi

# completionsで警告が出た場合の対処法
# chmod go-w '/home/linuxbrew/.linuxbrew/share'
# chmod -R go-w '/home/linuxbrew/.linuxbrew/share/zsh'

# zsh-syntax-highlightingを有効化
. /home/linuxbrew/.linuxbrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
typeset -A ZSH_HIGHLIGHT_STYLES
# pathの下線を消す
ZSH_HIGHLIGHT_STYLES[path]="none"

# 任意で追加
# starshipを有効化
eval "$(starship init zsh)"
# miseを有効化
eval "$(mise activate zsh)"

3. フォントのインストールと設定

Starshipを使う場合はNerd Font, それ以外はお好きなフォントをインストールしてください。

ただし、Windows側にフォントを入れてから、WSL2の設定で変えないといけないので注意。

WSL2の設定

Terminalの画面上部を右クリック -> 設定 -> Ubuntu -> フォント フェイス-> Fontを選択

4. GitHubとのSSH接続設定

zsh
mkdir ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519  # -fでファイル名を指定
# SSHエージェントを起動し、キーを追加
ssh-agent -s
ssh-add ~/.ssh/id_ed25519  # 上で作ったファイル名を指定

~/.ssh/configに以下を追記

~/.ssh/config
Host github.com
    HostName github.com
    IgnoreUnknown AddKeysToAgent,UseKeychain
    AddKeysToAgent yes
    UseKeychain yes
    User git
    Port 22
    IdentityFile 'Your SSH Key Path'  # 作成した鍵のパス

GitHub側の設定

先ほど作成した公開鍵をGitHubに登録します。

接続確認

下記を実行して接続を確認します。

zsh
ssh -T git@github.com

ここで、ssh: Could not resolve hostname github.com: Temporary failure in name resolutionのような名前解決ができないエラーが出た場合は以下を実行してみてください。

私はここでかなり詰まったので、もし同じようなエラーが出た場合は試してみてください。

zsh
# /etc/resolv.confの作成と編集
sudo vim /etc/resolv.conf

これに以下を追加します。

/etc/resolv.conf
+ nameserver 8.8.8.8

その後、WSL2を再起動するためにPowerShellでwsl --shutdownを実行し、再度WSL2を起動します。

参考記事:

5. その他の設定

設定ファイル

学びと高揚感のために、基本的には自分で調べて設定していくことをおすすめしますが、参考として私の設定ファイルリポジトリを載せておきます。

WSL2関連はWSL2ディレクトリにあるので、良ければ参考にしてください。

Docker Desktopのあれこれ

WSL2からDockerを使う場合は、Windows側にDocker DesktopをインストールしてWSL2との連携を設定を行っておくと便利です。

Cドライブへのシンボリックリンク

WSL2からWindowsのファイルにアクセスしやすいように、シンボリックリンクを作成しておくと便利です。

$HOME
ln -s /mnt/c/Users/ユーザー名 ~/ユーザー名_wins

おわりに

WSL2に出会うまでは正直Windowsを使うことに抵抗がありましたが、WSL2のおかげでWindowsでも快適に開発ができるようになりました。

WSL2を使うことでWindowsとMacのいいとこどりができるので、Windowsユーザーだけでなく、Macユーザーにもおすすめの環境です。ぜひ試してみてください!

この記事が、WSL2を始める方々の参考になれば幸いです。

Discussion