Chap-33. Arch Linux の試用

 Arch 系 Linux の総本山に始めて手を出します。 2022-08
どっちかと言うとインストールの面倒なものには手を出さない方針でしたが、気が変わりました。
どっちかと言うとインストール記事は載せない方針でしたが、それについても気が変わりました。
割合とよく気が変わるタイプです。
ほとんど Arch 初心者の自分が書くトピックです。イメージとしては「初心者がやるとこうなる」って感じです。そのつもりで読んでください。

2023-11 ちょっとだけ内容変更などです

2023-11 晩秋 ローリングリリース系ディストリと「いじり回すギークっぽい使い方」は相性が悪いようです。このため Arch に対して私の関心が薄れつつあります。もしかしたら、今後は更新ないかもしれません、汗。



Sec-1.前提
Sec-2.ディスク準備及びリポ不調の備え
Sec-3.CUIにインストール
Sec-4.GUI化する
Sec-5.CUI インストールしたものをサーバ化
Sec-6.GUI インストールしたもののお試し
Sec-7.全体の印象




Sec-1.前提

 以下の事柄を前提とします。

こんなところです。概ねいつもの感じ。
面倒なことはやらない方針なのでディスクのパーティションは EndeavourOS等 のインストール ISO を立ち上げ GUI 状態で gparted を使って行います。gparted を使うのに ArcoLinux-D の ISO でも良いです。gparted が動くものなら、どんなディストリでも良いです。

準備として EndeavourOS等 のインストールメディア(USB)、Arch Linux のインストールメディア(USB)、の2つをあらかじめ用意します。





Sec-2.ディスク準備

ディスク準備
 ディスクとして 120GB ぐらいの SSD を用意しました。いつもの調子で BIOS 互換モードで使います。
EndeavourOS などのインストールメディアを立ち上げてから gparted を立ち上げます。
前に別のディストリに使われていた SSD と仮定します。
最初に全てのパーティションを消した後、edit --- apply all operations やります。
その後で念の為、いったん device --- create partition table --- (MSDOS type)でapply やります。
念の為というのは、gdisk で処理された SSD の場合 BIOS モード用の MBR を書き込むスペースが取られていない可能性があるためです。
MSDOS type でパーティションテーブルを作っておくとこの領域が確保される・・・らしいです。よく知りませんが、笑。
次に Arch Linux のためのパーティションを切っておきます。この場合

とします。ラベルは何でも良いです。swap は適当です。
このように処理すると、sda1、sda2 についてそれぞれ、mkfs.ext4、mkswap の処理がされますのですぐ使えます。

注:sda sdb とかは使用している環境によると思います。以下の記述はインストール対象の SSD が /dev/sda と仮定します。



インストール用 ISO イメージ
 Arch の場合は基本的に最新の ISO イメージが必要です。古いものを使うとインストールに失敗します。
archlinux-keyring が適正でないとリポからダウンロードできない模様です。






Sec-3.CUIにインストール

このセクションは以下の2つのサイトを参考にしました。著者さんありがとうございます。

https://qiita.com/shiyzuha/items/d09a4930cc204087b08c

ArchLinux wiki 「インストール」のところ





1) キーボード設定
 マシンをBIOS互換モードにして Arch Linux のインストールメディア(USB)を立ち上げます。まず、以下のコマンドを打ちます。
私の使っているキーボードは日本語キーボード。しかも標準だとaの左は Capslock なので、これが Ctrl キーになるようにします。

# loadkeys jp106
# loadkeys caps-swap.map  

caps-swap.map というファイルの中身は以下のとおり。nano を使って入力するか別のマシンに用意しておいて sftp などでこっちに持ってきます。ようするに capslock と ctrl の入れ替えです。入れ替えなくても良い人はやらなくて良い作業です。

keymaps 0-1,4-5,8-9,12
keycode 29 = Caps_Lock
keycode 58 = Control



2)マウント
 以下のコマンドでマウントします。

# mount /dev/sda1 /mnt
# swapon /dev/sda2




3) 時間の設定
以下のコマンドで時間設定します。とりあえず一旦 systemd-timesyncd を動かします。

# timedatectl set-ntp true
# timedatectl set-timezone Asia/Tokyo


4) mirror の設定(mirrorlist の編集)
 よくある例ではやるように書いてありますが、やらなくても良いです。やらなくてもインストールできます。面倒なことはやめます。




5) パッケージインストール
 以下のようにパッケージをインストールします。
linux-firmware はうちの場合には入れないとキー入力が受付られませんでした。入れずにやってみたら OS は立ち上がったけどログインできなかったと言う意味です。
openssh はいざという時リモートでログイン出来るようにしておきたい。networkmanager は無いと不便です。
nano は私が emacs 派だから入れます。カーネルは LTS にしました。


