Arch Linux KDE: Installation (3)
インストールの流れ (後編)
- ブートローダからOSを選択起動
- 新規ユーザアカウントの作成
- インターネット接続設定
- パッケージリストの更新
- テキストエディタのインストール
- sudo機能のインストール
- rootアカウントのログアウト
- ユーザアカウントでログイン
- デスクトップ環境のインストール
- 休憩
1. ブートローダからOSを選択起動
USBインストールメディアを外して再起動すると、ストレージのEFIシステムパーティション領域に格納されている、GRUBブートローダのブートエントリ選択画面が表示されます。

Fig.1-1: GRUBブートローダ
一番上の「Arch Linux」を選択してEnterキーで起動しましょう。
2. 新規ユーザアカウントの作成
インストール直後の時点ではrootアカウントしか使えませんが、これを常用し続けることはセキュリティ上のリスクが大きいため望ましくありません。rootアカウントでログインしたら、まずはメインのユーザアカウントを新規作成しましょう。

Fig.2-1: rootアカウントでログイン
現在のアカウント一覧は、cutコマンドを用いて/etc/passwdファイルの中身を抽出することで確認できます。
アカウント一覧の確認
cut -d: -f1 /etc/passwd

Fig.2-2: インストール直後の時点で存在しているアカウント一覧
また、アクセス権限別のグループ一覧も、/etc/groupファイルの中身を抽出することで確認できます。
グループ一覧の確認
cut -d: -f1 /etc/group

Fig.2-3: /etc/groupファイルの中身を抽出

Fig.2-4: 様々なグループ
それでは、useraddコマンドを用いてユーザアカウントを新規作成します。
ユーザアカウントの新規作成
useradd -m -G wheel -s /bin/bash ********(新規アカウント名)

