はじめに
自分だったり他人のWSL2の初期設定するたびに色々調べるのが面倒だったので自分用のメモもかねて書き残してみる。
基本的に調べたら出てくる情報の切り貼りでしかないので注意。必要なところだけピックアップして見ていくといいかも。
目次
1. WSL~Ubuntuのインストール
だいたいここを見れば解決するはず。
大前提としてWSLを使用するためにインストール。
powershellで以下のコマンドを入力。
wsl --install
続いてUbuntuをインストール。
CentOSがいいという場合は別ルートで入れる必要があるのでちょい面倒(ちょっとだけど)。
wsl --install Ubunutu
2. ユーザー設定
ここから先はUbuntu上で操作を行っていく。
ちなみにrootユーザーの場合頭についているsudo
は不要。
ユーザーを作成。
$ sudo adduser <ユーザー名>
この際useraddコマンドだとホームディレクトリ諸々が作られないので注意。
Ubuntuを起動した際にデフォルトでログインするユーザーを設定。
$ sudo vi /etc/wsl.conf
[user]
default = <ユーザー名>
作成したユーザーがsudo
を使用できるようにsudoグループに追加。
$ sudo gpasswd -a <ユーザー名> sudo
デフォルトのエディタをvimに設定。
Emacsやnanoが好みの場合は適宜変更。
$ sudo update-alternatives --set editor /usr/bin/vim.basic
sudo
する際にパスワードを求められないように設定。
$ sudo visudo
- %sudo ALL=(ALL:ALL) ALL
+ %sudo ALL=(ALL:ALL) NOPASSWD:ALL
3. 日本語化
何をするにもとりあえずapt update
&apt upgrade
で最新の状態にする。
$ sudo apt update && sudo apt upgrade
日本語にする場合文字コードをUTF-8にしたい。
一応パッケージが入っているか確認。
$ locale -a
C
C.utf8
POSIX
予想通り入っていなかったので、UTF-8の言語パックを入れる。
$ sudo apt install language-pack-ja
再度確認
ja_JP.utf8が追加されていればOK
$ locale -a
C
C.utf8
POSIX
ja_JP.utf8
localeをUTF-8にし、一度終了。再度Ubuntuを立ち上げる。
$ sudo update-locale LANG=ja_JP.UTF8
$ exit
wsl -t Ubuntu
wsl -d Ubuntu
dateコマンドで日本語化されているか確認。
以下のように表示されればOK。
$ date
2023年 5月 29日 月曜日 07:39:07 JST
ついでにmanで見られるマニュアルも日本語のものをインストール。
$ sudo apt install manpages-ja manpages-ja-dev
適当なコマンドのmanを見て日本語になっていたらOK。
$ man grep
GREP(1) General Commands Manual GREP(1)
名前
grep, egrep, fgrep - パターンにマッチする行を表示する
書式
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
説明
grep は FILE で名前を指定されたファイルを検索して、与えられた PATTERN にマッチする部分を含む行を探します。 ファイルが指定
されていない場合や、 ファイル名の代わりに 1 個のマイナス記号 “-” が指定されている場合は、 grep は標準入力から検索します。
デフォルトでは、 grep はマッチした行を表示します。
さらに、兄弟プログラム egrep と fgrep は、それぞれ grep -E と grep -F と同じです。 これらの兄弟プログラムは非推奨です
が、後方互換性のために用意されています。
4. Homebrewのインストール
色々入れる際に対応範囲が広く、扱いやすいHomebrewを入れておく。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
一応インストールできたか確認。
インストールできていたらバージョンが表示される。
$ brew --version
Homebrew 4.0.19
入れただけでパスがつながってないと注意されるので言われた通りにパスを設定。
多分ターミナル上にメッセージが表示されているはずなのでそっちをよく見ること。
$ (echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/<ユーザー名>/.profile
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
何かインストールする際はbrew install <パッケージ名>
アンインストールする際はbrew remove <パッケージ名>
何がインストールしてあるか確認する際はbrew list
アップデートする場合はbrew upgrade (<パッケージ名>)
試しによく使うgitをインストール
$ brew install git
$ brew list
binutils ca-certificates gcc gmp krb5 libmpc libunistring lz4 openldap readline xz
brotli curl gettext icu4c libedit libnghttp2 libxcrypt mpfr openssl@1.1 rtmpdump zlib
bzip2 expat git isl libidn2 libssh2 libxml2 ncurses pcre2 util-linux zstd
これでgit(とそれに付随して必要なもの)がインストールされる。
5. dockerのインストール(追記)
まずはデーモンを常駐させるためにPID1を/sbin/initにしたい。いろいろと便利なので。
/etc/wsl.confを開いてちょろっと追記すればOK
$ sudo vi /etc/wsl.conf
[boot]
systemd=true
再起動して以下のコマンドで確認
$ ps aux
ちなみに/sbin/initの正体
dockerの設定
基本はここを参考にしてdockerをインストールする
1.dockerリポジトリの設定
$ sudo apt-get update
$ sudo apt-get install ca-certificates curl gnupg
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
2.インストール
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3.dockerサービスが稼働しているかを確認
service docker status
4.ユーザーをdockerグループに追加
これをしないとvscodeでdockerに接続できないらしい
$ sudo groupadd docker
$ sudo usermod -aG docker $(echo $USER)
$ newgrp docker
5.無事インストールできたかの確認
$ sudo docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
最後に
以上で最低限の初期設定はできるはず。
書き洩らしやbashrc(もしくはzshにするかも)などは今後追記するか別の記事にして書く予定(予定は未定…)。