WSL2向けUbuntu20.04の初期設定


WSL2(Ubuntu20.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

python-venv

Pythonの仮想環境作成モジュール。Python3は入っているのでvenvも入っているつもりで作業開始すると毎回「not found」と怒られるのでインストールしておく。

sudo apt install python3-venv

(参考2)やった方が良い場合もあるかもしれない設定

Proxy設定

WSLのネットワーク設定は基本的にホスト側の設定を利用するけれど、うまく通信できない場合は次のサイトなどを参考にすると解消するかもしれない。

UbuntuのProxy設定備忘録

DNS設定

上記と矛盾するけれど、DNS設定の連携がなぜか中途半端なのでトラブル時は次のページなどを参照する。会社の環境へVPN接続している場合は特に。

windows標準のubuntuのDNS設定はWindowsとは別に管理されている