Ubuntu 18.04のセットアップ

# Ubuntu 18.04のセットアップ

MacBook Air(2013)も古くなり、バッテリーの持ちが悪くなったので、新しいノートパソコンの購入を検討しました。Ubuntu 18.04の登場時期に合わせて、ASUS ZenBook 13(UX331UN)を購入しました。普段、サーバーにDebianを使用しているので、Debianをインストールしようとしたところ、ドライバー周りのパッケージが古かったので、代わりにUbuntuをインストールしました。その時のセットアップ方法をまとめました。

### フォントの設定

３種類のフォントをインストールしました。

* roboto：Googleのデザイナーによって作られた欧文フォント。
* noto：GoogleとAdobeが共同開発した多言語対応フォント。
* ricty diminished：プログラミング用のフォント。

```
sudo apt update
sudo apt install -y fonts-roboto fonts-noto fonts-ricty-diminished
```

### 電源管理の設定

電源管理は何も設定しないと、ハイパフォーマンスで動作して、バッテリーの減りが早くなります。TLPをインストールして電源管理を行います。TLPは標準でバッテリーに最適した設定がされているため、インストールするだけで、バッテリーの駆動時間が延びます。powertopも一緒にインストールします。

```
sudo apt update
sudo apt install -y powertop tlp tlp-rdw
sudo tlp start
```

#### TLPの設定

起動時に無線デバイスの状態を、前回のシャットダウン時の状態にリストアするには、`/etc/default/tlp`を編集し、`RESTORE_DEVICE_STATE_ON_STARTUP`を`1(有効)`にします。

```
RESTORE_DEVICE_STATE_ON_STARTUP=1
```

### ブラウザのインストール

Chromiumをインストールして、Firefoxを削除します。`chromium-browser-l10n`をインストールすると、日本語化できます。

```
sudo apt update
sudo apt install -y chromium-browser chromium-browser-l10n
sudo apt purge firefox
```

### Openvpnのインストール

Openvpnのインストールします。設定パネルのネットワークでVPNの設定ができます。

```
sudo apt update
sudo apt install -y network-manager-openvpn-gnome
```

### LXC/LXDのインストール

軽量化仮想化技術のLXC/LXDをインストールします。

```
sudo apt update
sudo apt install -y lxd lxd-tools lxd-client criu zfsutils-linux
sudo lxd init
```

Ubuntuリポジトリのパッケージをインストールしています。Snappyを利用してパッケージをインストールする場合は、最新のパッケージがインストールされます。LTS版を利用する場合は、`--channel`オプションでバージョンを指定できます。

### WindowsとLinuxのデュアルブートで時計が狂う問題

LinuxはRTC(リアルタイムクロック)をUTC(世界協定時)で、WindowsはRTCをローカルタイム(JST:日本標準時)で扱っており、NTPで時刻修正をした時に、それぞれのOSがRTCを更新していました。Windows 10になってからは、起動時に時刻同期が行われなくなったため、Windows側の時刻が狂うようになりました。Windows側は起動時に時刻同期を行わないので、Linux側で対応します。次のコマンドで時刻を表示します。

```
$ timedatectl status
                      Local time: 月 2019-12-30 18:59:07 JST
                  Universal time: 月 2019-12-30 09:59:07 UTC
                        RTC time: 月 2019-12-30 09:59:07
                       Time zone: Asia/Tokyo (JST, +0900)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
```

RTC(リアルタイムクロック)の時刻をローカルタイムにします。

```
timedatectl set-local-rtc 1
```

変更後の時刻を表示します。**RTC in local TZ**が**yes**に変わります。

```
$ timedatectl status
                      Local time: 月 2019-12-30 19:00:30 JST
                  Universal time: 月 2019-12-30 10:00:30 UTC
                        RTC time: 月 2019-12-30 19:00:30
                       Time zone: Asia/Tokyo (JST, +0900)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.
```

### その他

シェルとエディタ、その他のツールをインストールします。

```
sudo apt update
sudo apt install -y zsh vim git curl
sudo apt purge -y vim-tiny nano
```

## AtomとVisual Studio Codeのインストール

AtomとVisual Studio Codeは、Snappyを利用してインストールできますが、~~現状日本語入力できないバグがあります。APTリポジトリを追加してインストールします。~~
2019/5/12 時点ではSnappyで日本語入力できるようになっています。

```
sudo snap install atom --classic
sudo snap install code --classic
```

### ~~AtomのAPTリポジトリを追加~~

```
curl -sL https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list'
```

### ~~Atomのインストール~~

```
sudo apt-get update
sudo apt-get install atom
```

### ~~Visual Studio CodeのAPTリポジトリを追加~~

```
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
```

### ~~Visual Studio Codeのインストール~~

```
sudo apt-get update
sudo apt-get install code
```

## fish shellのインストール

zshが使いこなせず、zshからfish shellに乗り換えました。デフォルトでいい感じなので、ほぼ設定いらずで使用できます。

```
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish
chsh -s $(which fish)
```

## Enpassのインストール

Enpassはパスワード管理サービスで、デスクトップ(Windows/Mac/Linux)とモバイル(iOS/Android)の両方に対応しているので便利です。

```
sudo -i
echo "deb https://apt.enpass.io/ stable main" > /etc/apt/sources.list.d/enpass.list
wget -O - https://apt.enpass.io/keys/enpass-linux.key | apt-key add -
apt-get update
apt-get install enpass
exit
```

## Vimの設定

Vim Bootstrapというサービスで.vimrcを作成してくれます。

[Vim Bootstrap](https://vim-bootstrap.com/)

## 参考文献

* [TLP - ArchWiki](https://wiki.archlinux.jp/index.php/TLP)
* [Powertop - ArchWiki](https://wiki.archlinux.jp/index.php/Powertop)
* [Installing Atom](https://flight-manual.atom.io/getting-started/sections/installing-atom/)
* [Running Visual Studio Code on Linux](https://code.visualstudio.com/docs/setup/linux)
* [WindowsとLinuxで時計が狂うのを直す](https://tomono.tokyo/2018/08/01/6790/)