LoginSignup
3
4

WSL2でUbuntuを使う際の初期設定(備忘録)

Last updated at Posted at 2023-05-28

はじめに

 自分だったり他人のWSL2の初期設定するたびに色々調べるのが面倒だったので自分用のメモもかねて書き残してみる。
 基本的に調べたら出てくる情報の切り貼りでしかないので注意。必要なところだけピックアップして見ていくといいかも。

目次

  1. WSL~Ubuntuのインストール
  2. ユーザー設定
  3. 日本語化
  4. Homebrewのインストール

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
/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
/etc/wsl.conf
[boot]
systemd=true

再起動して以下のコマンドで確認

$ ps aux

image.png

ちなみに/sbin/initの正体

image.png

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

image.png

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にするかも)などは今後追記するか別の記事にして書く予定(予定は未定…)。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4