ジャンル不定の日記です。

Arch Linux インストールまとめ

Arch Linuxのインストールやり直して、だいたいわかったんで手順まとめる。
UbuntやSUSEみたいな簡単なインストーラがなくて、手順わからないとマジ苦労する。

デスクトップには、最近気に入ったんでKDEを利用する。
KDEが起動してネットワークが使えればあとはGUIのパッケージマネージャ入れてパッケージマネージャでアプリ入れていくだけならUbuntuとそう変わらんので、
大きく分けて、
  1. ベースシステムをインストール。
  2. KDEが起動してネットワークが使えるようにする。
  3. 日本語表示と日本語入力。
って感じ。

基本GUIで使う環境を構築なので、言語やタイムゾーンの設定などはとりあえず放置。
後で必要になったら、その時KDE上で設定する。


ベースシステムをインストール

Arch Linuxのインストールisoを用意してCDから起動する。
パスワード無しでrootログインとなる。
Ubuntuなどと違って親切なインストーラはないので、複数のコマンドを使ってインストールすることになる。

日本語キーボードにする
loadkeys jp106
loadkeysコマンドはシャットダウンまでの一時的な設定だが、初期状態で英語キーボードなのでjpキーボードにしないと記号が入力できなかったりして困るので設定する。

パーティションの作成
GPTというのが推薦のようなので、fdiskではなくgdiskで作成する。
gdisk /dev/sda
で1番目の物理ディスクにパーティションを作る。
?でコマンド一覧を確認できるが、
o コマンドで全てのパーティションを消してパーティションテーブルを作成。
n コマンドでパーティションの作成
w コマンドで書き込んで終了
という流れになる。
p コマンドを使うとパーティションテーブルを確認できる。
nコマンドでのパーティション作成は、1番目のパーティションはそのままEnterすると開始セクタが2048で最後までのパーティションとなる。
パーティションタイプを指定せずそのままEnterするとLinux用のパーティションになる。
その後2番目のパーティションを作成すると34-2047の1007KBのパーティションが作成できるが、
grub用のパーティションが必要なので、パーティションタイプef02で作成してブート用の領域にする。
/dev/sda1がルートの方がわかりやすいと思うんで、1番目のパーティションをLinux用、ブート領域は2番目にした。
スワップ領域は要らない派なんで作らない。

フォーマット
mkfs -t btrfs /dev/sda1
流行りのようなんでext4ではなくbtrfsでフォーマットする。

インストールする領域をマウント
mount /dev/sda1 /mnt

日本のミラーの変更(省略可)
nano /etc/pacman.d/mirrorlist
この手順は省略可能だが、初期状態だとアメリカの鯖からダウンロードになると思うのでJapan優先にする。
テキストエディタはnanoが利用可なので、nanoで/etc/pacman.d/mirrorlistを開いて、Japanの箇所を探してカットして先頭にペースト。
nanoは下にショートカットキーの一覧が表示されるので使いやすいが、
Ctrl+Kでカット、Ctrl+Uでペースト。Ctrl+Xで終了で、変更している場合は保存確認が出るのでYでEnterすると保存して終了となる。

ベースシステムをインストール
pacstrap /mnt base
これでベースシステムのパッケージがダウンロードされて/mntにインストールされる。
ソースコードからArch用のパッケージを作るためのArch Build System (ABS)、
一般ユーザーがABSで作成したパッケージが配信されるArch User Repository (AUR)、
これらがArch Linuxの売りのようで、これらを利用するためには、baseだけでなくbase-develも入れる必要があるのだが、
後から入れることはできるので、今回はできるだけ最小構成を目指したいのでbaseだけ入れる。
AURを使いたいときにbase-develを入れると覚えておく。
baseの後にスペース区切りでパッケージ名を指定すればこの時点で入れられる。

fstabの作成
genfstab -p /mnt >> /mnt/etc/fstab
これでfstabが自動的に作られる。

インストールしたシステムにchroot
arch-chroot /mnt

GRUBのインストールと設定
pacman -S grub
grub-install --target=i386-pc --recheck --debug /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
pacmanでgrubパッケージをインストールして、grubのコマンドで/dev/sdaに入れる。

pacmanコマンドはUbuntuで言うところのaptだが、なにかインストールする際は、
pacman -S パッケージ名
で入れる。
pacman -Ss 文字列
で検索できる。

GRUBをインストールしたら、以後ハードディスクから起動できるようになる。
が、この時点でハードディスクから起動した場合はネットワークが繋がっていないのでインストールしたりできない。
一度ハードディスクから起動して、再度CDから起動したくなったら、
mount /dev/sda1 /mnt
arch-chroot /mnt
でCD起動後にハードディスクをマウントしてchrootすれば作業を再開できる。