Fig.2-5: ユーザアカウントの新規作成
この例では、useraddコマンドを以下のパラメータで実行しています。
- -m : このユーザ用のホームディレクトリ/home/********も自動的に作成します。
- -G wheel : このユーザをグループ「wheel」に加えます。
- -s /bin/bash : ログインシェルとして/bin/bashを指定します。
- ******** : アカウント名を指定します。
なお、アカウント名はアルファベットの小文字と数字が使用可能で、かつ3文字以上8文字以下で作成するのが望ましいです。使える文字種の制約については内部設定を変更することで回避することもできなくはないようですが、そうしたトリッキーな処置は後になってから他環境との互換性など何かしら思わぬ落とし穴にはまることがあり得るため、あまりお勧めしません。
意図した通りユーザアカウントが作成されたかどうか、catコマンドを使って確認しましょう。
作成されたユーザアカウントの確認
cat /etc/passwd

Fig.2-6: ユーザアカウントの確認
参考画像の通り、/etc/passwdに以下の行が追加されていることがわかります。
********:x : 1000 : 1000 : : /home/******** : /bin/bash
コロン(:)で区切られたこの情報を分解すると
| ******** | アカウント名 |
| x | パスワードを/etc/shadowファイルで管理 |
| 1000 | uid(ユーザID) |
| 1000 | gid(所属している主グループID) |
| コメント | |
| /home/******** | ホームディレクトリ |
| /bin/bash | シェル |
となっています。
空欄になっているコメント要素は必須ではありませんが、多くのLinuxディストリビューションのインストーラではアカウント名を指定する画面でユーザのフルネームも添えて入力することができ、ログイン時の画面ではアカウント名の文字列そのままではなくエイリアス(別名)としてのフルネームが表示されます。それはこのコメント要素にフルネームの文字列を割り当てることで実現しており、このArch Linuxにおいても以下の手順で同じことが可能です。
先程は新規作成用のuseraddコマンドでしたが、今回は編集のためusermodコマンドを用います。
コメント欄にユーザのフルネーム文字列を割り当てる
usermod -c "Xxxxxxxx XXXXXXXX" ********

Fig.2-7: コメント欄の編集
usermodコマンドに-cオプションで、第一引数にコメント、第二引数には対象のアカウント名を入力します。また、参考画像のようにスペースを含む場合はダブルクォーテーションでくくります。
コマンドの実行後、再びcatコマンドでユーザ一覧を確認し、コメントが適用されていることを確認します。

Fig.2-8: コメント適用済みアカウント
最後に、そのユーザアカウントのパスワードを設定しましょう。
ユーザアカウントのパスワード設定
passwd ********
New password: 新規パスワード
Retype new password: 確認のためのパスワード再入力

Fig.2-9: パスワード設定
3. インターネット接続
インストール時に、isoイメージから起動したインストーラ上の環境では自動的にインターネット接続が有効化されていましたが、インストール後の環境ではそうではありません。

Fig.3-1: pingが通らず、ネットワークアダプタenp0s3は「DOWN」状態
これは、インストーラ上では自動的に動作していた以下のサービスが稼働していないことに起因します。
| systemd-networkd | ネットワークアダプタを自動検出し制御を行うサービス |
| systemd-resolved | 名前解決のためのDNSリゾルバサービス |
| iwd | 無線LAN(Wi-Fi)接続管理サービス |
| ModemManager | モバイルインターネット接続管理サービス |
今回「DOWN」になってしまっているenp0s3は有線LANポートですので、systemd-networkdとsystemd-resolvedの2つを稼働させる必要があります。
まずは、現在稼働しているサービスが何であるのかを確認してみましょう。
現在稼働中のサービスを確認
systemctl status

Fig.3-2: インストール直後のサービス稼働状況
それではsystemd-networkdを有効化し、次回起動時からは自動的にサービスが稼働するようにします。
systemd-networkdの自動起動有効化
systemctl enable systemd-networkd.service

Fig.3-3: systemd-networkdの自動起動設定
そして、サービスを開始します。
systemd-networkdのサービス開始
systemctl start systemd-networkd.service

Fig.3-4: systemd-networkdのサービス開始
さらにsystemd-resolvedも有効化し、次回起動時からは自動的にサービスが稼働するようにします。
systemd-resolvedの自動起動有効化
systemctl enable systemd-resolved.service

Fig.3-5: systemd-resolvedの自動起動設定
こちらも、サービスを開始します。
systemd-resolvedのサービス開始
systemctl start systemd-resolved.service

Fig.3-6: systemd-resolvedのサービス開始
ここで再び、現在稼働しているサービスを再確認します。

Fig.3-7: 現在のサービス稼働状況
systemd-networkd.serviceとsystemd-resolved.serviceが動作状態になりましたが、これだけではまだIPアドレスの設定が行われていないためネットワークに接続することはできません。今回は対象のネットワークアダプタをDHCPクライアントに指定することで、DHCPサーバ(ルータ等)からIPアドレスその他の設定を自動取得できるように設定します。
これには、/etc/systemd/network/ディレクトリ内に設定を記述したテキストファイルを配置することによって実現できます。システム側はこのディレクトリ内に存在するテキストファイルを、ファイル名の昇順で優先度が高いものとみなして適用するため、先頭に数字を付けたファイル名で管理します。
インストール直後の段階では何も既存の設定ファイルは存在していないため、どのようなファイル名であってもこれから作成するテキストファイルが最優先になりますが、一応ls /etc/systemd/network/コマンドによって、そのディレクトリ内にファイルが無いことを確認しておきます。
ネットワーク設定ファイルの存在の有無を確認
ls /etc/systemd/network/
既存ファイルが無いことを確認後、catコマンドを用いてテキストファイルを以下のように作成します。
ネットワーク設定ファイルの作成
cat >> /etc/systemd/network/02-wired-enp0s3.network
[Match]
Name=enp0s3
[Network]
DHCP=ipv4
(Ctrl+Cで終了)

Fig.3-8: ネットワーク設定ファイルの作成完了
これでネットワーク上のDHCPサーバから設定が取得されるようになります。ip linkコマンドを用いて状況を再確認してみましょう。

Fig.3-9: ネットワーク接続状況
無事、ネットワークアダプタenp0s3が「UP」状態になりましたので、試しにpingコマンドでインターネット接続を確認します。

Fig.3-10: パブリックテスト用ドメインwww.example.comに対してpingが通ることを確認
以上で、インターネット接続が可能になりました。
4. パッケージリストの更新
インターネット接続が可能になったので、後続の各種インストールを行う前にまずはパッケージデータベースを最新版に更新しつつ、現在インストール済みのアプリケーション群も最新版を適用しましょう。Arch Linuxのパッケージマネージャpacmanを用いて、以下のコマンドを実行します。
パッケージデータベースを最新版に更新
pacman -Syu

Fig.3-11: パッケージデータベースの更新
今回の例では、インストール直後なので念のため-Syyuを使いました。
なお、pacmanのオプションで混同されやすい「y」と「u」のコンビネーションには以下のように微妙な挙動の違いがあります。
| pacman -Sy (お勧めしません) | 1. パッケージデータベースを更新するだけ |
| pacman -Su (お勧めしません) | 1. システム上のインストール済みパッケージを、パッケージデータベースの情報をもとに実際にアップグレードするだけ |
| pacman -Syu | 1. パッケージデータベースを更新し 2. なおかつシステム上のインストール済みパッケージを実際にアップグレードする |
| pacman -Syy (お勧めしません) | 1. 強制的にパッケージデータベースを更新するだけ |
| pacman -Syyu | 1. 強制的にパッケージデータベースをダウンロードし 2. なおかつシステム上のインストール済みパッケージを実際にアップグレードする |
特定のソフトウェアだけを最新版にアップグレードするといった操作が行われた環境はサポートされず、システムの破損に繋がり得ます。また、パッケージデータベースの更新(アップデート)と、実際のソフトウェアの更新(アップグレード)を別々に行うのも混乱しがちなので、あまりお勧めしません。
このため、常用するのは-Syu、何らかの理由でデータベースが破損するなどした場合に-Syyuを行う、といった使い分けで良いと思います。
5. テキストエディタのインストール
OSインストール中にも一度vimはインストールしましたが、それはインストールメディアのisoイメージから起動されたインストーラ環境に対して行われたのであって、このストレージ上にインストールされたArch Linux環境にはまだテキストエディタがありません。そこで、改めてvimをインストールします。
vimのインストール
pacman -S vim

Fig.5-1: vimのインストールと確認メッセージ

Fig.5-2: インストール完了
6. sudo機能のインストール
ほとんどのLinuxディストリビューションではインストール完了後にユーザアカウントでログインし、ターミナル上で管理者権限としての操作が必要な場合にはsudoコマンドを前に付けて実行するというスタイルになっています。ただ、これはLinuxそのものが標準で備えている機能ではありません。Arch Linuxではsudo機能はプリインストールされないので、ここで手動インストールを行います。
sudoのインストール
pacman -S sudo

Fig.6-1: sudoのインストールと確認メッセージ

Fig.6-2: インストール完了
これでsudo機能がインストールされましたが、それぞれのユーザアカウントがsudoを使えるようにするためには、明示的にその権限を割り当てなければいけません。ただ、sudo用の設定ファイルは/etc/sudoersですが、このファイルは厳密に規定されておりわずかな構文エラーも致命的であるため、テキストエディタで直接編集するべきではありません。そこで、visudoコマンドとテキストエディタ(今回はvimを使います)の指定を組み合わせて編集モードに入ります。
sudo用設定ファイルの編集
EDITOR=vim visudo

Fig.6-3: visudoコマンド

Fig.6-4: sudoersファイルの中身
下方向にスクロールし、ユーザグループ「%wheel」がコメントアウトされているところを探し、コメントアウト記号「#」を削除してください。先程メインユーザアカウントも作成する際にこのwheelグループに所属するよう指定したので、wheelグループにsudoを実行する権限を割り当てれば自動的にメインユーザアカウントもsudoを実行できるようになります。
なお、「%wheel」はコメントアウトされている行は2行ありますが、「NOPASSWD:」の記述がある下側の行を有効化するとsudo実行時にパスワードが要求されなくなってしまうためセキュリティ上あまりお勧めできません。今回は上側をコメントアウトします。

Fig.6-5: コメントアウトされている「%wheel ALL=(ALL:ALL) ALL」

Fig.6-6: コメントアウト記号「#」を削除して有効化
編集後、上書き保存でテキストエディタを終了します。

Fig.6-7: 上書き保存して終了
これで、メインユーザアカウントがsudo機能を使うことが可能になりました。
7. rootアカウントのログアウト
ここからの操作はユーザアカウントでsudoを使いながら進めていくため、rootアカウントからはログアウトします。
ログアウト
exit

Fig.7-1: ログアウトコマンドexit
8. ユーザアカウントでログイン
それでは、ユーザアカウントとそのパスワードでログインしましょう。

Fig.8-1: ユーザアカウントでログイン
9. デスクトップ環境のインストール
ここからいよいよデスクトップ環境のインストールです。今回はKDE Plasmaのインストールを進めていきますが、KDE Plasmaには以下の3種類が準備されています。
- plasma-meta
- plasma
- plasma-desktop
このうちplasma-metaとplasmaはそれに含まれるセットの配布様式が異なるだけで中身はおおむね同じ、Plasmaデスクトップ環境及び様々なKDE製ユーティリティ等を含むパッケージ一式で構成されています。一方で、plasma-desktopは最小限のデスクトップ環境に必要なパッケージ群だけしか含まれていません。
今回は、その最小限パッケージplasma-desktopをインストールします。
デスクトップ環境plasma-desktopのインストール
sudo pacman -S plasma-desktop

Fig.9-1: plasma-desktopのインストール
インストールを開始すると、まずはサウンド再生用サービスの選択肢が表示されます。

Fig.9-2: サウンドサービスの選択
今回は2のpipewire-jackを選択して進めていきます。
次に、マルチメディアコンテンツ再生用のバックエンドサービスの選択肢が表示されます。

Fig.9-3: マルチメディアバックエンドサービスの選択
今回は1のqt6-multimedia-ffmpegを選択肢て進めていきます。
その後、インストール確認メッセージが表示されるので「Y」を入力してEnterキーで続行します。

Fig.9-4: インストール中...

Fig.9-5: インストール完了
なお、インストール完了直前にロケール設定についての警告が表示されていますが、これはデスクトップ環境のために必要なロケール環境変数群についてのメッセージで、これらは後ほど設定されるのでここでは気にしなくても大丈夫です。
10. 休憩
これにて、最小限のKDE Plasmaデスクトップ環境のインストールは完了しました。しかしながらこれだけではまだ実用的なデスクトップ環境が構築できたとは言えません。次はこのデスクトップ環境周りの調整、および最低限必要と思われるアプリケーションパッケージを付け足していきます。
デスクトップ編へと続きます。