# pacstrap /mnt base linux-lts linux-firmware openssh networkmanager nano

これで最初に必要なパッケージが入りました。LTS でなくて最新カーネルが入れたい人は linux-lts のところを linux とします。




6) fstab 作成

# genfstab -U /mnt >> /mnt/etc/fstab

後で、cat /mnt/etc/fstab やって確認しておきます。




7) chroot する


# arch-chroot /mnt



8) timezone と時間の設定

# ln -sf /usr/share/zoneinfo/Asia/Tokyo  /etc/localtime
# hwclock --systohc



9) 文字コードの設定
 /etc/locale.gen というファイルの中身を以下のとおりにする。

en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8

このあと、# locale-gen を実行する。

また、/etc/locale.conf というファイルの中身を以下のとおりにする。

LANG=en_US.UTF-8



10) ホストネーム等の設定
 /etc/hostname 及び /etc/hosts の設定。適当に。




11) パスワード設定
root パスワード設定。適当に。




12) ブートローダインストール及び組み込み

# pacman -S grub os-prober amd-ucode
# grub-install --target=i386-pc --recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

 うちの場合 AMD の CPU なので amd-ucode です。intel CPU の場合は intel-ucode です。
64 ビットモードで動いていても名前は i386-pc です、笑。




13) ネットワークマネージャ等設定

# systemctl enable NetworkManager
# systemctl enable sshd




14) キーマップ設定(CUI用)
 /etc/vconsole.conf の中身を以下のようにします。CUI 用です。GUI はこれを見てません。

KEYMAP=jp106



15) ログアウトして再起動

# exit                                                                                                            
# umount -R /mnt                                                                                                   
# reboot

これで CUI モードで立ち上がる・・・・はずです、笑。
ルータが DHCP サーバ機能をやっているでしょうから、自動的にIPアドレスを決めて立ち上がっていると思います。
CUI 作業量が多いなら key-caps.map (最初に説明したヤツ)を作っておいて、いつでもキーの入れ替えが出来るようにしておくと便利です。
なお、最初の作業としては nmcli を使って静的 IP address に変えておくことでしょう。他のマシンからログインすることもあるでしょうから、動的 IP address では作業がやりにくくて仕方ないです、笑。
静的IP address への変更は Chap-19. Sec-4. を見てください。


また、この段階でユーザ登録(ルート以外のユーザ)しておいたほうが良いと思います。当然の作業なので説明省略。







Sec-4.GUI 化する

1) GNOME インストール、GUI化
 GNOMEが動くようにします。とりあえず、以下のものが定番パッケージだと思います。

# pcaman -S gnome  gnome-control-center gnome-shell-extensions gnome-menus gnome-tweaks noto-fonts-cjk

インストール完了したあと # systemctl enable gdm とします。これでリブートすると次は GUI で立ち上がります。

*補足
 以前 debian 等では systemctl コマンドを使って multi-user.target graphical.target とか指定してCUIとGUIを使い分けました。
でも今回はそうじゃないです。gdm を有効化するだけです、多分。
noto-fonts-cjk を入れておいたほうが日本語表示化が楽に出来ます。




Sec-5.CUI インストールしたものをサーバ化

 チャプタをおこしましたが書くことはあまりありません、笑。
DMZにマシンをおいてネットワークセキュリティを施した上で、マシンは要塞ホスト化します。Chap-basic-1. ネットワーク構築のところを見てください。あのとおりです。
 また私の場合、外部に提供するネットワークサービス(SMTP、HTTP)のサーバソフトは自分でコンパイル・インストールしています。なので設定ファイルは使いまわし出来ます。Debian、AlmaLinux、SUSE、Arch 等のどれを使っても基本的にやることは一緒です。
 またファイアーウォールも自分でスクラッチから書いた設定を使っているので、どのディストリでやっても同じです。使いまわし出来ます。こういう点は個人宅サバの便利なところです。業務用だとそんなやり方は無理でしょう、笑。
フィルタールールを自前で書くなら apparmor や firewalld などは不要です。


 1ヶ月弱のお試し運転ですが、特に問題なくインターネットサーバが運転できました。ローリング・リリース形式のヤツでサーバ運転なんてやらないだろ、ってツッコミは止めてください。宅サバです、笑。




****** 各種ソフトのコンパイルについて ************

  もしも postfix がうまくコンパイル出来ないなら $ make -f Makefile.init makefiles AUXLIBS=-lnsl でやってみるとイケると思います。