KDEが起動してネットワークが使えるようにする。

rootパスワードの設定とユーザーの作成
passwd
useradd -m user
passwd user
KDEをインストールしようとしているわけだが、KDEにrootでログインしようとすると怒られる。
KDE上でroot権限が必要な際、Ubuntuなら現ユーザーのパスワードが要求されsudoするが、Archではrootパスワードが要求されsuとなる。
というわけで、rootパスワードを設定して、一般ユーザーを作成する。
ユーザー名を省略してpasswdコマンドを使うとrootパスワードの設定になる。
useraddコマンドの-mオプションで、ユーザーの作成と同時にホームディレクトリが作られる。
passwdコマンドで作成したユーザーのパスワードを設定。

KDEとXのインストール
pacman -S kdebase
pacman -S xorg-server xf86-video-vesa
kdebaseをインストールすると選択しが数回出るが、そのままEnter。
kdebaseだと最小構成がインストールでき、kdeパッケージをインストールするとフルインストールができる。
kdebaseだけでも1GB以上になる。
ブラウザなんかはFirefox使うからKonquerorは要らない気がするんだが、ベースパッケージ入れとかないと問題起こりそうだから素直に入れておこう。
KDEはX上で機能するのでxorg-serverも入れる必要がある。
Xのディスプレイドライバが必要だが、vesaドライバを入れておけばどんなハードでも利用できると思うのでとりあえずxf86-video-vesaを入れる。
ハードディスクから再起動してkdmデーモンを起動すればKDEのGUIが利用できるのだが、ネットワークも先に入れる。

NetworkManagerのインストール
pacman -S kdeplasma-applets-plasma-nm
KDEのパネル用NetworkManagerアプレットを入れればNetworkManager本体もインストールされる。

これでKDEでネットワークを利用する準備ができたのでハードディスクから再起動する。
起動後rootでログインする。

デーモンの設定
systemctl enable kdm
systemctl enable NetworkManager
kdmデーモンを起動したら、その時点で画面がKDEのGUI(ログイン画面)になる。
kdmとNetworkManagerが起動時に有効になるようにsystemctlコマンドでenableする。
ちなみに、起動時ではなく直ちに起動したければ、
systemctl start kdm
で即KDEになる。

kdmをenableしたら、以後起動時にGUI(KDE)となる。


KDEの設定

ネットワーク設定
UbuntuでもGUIのパネルにネットワークの状態が表示され操作できるが、あれがNetworkManager。
画面下部にパネルがあり、右端の時計の左にシステムトレイがあるはずだが、右クリックして、
System Tray Settings > Display Extra Items > Network Management
をチェックするとネットワーク状態が表示される。
初期状態で接続されてるはず。

スタートメニューのApplications > System > Terminal(Konsole)
がコンソール。
ネットワークを確認したかったら、pingコマンドとかで確認してみると良い。

GUIのパッケージマネージャをインストール
Konsoleを開いて、
su
pacman -S apper
apperってのが人気ありそうなGUIパッケージマネージャなんでこれ入れる。
Ubuntuならsudoで実行するところだが、sudo設定してないんでsuでrootログインして入れる。

以後はコンソールでpacmanせずにGUIのapperでパッケージ管理する。
スタートメニューのApplications > Settings > Software Management(apper)
検索が初期状態で"Find by name"となってて、説明文から検索したい場合は"Find by description"しないとダメ。といっても、説明文がUbuntuと違ってショボイんでパッケージ探すのは難しいかも・・・
検索してインストールしたいパッケージの"Action"の"Install"をクリックして、"Apply"でインストールされる。

KDEの日本語パッケージを入れる
apperで"kde-l10-ja"を探してインストール。

スタートメニューのApplications > Settings > Settings SystemでLocaleをクリック。
Country Japan
Languages Japanese
を設定してApply。
再起動(再ログイン)すればKDEが日本語優先表示になる。といっても、Ubuntuに比べて日本語化がしょぼいので、あまり期待しないほうがいい。

日本語キーボードの設定
日本語化したので、スタートメニューの
Applications > Settings > Settings System
が、
Applications > 設定 > システム設定
に変化している。
ハードウェア > 入力デバイス の キーボード > Layouts で、
"Configure layouts"をチェックするとレイアウトが設定可能になる。
標準でusキーボードが設定されているので"Remove"で消す。
"Add"でjpキーボードを追加し、"Apply"。
これで、円マーク(バックスラッシュ)とか記号類が入力できるようになる。

