前提
WSLを便利に使うための設定をまとめました。
Ubuntuを選択しているため、Ubuntuの設定についても最低限まとめています。
他にもオススメの設定があれば、ぜひ教えてください。
動作環境
C:\Users\pon2g>wsl --version
WSL バージョン: 2.0.0.0
カーネル バージョン: 5.15.123.1-1
WSLg バージョン: 1.0.57
MSRDC バージョン: 1.2.4485
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25880.1000-230602-1350.main
Windows バージョン: 10.0.22621.3374
WSLの設定
/etc/wsl.conf
を変更する設定を紹介していますが、コマンドプロンプト or PowerShellからwsl --shutdown
を実行し、WSLを再起動する必要があります。
設定の詳細は、当たり前ですがMicrosoftのリファレンスが詳しいです。
https://learn.microsoft.com/ja-jp/windows/wsl/wsl-config
Windowsのファイルにパーミッションを設定できるようにする
デフォルトではWindows側のファイルのパーミッションが777
になっているため、コンソールの見た目がよろしくありません。
[automount]
options="metadata"
Windowsのパスを引き継がないようにする
echo $PATH
を叩くと、/mnt/c/Program Files (x86)/...
がずらずら表示されます。
見た目がよろしくありません。
[interop]
appendWindowsPath=false
systemdを有効にする
WSLでは、systemd以外の独自のinitプロセスが動いているらしい。
そのため、systemdに依存したアプリケーションを動かせず不便です。
WSLバージョン0.67.6以上であれば、以下によりsystemdを有効化できます。
[boot]
systemd=true
hosts、resolv.confを初期化されないようにする
せっかく編集したhosts
、resolv.conf
も、WSLを再起動するたびに初期化されます。
[network]
generateHosts=false
generateResolvConf=false
VPN環境下での名前解決
テレワーク中、自宅からVPNで社内LANに接続し、社内サーバのGitリポジトリにアクセスしようとすると、名前解決ができないようで困りました。
Windowsの起動に合わせてWSLを自動起動させる
UTF-8以外のロケールを設定しているときや、お気に入りのターミナルがある場合、WSL上のLinuxにSSHアクセスしたくなります。
WSLを起動して、ssh.serviceが起動されるまで待って…というのが面倒です。
以下のファイルをWindowsのスタートアップに追加しておきます。
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c wsl", vbhide
Ubuntuの設定
プロキシ設定
WSLからの通信は、Windowsで設定したプロキシ設定が適用されません。
プロキシ環境下でWSLからインターネット接続する際には、以下の設定を行います。
export ftp_proxy="http://<proxy URL>:<port>"
export http_proxy="${ftp_proxy}"
export https_proxy="${ftp_proxy}"
export FTP_PROXY="${ftp_proxy}"
export HTTP_PROXY="${ftp_proxy}"
export HTTPS_PROXY="${ftp_proxy}"
aptのプロキシ設定
aptは、環境変数で指定したプロキシ設定を読み込まないらしい。
Acquire::ftp::proxy "ftp://<proxy URL>:<port>/";
Acquire::http::proxy "http://<proxy URL>:<port>/";
Acquire::https::proxy "https://<proxy URL>:<port>/";
aptの接続先を変更する
archive.ubuntu.comはロンドンにあるので、デフォルトのままaptを実行すると遅いです。
日本のミラーサーバを設定します。
sudo sed -i.bak -e "s%http://[^ ]\+%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list
ミラーサーバの一覧はこちら。
https://www.ubuntulinux.jp/ubuntu/mirrors