Ubuntu (20.04LTS) のインストール直後に行う初期設定について説明する。
UbuntuはWSL2上にインストールされたものを使用している。
インストール方法はこちらを参照のこと。
sudo使用時のパスワード省略
sudoコマンドを使用時のパスワード入力が煩雑なので省略させる。
$ sudo bash -c 'echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER'
DNS設定
WSL2上にインストールされたUbuntuではDNSが解決されない場合がある。
$ ping www.google.com
ping: google.com: Temporary failure in name resolution
この症状はresolv.confを修正して解決する。
resolv.conf自動生成の停止
resolv.confはWSLからUbuntuを起動させた際に自動生成されるため、それを停止させる。
$ sudo vi /etc/wsl.conf
[network]
generateResolvConf = false
Ubuntuの再起動
設定を反映させるためUbuntuを再起動させる。
WSLの仕様でUbuntu側のrebootコマンド等では再起動できないため、下記手順で行う。
- PowerShell側からUbuntuをシャットダウン
- 改めてUbuntuを起動(スタートメニューからUbuntuを起動)
PowerShellからUbuntuのシャットダウン
> wsl -t Ubuntu-20.04
状態確認
> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
※「STATE=Stopped」になっていればシャットダウン完了。
シャットダウン後はスタートメニューからUbuntuを選択すると起動する。
resolv.confの作成
まず/etc/resolv.conf の(既に切れている)シンボリックリンクを削除する。
$ sudo unlink /etc/resolv.conf
resolv.confを改めて作成する。
$ sudo vi /etc/resolv.conf
nameserver 8.8.8.8
※8.8.8.8 = Google Public DNS
作業はこれで終了、pingを打って確認する。
$ ping www.google.com
PING www.google.com (172.217.27.68) 56(84) bytes of data.
64 bytes from nrt12s15-in-f4.1e100.net (172.217.27.68): icmp_seq=1 ttl=113 time=7.52 ms
64 bytes from nrt12s15-in-f4.1e100.net (172.217.27.68): icmp_seq=2 ttl=113 time=6.96 ms
64 bytes from nrt12s15-in-f4.1e100.net (172.217.27.68): icmp_seq=3 ttl=113 time=6.91 ms
.bash_profile作成
初期状態では.bash_profileが無い場合があるので作成する。
# .bashrcの呼び出し
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
反映
$ source ~/.bash_profile
パッケージの最新化
apt管理のインストールパッケージを最新に保つ。
$ sudo apt update
$ sudo apt upgrade
※今後もaptでインストールする際には行うこと。
systemctlの設定
WSL2上にUbuntuをインストールした場合、初期状態ではsystemctlが使用できない。
$ systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
理由はsystemdがプロセスID=1で動作していないため。
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 892 584 ? Sl 13:59 0:00 /init
※PID=1は/initとなっていてsystemdではない。
このままでは色々と不都合が出てくるので解消する。
各種インストール
daemonizeインストール
$ sudo apt install daemonize
dotnet-sdk-5.0インストール
$ sudo apt install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/20.04/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-5.0
※一行ずつではなくまとめて実行すること。
wsl-translinuxインストール
$ sudo -s
# apt install apt-transport-https
# wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg
# chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg
# cat << EOF > /etc/apt/sources.list.d/wsl-transdebian.list
deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
EOF
genieインストール
$ sudo apt install systemd-genie
設定変更
$ sudo vi /etc/genie.ini
systemd-timeout=180
↓
systemd-timeout=10
genieの実行
$ genie -s
Waiting for systemd....!!!! ← 10秒程度待つとタイムアウトで止まる。
systemdの動作を確認する。
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.0 109432 12504 ? Ss 15:24 0:00 systemd
genieの自動起動
# genie 自動起動
if [ "`ps -eo pid,lstart,cmd | grep systemd | grep -v -e grep -e systemd- | sort -n -k2 | awk 'NR==1 { print $1 }'`" != "1" ]; then
genie -s
fi
時刻の自動同期
chronyインストール
$ sudo apt install chrony
設定変更
$ sudo vi /etc/chrony/chrony.conf
# 17行目:デフォルト設定はコメントにして自身のタイムゾーンの NTP サーバーを追記
#pool ntp.ubuntu.com iburst maxsources 4 ← コメントアウト
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1 ← コメントアウト
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1 ← コメントアウト
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2 ← コメントアウト
pool ntp.nict.jp iburst ← 追記
↓以下を追記
# Ignore stratum in source selection.
stratumweight 0
chrony再起動
$ sudo systemctl restart chrony
日本語化
パッケージインストール
$ sudo apt -y install language-pack-ja-base language-pack-ja ibus-kkc
$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
$ source /etc/default/locale
変更の確認
$ echo $LANG
ja_JP.UTF-8
$ date
2021年 7月 7日 水曜日 17:39:06 JST ← 日本語表示されている。
SSH
鍵の作成
$ ssh-keygen -t rsa -b 4096
※鍵長は最低でも2048、できれば4096を指定すること。
gcc / make
ビルドツール(gcc / make)のインストール
$ sudo apt install build-essential
バージョン確認
$ gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
$ make --version
GNU Make 4.2.1
Git
git のユーザー名や色、使用するエディタ等を設定。
$ git config --global user.name "username" ← ユーザー名を指定
$ git config --global user.email <email-address> ← メールアドレスを指定
$ git config --global color.ui auto
$ git config --global core.editor 'vi -c "set fenc=utf-8"'
以上