WSL2でUbuntu(20.04/22.04)を使用する際に、普段実施している共通作業です。
この記事の後、各種用途に合わせて環境を作り込んでいくことを想定しています。
※2023/02/26に22.04環境を作った際、20.04と同じコマンドで問題なく設定できたので記事を更新しました。
やること
WSL2(Ubuntu)のインストール直後から開始して、
・ホスト名の変更(プロンプトをシンプルにするため)
・パスワード無しsudoを可能に
・Manコマンドなど含め、普通の日本語環境(LC_ALL=日本語)
・デフォルトエディタの変更
環境
エディション:Windows 10 Home
バージョン:2004
> ver
Microsoft Windows [Version 10.0.19041.746]
> wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Running 2
初期設定
ホスト名変更
WSLの場合Linuxコマンドの「sudo hostnamectl set-hostname 」は次のエラーが出て使えません。
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down
Windowsの設定画面でコンピュータ名を変更するか、管理者権限で起動したPowershellで次のコマンドを入力すると変更できます。
Rename-Computer -NewName "<HOSTNAME>"
以降のコマンドはWSL(Ubuntu)上で投入します。
パスワード無しでsudo可能にする
visudoを使っても良いですが、ファイル編集が面倒なので、/etc/sudoers.d/へ設定ファイルを配置します。
sudo bash -c 'echo "<USERNAME> ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/<USERNAME>'
パッケージ更新処理
sudo apt-get update
sudo apt-get upgrade
ロケール設定
manコマンドなど、対応しているコマンドの出力が日本語になります。
sudo apt install language-pack-ja
sudo update-locale LC_ALL=ja_JP.utf8
Timezone設定
WSLはホストOSのTimezoneが設定されているので作業不要です
デフォルトエディタを変更
sudo update-alternatives --config editor
対話形式に(vimの場合は[/usr/bin/vim.basic]の)選択肢Noを入力
(vim.basicとvim.tinyの違いは機能が多いか少ないか。通常のvimはvim.bashcのエイリアスです)
(参考1)普段入れているソフトウェア
build-essential
c/c++コンパイラおよびMakeと付随するソフトウェアがインストールされます。
sudo apt install build-essential
gh
githubを便利に
Installing gh on Linux and BSD
python-venv
Pythonの仮想環境作成モジュール。Python3は入っているのでvenvも入っているつもりで作業開始すると毎回「not found」と怒られるのでインストールしておく。
sudo apt install python3-venv
(参考2)やった方が良い場合もあるかもしれない設定
WSL2環境にWindowsからlocalhostを指定してアクセスできるようにする
例えばFishシェルの設定画面のように、WSL上のWebサーバーなどにWindowsからlocalhostを指定してアクセスしたい場合があります。そんなときの為の設定。
Windowsで次のファイルを作成
localhostForwarding=True
Proxy設定
WSLのネットワーク設定は基本的にホスト側の設定を利用するけれど、うまく通信できない場合は次のサイトなどを参考にすると解消するかもしれない。
DNS設定
上記と矛盾するけれど、DNS設定の連携がなぜか中途半端なのでトラブル時は次のページなどを参照する。会社の環境へVPN接続している場合は特に。