Arch Linuxのセットアップ方法

Arch Linuxの記事はシリーズになっています。
記事を順番に読み進めると、Arch Linuxをいい感じにセットアップできます。

- [Arch Linuxのインストール方法(Windows)](https://qiita.com/uhooi/items/594e0488fb948c8e1199)
- Arch Linuxのセットアップ方法　__←イマココ__

## はじめに

Arch Linuxをインストールしたあとのセットアップを紹介します。

基本的には以下の記事から自分に必要な設定を行います。

- [General recommendations - ArchWiki](https://wiki.archlinux.org/title/General_recommendations)
- [一般的な推奨事項 - ArchWiki](https://wiki.archlinux.jp/index.php/一般的な推奨事項)

## 環境

- PC: ThinkPad T480
- プロセッサ: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz 1.90 GHz
- 実装 RAM: 8.00 GB (7.84 GB 使用可能)
- システムの種類: 64 ビット オペレーティングシステム、x64 ベース プロセッサ
- OS: Windows 10 Pro

## Arch Linuxのセットアップ手順

Arch Linuxのセットアップ手順を紹介します。

### 1 システム管理

#### インターネットへの接続

`iwctl` コマンドを使い、 [1.7 インターネットへの接続](https://qiita.com/uhooi/items/594e0488fb948c8e1199#17-インターネットへの接続) と同じ手順でインターネットへ接続します。

`ip addr show` でインターネットへ接続できているか確認できます。

#### 1.1 ユーザーとグループ

ルートユーザーは権限を持ち過ぎているため、普段使うユーザーを作成します。

https://wiki.archlinux.org/title/Users_and_groups#User_management

https://wiki.archlinux.jp/index.php/ユーザーとグループ#.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E7.AE.A1.E7.90.86

##### ユーザーの作成

`useradd` コマンドでユーザーを作成します。

私は `uhooi` としました。

```shell-session
# useradd -m uhooi
```

`-m` オプションを付けることで、ユーザーのホームディレクトリが `/home/{username}` に作成されます。

```shell-session
# ls /home
uhooi
```

##### パスワードの設定

`passwd` コマンドでパスワードを設定します。

```shell-session
# passwd uhooi
```

##### sudoのインストール

一般ユーザーからルートユーザーでしか行えない操作をするnに必要なため、 `sudo` コマンドをインストールします。

```shell-session
# pacman -S sudo
```

##### sudoの設定

先ほど作成したユーザーで `sudo` コマンドを使えるようにします。

```shell-session
# export EDITOR=vim
# visudo
```

`wheel` グループのメンバーに、任意のコマンドの実行を許可します。

```diff_shell
# ...
## Uncomment to allow members of group wheel to execute any command
- # %wheel ALL=(ALL:ALL) ALL
+ %wheel ALL=(ALL:ALL) ALL
# ...
```

先ほど作成したユーザーを `wheel` グループに追加します。

```shell-session
# gpasswd -a uhooi wheel
```

これで `uhooi` が `sudo` コマンドを実行できるようになりました。

##### ユーザーの切り替え

ここからはルートユーザーでなく一般ユーザーで操作します。
ルートユーザーをログアウトし、一般ユーザーでログインし直します。

カレントディレクトリを出力し、 `/home/{ユーザー名}` になっていたらユーザーの切り替えに成功しています。

```shell-session
$ pwd
/home/uhooi
```

### 2 パッケージ管理

#### 2.1 pacman

[Arch Linuxのインストール方法(Windows)](https://qiita.com/uhooi/items/594e0488fb948c8e1199#パッケージのインストール) で紹介した通り、pacmanはArch Linuxのパッケージマネージャーです。

##### よく使うパッケージのインストール

必要に応じてよく使うパッケージをインストールします。

```shell-session
$ sudo pacman -S man
$ sudo pacman -S git
$ sudo pacman -S ghq
$ sudo pacman -S neovim
```

#### 2.4 Arch Build System

「Arch Build System」は「ABR」と略します。

ソースコードからソフトウェアをビルドやパッケージングするためのシステムです。

https://wiki.archlinux.org/title/Arch_build_system

https://wiki.archlinux.jp/index.php/Arch_build_system

各リポジトリには [PKGBUILD](https://wiki.archlinux.jp/index.php/PKGBUILD) というビルドスクリプトが含まれており、ソフトウェアのソースコードやバイナリは含まれていません。
[makepkg](https://wiki.archlinux.jp/index.php/Makepkg) を実行することで、ソースコードがダウンロードされ、ビルドやパッケージングが行われます。生成されたパッケージはpacmanでインストールできます。

#### 2.5 Arch User Repository

「Arch User Repository」は「AUR」と略します。

コミュニティによって運営されている非公式リポジトリです。

https://wiki.archlinux.org/title/Arch_User_Repository

https://wiki.archlinux.jp/index.php/Arch_User_Repository

AURにあるパッケージはpacmanで直接インストールできず、手動で `makepkg` を実行してパッケージを生成し、 `pacman -U {パッケージファイル}` でインストールします。

#### Yay

Yayはpacmanのラッパーです。

AURにあるパッケージをコマンド一発でインストールできたりと、非常に便利なコマンドです。

https://github.com/Jguer/yay

##### Yayのインストール

READMEに従ってインストールします。

```shell-session
$ sudo pacman -S --needed git base-devel
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
```

あとはpacmanと同じように使えます。

基本的には `pacman` でなく `yay` を使っていいと思います。
ただAURにあるパッケージは誰が作っているかわからないため、 `yay -Si` でAUR URLを出力してページを開き、PKGBUILDを見て悪意あるスクリプトが実行されていないか確認するのが望ましいです。

##### AURにあるパッケージのインストール

必要に応じてAURにあるパッケージをインストールします。

```shell-session
$ sudo yay -Sy
$ sudo yay -S google-chrome
$ sudo yay -S android-studio
```

### 4 グラフィカルユーザーインターフェース

#### 4.3 デスクトップ環境

Arch LinuxはデフォルトでWindowsやMacのようなデスクトップ環境がありません。
[xmonad](https://github.com/xmonad/xmonad) のようなウィンドウマネージャーを使いこなせるなら不要ですが、そうでない場合はインストールすると格段に使いやすくなります。

##### GNOME

本記事では [GNOME](https://wiki.archlinux.jp/index.php/GNOME) をインストールします。

##### GNOMEのインストール

pacmanでインストールします。

```shell-session
$ sudo pacman -S gnome
```

必要に応じて `gnome-extra` もインストールします。

##### GNOMEの自動起動

GNOMEを自動で起動させたい場合、gdm.serviceを有効化します。

```shell-session
$ sudo systemctl enable gdm
```

##### ネットワーク設定

`networkmanager` をインストールし、NetworkManager.serviceを有効化することでGNOMEからネットワークの設定を制御できるようになります。

```shell-session
$ sudo pacman -S networkmanager
$ sudo systemctl enable NetworkManager
```

ネットワークの設定をGNOMEに任せるため、 `iwd` と `dhcpcd` は無効化しておくと変に競合しないと思います。

```shell-session
$ sudo systemctl disable iwd
$ sudo systemctl disable dhcpcd
```

### 9 最適化

#### 9.2 パフォーマンスの最大化

パフォーマンスの向上に関する設定です。

https://wiki.archlinux.org/title/Improving_performance

https://wiki.archlinux.jp/index.php/パフォーマンスの向上

##### スワップ

物理メモリとスワップ領域の合計が仮想メモリのサイズになります。

https://wiki.archlinux.org/title/Swap

https://wiki.archlinux.jp/index.php/スワップ

スワップ領域はパーティションとファイルがありますが、本記事ではスワップファイルを作成します。

###### スワップファイル

`mkswap` コマンドで4GBのスワップファイルを作成します。

```shell-session
$ sudo mkswap -U clear --size 4G --file /swapfile
```

スワップファイルを有効化します。

```shell-session
$ sudo swapon /swapfile
```

`fstab` ファイルを編集し、スワップファイルのエントリを追加します。

```diff:/etc/fstab
+ /swapfile none swap defaults 0 0
```

これでスワップファイルの作成が完了です。

System Monitorを開き、Swapが4.3GBあればスワップファイルの作成に成功しています。

もしスワップファイルを無効化する場合、 `swapoff` コマンドを実行してからファイルを削除します。

```shell-session
$ sudo swapoff /swapfile
$ sudo rm -f /swapfile
```

## おわりに

ここまで設定したら、Arch Linuxでいろいろ遊べるようになると思います。
Arch Linuxライフを楽しみましょう :relaxed: