1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu初期設定

Last updated at Posted at 2021-07-14

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
wsl.conf
[network]
generateResolvConf = false

Ubuntuの再起動

設定を反映させるためUbuntuを再起動させる。
WSLの仕様でUbuntu側のrebootコマンド等では再起動できないため、下記手順で行う。

  • PowerShell側からUbuntuをシャットダウン
  • 改めてUbuntuを起動(スタートメニューからUbuntuを起動)

PowerShellからUbuntuのシャットダウン

PowerShell
> wsl -t Ubuntu-20.04

状態確認

PowerShell
> 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
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が無い場合があるので作成する。

.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
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の自動起動

~/.bashrc
# 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
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"'

以上

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?