Windows Subsystem for LinuxはWindows上でLinuxを動かせるWindowsサブシステムです。
現在、WSL1とWSL2が存在ます。ここではWSL2の説明になります。

インストール
-
Windowsの機能の有効化または無効化の下記をチェック。
「Linux 用 Windows サブシステム」 「仮想マシン プラットフォーム」
-
再起動します。
-
WSL2 Linuxカーネル更新プログラムパッケージをダウンロードしてインストールします。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -
バージョンの確認
PowerShellから下記コマンド実行PS> wsl --set-default-version 2
-
Microsoft Storeから「Linux」で検索するとさまざまなLinuxが表示されます。
ディストリビューション一覧
Ubuntu 16.04 LTS Ubuntu 18.04 LTS Ubuntu 20.04 LTS openSUSE Leap 15.1 SUSE Linux Enterprise Server 12 SP5 SUSE Linux Enterprise Server 15 SP1 Kali Linux Debian GNU/Linux WSL のための Fedora リミックス Pengwin Pengwin Enterprise Alpine WSL
この中から好きなディストリビューションを選択しインストールします。 -
インストール後起動し、ユーザ名・パスワードを設定します。
-
バージョンの確認
PowerShellから下記コマンド実行PS> wsl -l -v
NAME STATE VERSION * Debian Running 2
設定例
wslconf
WSLの起動設定をwslconfで行います。
sudo vi /etc/wsl.conf
[automount]
options = "metadata,umask=22,fmask=11"
Linux側からWindowsのファイルを参照するとパーミッションが777になってしまうので、wslconfの設定で変更します。
その他設定は以下を詳細してください。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config
変更後はWSLを再起動します。
PowerShellから停止コマンドを実行します。
PS> wsl -t Debian
日本語設定
sudo sed -i -E 's/# (ja_JP.UTF-8)/\1/' /etc/locale.gen
sudo locale-gen
sudo update-locale LANG=ja_JP.UTF-8
パッケージアップグレード
sudo apt update
sudo apt upgrade
基本パッケージインストール
sudo apt install -y bash-completion curl dnsutils git jq locales nfs-client rsync ssh tree unzip vim wget zip fonts-ipafont
Node.js
sudo apt install -y nodejs npm
sudo npm install n -g
sudo n stable
sudo apt purge -y nodejs npm
exec $SHELL -l
node -v
SSH
Windows側をリンク。
mkdir /mnt/c/Users/ユーザ名/.ssh
ln -s /mnt/c/Users/ユーザ名/.ssh ~/.ssh
鍵作成
ssh-keygen -t rsa -b 4096 -C ""
SSH Config
mkdir ~/.ssh/conf.d
vi ~/.ssh/config
# VS CODE Wildcards don't supported
Include ~/.ssh/conf.d/**/config
Host *
IdentitiesOnly yes
TCPKeepAlive yes
ServerAliveInterval 60
ServerAliveCountMax 10
chmod 600 ~/.ssh/config
ssh-agent
sudo apt install p7zip
wget https://github.com/rupor-github/wsl-ssh-agent/releases/download/v1.4.2/wsl-ssh-agent.7z
7zr x -owsl-ssh-agent wsl-ssh-agent.7z
mv wsl-ssh-agent /mnt/c/
rm wsl-ssh-agent.7z
ssh-agent起動
コマンドプロンプト管理者権限で実行。
CMD> sc config ssh-agent start=auto
CMD> net start ssh-agent
Windowsショートカット作成
C:\wsl-ssh-agent\wsl-ssh-agent-gui.exe -socket C:\wsl-ssh-agent\ssh-agent.sock
ショートカット登録
Windows実行で登録します。
shell:startup
Bash設定
vi ~/.bashrc
alias ls='ls -F --color=auto'
alias ll='ls -AlF --color=auto'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias explorer='explorer.exe'
alias cdw='cd $USERPROFILE'
vi ~/.profile
export PATH=$PATH:"/mnt/c/Windows"
export SSH_AUTH_SOCK="/mnt/c/wsl-ssh-agent/ssh-agent.sock"
USERPROFILE_RAW="$(/mnt/c/Windows/System32/cmd.exe /c "<nul set /p=%UserProfile%" 2>/dev/null)"
export USERPROFILE="$(wslpath $USERPROFILE_RAW)"
反映
source ~/.bashrc
source ~/.profile
Git
git config --global user.name "name"
git config --global user.email name@email
git config --global credential.helper store
git config --global core.filemode false
その他
ファイルアクセス
WindowsのCドライブは、WSL1の/mnt/c
にマウントされています。
※WSL2からWindowsへのアクセスは異常に遅いです。
Windowsからは\\wsl$\
からアクセスできます。
コメント