****** 注:インストールする時期によっては次のようになります。************

  postfix のためのシンボリックリンク

   # ln -s /usr/include/db5.3/db.h /usr/include/db.h
   # ln -s /usr/lib/libdb-5.so /usr/lib/libdb.so

  Apache のためのシンボリックリンク。上のリンクを貼った後で

   # ln -s /usr/lib/libdb.so /usr/lib/libdb-6.2.so

  こうして3つのシンボリックリンクを貼ることで postfix、apache がコンパイル出来ます。
  どうもインストールする時期によって pacstrap で入れる base パッケージの構成が異なっているようです。

2023-06 6月中旬に更新したら所定のファイルが入ってくるようになっていました。なので更新前にこのシンボリックリンクを外しておきます。
もうリンクを貼ってコンパイルをごまかす必要な無くなりました。

2023-11 CUI 新規インストールしたら線で消したところが必要な作業でした、汗。GUI 版新規インストールでは不要でした。







Sec-6.GUI インストールしたもののお試し

 上記のように GUI 化できれば後は ArcoLinux と全く同じと言って良いと思います。なので実は書くことありません。
Chap-21. ArcoLinux のところを見てください。恐縮です。

 って書くとあまりにそっけないので、一つだけ追記。
ここまで文章ばかりで味気ないので写真も載せます、笑。

 二階のサーバールームで音楽聞いたりアマゾンプライム観たりするとき、デスクトップ機に USB Bluetooth ドングルを刺し Bletooth スピーカを使っていました。
最近になって、このドングルを刺しているとたまにうまく認識できずコケるディストリがあることに気づきました。このためスピーカを USB 接続で DAC 付きのものに変えました。送料込みで3000円程度でした。SANWA のヤツ。DAC もついて安いです!
アナログのヤツだと電源コードとアナログの音楽のコードの二本必要ですが、これだと USB 一本なので便利です。複数のマシンにつなぎ替えるのも簡単・便利です。


usb-sp


 そもそも何を書こうとしているかと言いますと、ネット見ていると Arch で音楽がブチブチ切れたり雑音が入るという記述をたまに見ます。なので無事に音楽が聞けるか、DVD再生などが無事に出来るか試してみました。その話です。
audacious、vlc、libdvdcss を入れてみました。
結論から言いますと、音楽がブチブチきれることは一切ありません。DVDも問題なくなめらかに再生出来ます。音も含めて。
GUI化したものも問題なく、良い感じです。

どうでも良い話ですが、安いスピーカーでもサーバールームで楽しむくらいなら十分イケると感じました、笑。



補足:yay のインストール
 ディストリによっては pacman で yay をいれるのもあるようです。Arch は pacman から入れるのではなく以下の参考サイトを見てやるのが良いです。著者さんありがとうございます。

https://qiita.com/Gen-Arch/items/ad7aef73cfc5a12b4e45

補足2:/etc/nsswitch.conf
 このディストリの /etc/nsswitch.conf は mdns が入っていません。それなりにセキュリティに配慮されているようです。確か EndeavourOS も同じでした。Arco は mdns の記述があるので、私は取りました。

補足3:2023-11
 GNOME だと音は正常に出ましたが、2023-10 に Xfce4 でやってみたら arch 版の vlc (vlc + libdvdcss)で音がビリビリと言って使えませんでした。flatpak 版の vlc にして解消しましたが・・・
Arch 版でどうやってビリビリを直すのか調べていません。自分の場合 GNOME がメインだし。






Sec-7.全体の印象

 このセクションは私の独断的、個人的な印象のみです。

*まず使い方の3つの視点から見た評価です。
・サーバ系の利用について・・・・・・・・・十分に調子良いです。
・GUIでUNIXっぽい利用について・・・・・・・全然問題なく良好です。
・GUIでWinっぽい利用について・・・・・・・プリンタ設定はいろいろと作業が必要です。それ以外の事柄は良好です。パッケージも豊富です。

*次にセキュリティー上の視点からの評価ですが、Chap-26-2. に示すカテゴリ2なので問題は無いだろうと思います。

 それで、全体的にどう思うかということです。
 インストールが面倒すぎるので無条件におすすめディストリとは言いづらいです。
 ただし、その一方でOSの出来栄えは良好です。ローリングリリース系の中では最も安定・堅固な印象です。ただし、固定リリース版(Debian Ubuntu など)と比較すると、ほんの少しだけやらかす頻度が高いです。少しだけ。
ローリングリリースなので、そういうときは気長に(も1回更新すればきっとなおるし・・)待つのが良さそうです。ジタバタせずに、笑。
 かって何度も経験したリポ不調、更新できないというエラー発生はすっかり改善されたように見えます。関係者の方々の努力に敬意を表します。