日本語入力をインストール
apperで"mozc"を検索して"fcitx-mozc"をインストール。
UbuntuでもおなじみのGoogle製IMだが、他に、"fcitx"で検索して、
"kcm-fcitx","fcitx-gtk2","fcitx-gtk3","fcitx-qt4","fcitx-qt5"
も入れる。
kcm-fcitxはKDE用のfcitx設定ツール。パネルとかからfcitxを設定するのに必要。
gtkアプリとか、別々にfcitx入れないとダメなようで、gtkとqtのやつ別々に入れる。
再起動(再ログイン)するとパネルのシステムトレイにfcitxが表示される。

Konsoleで、
nano .xprofile
して、ホームディレクトリの.xprofile(存在しない)を編集。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
内容は3行。
これでfcitxを標準IMになる。
設定しないとXIMが標準になっちゃってて、IMを変更できるアプリ以外では日本語入力できない。

システムトレイのfcitx(キーボードアイコン)を右クリックして、"Configure"をクリック。
Input Method > Select Input Method で "Mozc" を右に入れて、"Apply"
でMozcが利用可能になる。
入力モードの切り替えは初期状態で「Ctrl+スペース」なので、
Global Config > Hotkey > Trigger input Method の 右側が "Empty" になってるので、ここクリックして「半角/全角」キーを押して設定して、"Apply"
これで半角/全角キーでモード変更できるようになる。



ここまでできれば、後はapperでパッケージを探して入れればいいだけだからUbuntuとかわらんと思う。

Archの売りは、ABSで簡単にArch用のパッケージが作れて、AURで一般ユーザーの作成したパッケージが配信されているため多くのパッケージがある。
ってことだと思うんだが、
AURは基本的にpacmanで管理する公式パッケージとは別で、パッケージマネージャで管理されず、ダウンロードしてインストールって感じぽい。
それなら、UbuntuでPPA探してきてリポジトリ登録するほうが楽な気が・・・
というわけで、AURはちょっと期待はずれな感じ。

公式リポジトリちょっと検索した感じでは、UbuntuではgFTPがFTPS非対応でビルドされてて気に入らないんだが、ArchのgFTPはFTPS対応ぽかったのと、
エミュレータ系がArchの方が公式リポジトリが強い感じがした。

日本人にとって2chブラウザがないと困ると思うが、Ubuntuには公式リポジトリにJDがあるが、Archは公式リポジトリには2chブラウザなさそう。
無いと困るから、その辺はAUR使わないとダメぽい。
他の必須アプリは公式リポジトリで揃いそう。

Ubuntuは6ヶ月に1回リリースで2年に1回長期サポート版のLTSがリリースされ、通常版はサポート期間が9ヶ月だがLTSは5年サポート。
このリリース・サポートサイクルだと、LTSを採用するとサポート期限までにLTSが2回リリースされ、まだ1年余裕ある。
バージョンの選択肢が多く、サーバー用途ですごく使いやすい。
サーバー用途ではCentOSが人気だが、サポート期間が長くてもリリースが遅いとバージョンの選択肢は増えないから、CentOSは鯖用途でもダメだと考えてる。

Archのローリングリリースってのは常に最新版を追って、ディストリビューションのアップグレードというものは必要ない。
個別パッケージの最新版を追うと、いつ重要な更新が行われるかわからなくなるから、サーバー用途では使えないかなと思う。
だが、デスクトップ用途ではディストリビューションのアップグレードが無いからバージョンアップで問題が生じてもどのアプリに問題があるのかわかりやすくて良いかもしれない・・・

今メインのデスクトップはUbuntuだがKDEを使ってる。
UnityではなくKDEを使う理由は、UnityというよりNautilus。
Nautilusに代表されるGNOMEコアアプリは、昔はたくさんあった設定項目がどんどん隠されていって、自分の使い方に合わせてカスタマイズする方法がわからない。
Nautilusは以前から設定項目を隠してカスタマイズ不能にする傾向があったが、
Ubuntu 13.10にして、geditにもその傾向が見えたんで、もうGNOMEとは決別すべきと判断してKDEに変えた。
UnityはGNOMEよりは間違ってないと思うんだが、Ubuntuが元々GNOMEだからNautilusとかgeditとかGNOMEコアアプリが標準採用されちゃってる。

KDEを使っていてKDEと決別したくなって別のデスクトップを入れる時のことを考えると、最小構成で必要なものだけ入れるというArchは良いと思う。
デスクトップ環境はUbuntu辞めてArchにするか検討してる・・・