2009年7月17日更新
Arch Linuxは簡潔な基本構成と「pacman」という機能的なパッケージ管理ツールを持つ、コミュニティベースのLinuxディストロだ。コアパッケージはわずか200未満。このうえにpacmanを利用して使用するパッケージを導入していくと、各自の目的に応じたシステムが構築されるというわけだ。安定版の概念がなく、バージョンアップ時の再インストールは基本的に不要。自分色のシステムができていくのを楽しむ、育成型ディストロだといえるだろう。Debian、Slackwareなどに比べると後発でマイナーな存在だが、熱心なファンは少なくない。活発なコミュニティの存在も、Arch Linuxの魅力のひとつだといえる。パッケージの配布形式は基本的にバイナリ。対応アーキテクチャはi686とx86_64だ。
Arch Linuxのパッケージは本体と関連ファイル、メタデータ、インストール用スクリプトをtar.gzにまとめた形で配布される。Arch Linuxの独自の修正は大きく加えられていない。メタデータは依存関係の情報を持ち、あるパッケージを導入すると依存パッケージも自動的にインストールされる。メンテナンス作業はpacmanというツールで行う。
Arch Linuxのレポジトリには公式レポジトリ、ArchLinux User-community Repository(AUR)、そのほかのユーザーレポジトリの3種類がある。
公式レポジトリはcore、extra、community、testingの4カテゴリに分かれている。coreはカーネルなどのシステムの基盤となるカテゴリ。extraには開発ツール、サーバ、デスクトップ環境などの拡張パッケージが属している。testingはcoreとextraの開発版にあたり、システムを不安定にする可能性があるため、デフォルトではインストール対象外になっている。communityは厳密にいうと公式の範囲外。AURでの活動などを通じて信頼を得たユーザーがコミットするレポジトリだ。
一般ユーザーがコミットするレポジトリ。バイナリではなくビルドスクリプトを配布している。AURを利用する準備については後述する。
AURが用意されているためか、そのほかのユーザーレポジトリは少ない。Arch LinuxベースのLive CDを制作し、独自のKDEパッケージを配布しているThe Chakara Projectなどがある。ちなみにFrugalwareはpacmanを利用しているがArch Linuxとはまったく別のディストロ。パッケージを混用してはいけない。
pacmanはArch Linuxのパッケージ管理を一手に担うツールで、パッケージの検索、インストールからインストール済みパッケージの管理まで豊富な機能を持っている。
よく使うコマンドを紹介する。詳しくは$ man packamを参照してほしい。
pacman -Sy: パッケージリスト更新pacman -Ss <文字列>: 検索pacman -Si <パッケージ名>: 情報表示pacman -S <パッケージ名>: インストールpacman -Su: 全パッケージ更新pacman -Syuとすると、システムを最新状態にできる。pacman -Qs <文字列>: 検索pacman -Qi <パッケージ名>: 情報表示pacman -Ql <パッケージ名>: リスト表示pacman -U <パッケージ名>: インストールpacman -R <パッケージ名>: 削除pacmanの設定ファイルは/etc/pacman.confと/etc/pacman.d/mirrorlistの2つ。前者は全般的な設定に関するファイル。Arch Linuxに慣れるまではデフォルトのままでいい。後者はミラーサーバを指定するファイルで、インストール作業中に編集することになる。
pacmanのメッセージは/var/log/pacman.logに記録される。
Arch Linuxのプロセスの仕組みはシンプルだ。基本的な設定は/etc/inittabに記述され、各プロセスの処理を行うスクリプトは/etc、デーモンを制御するスクリプトは/etc/rc.dに置かれている。
| ランレベル | プロセス | スクリプト |
|---|---|---|
| ブート | /etc/rc.sysinit |
|
| 0 | 停止 | /etc/rc.shutdown |
| 1 | シングルユーザーモード | /etc/rc.single |
| 2 | 未使用 | |
| 3 | マルチユーザーモード(デフォルト) | /etc/rc.multi |
| 4 | 未使用 | |
| 5 | グラフィックモード | |
| 6 | リブート | /etc/rc.shutdown |
つまり、ブートからログインプロンプト表示までの間に、rc.sysinit→rc.single→rc.multiの順でスクリプトが走るわけだ。
Arch Linuxのデフォルトのランレベルは3(マルチユーザーモード)。/etc/inittabの「id:3:initdefault:」をコメント化し「id:5:initdefault:」を非コメント化すると、5(グラフィックモード)に変更できる。この作業はデスクトップ環境インストール後に行うほうがスムーズだろう。グラフィックモードで使用するログインマネージャも/etc/inittabで指定する。
デーモンの多くは、<スクリプト> startで起動、<スクリプト> stopで停止、<スクリプト> restartで停止・再起動できる。デーモンを自動的に起動するには、/etc/rc.confの「DAEMONS」という項目に対応するスクリプト名を書けばいい。
はじめにインストールディスクを作成する。ディスクイメージの入手は以下のサーバから。「core」と「ftp」の2種類のデータが用意されているが、回線に問題がない限り後者をおすすめする。
インストールディスクをPCにセットしてArch Linuxを立ち上げ、ログイン。# kmでキーボードマップを選択し、# /arch/setupでインストールを開始する。
ftpインストールを選択した場合、ミラーサーバの指定を求められる。設定ファイルを開き、以下の箇所を非コメント化しよう。
ftp://ftp.yz.yamagata-u.ac.jp/pub/linux/archlinux/$repo/os/<アーキテクチャ>パッケージのインストールが終わると、設定ファイルの編集を求められる。慣れていないと戸惑うかもしれないが、見かけほど難しくはない。
/etc/rc.confではロケール、タイムゾーン、ネットワークに関する設定を行う。僕の場合、インストールの時点で修正が必要なのは以下の5か所だった。
LOCALE="ja_JP.utf8"
TIMEZONE="Asia/Tokyo"
KEYMAP="jp106"
HOSTNAME="(任意)"
eth0="dhcp"
/etc/hostsではホスト名、ドメイン名の設定を行う。/etc/locale.genではja_JP.UTF-8を非コメント化する。このファイルの保存後、ロケールデータの生成が行われる。そのほかのファイルはデフォルトのままでいいだろう。
インストールが完了したらPCを再起動してログインしする。初めに最新のパッケージリストをダウンロードし、システムを更新しよう。
# pacman -Sy
# pacman -Su
前述したように、システム更新を適時行うと、最新状態を保ち続けることができる。
# pacman -Syu
更新したくないパッケージがあれば、/etc/pacman.confの「IgnorePKG」の項目に記述するといい。
Xorgとビデオドライバ、欧文TrueTypeフォントをインストール。現在のXorgはデバイスに関する情報をHALから得るため、設定ファイルは基本的に必要ない。HAL、Xorgの順に起動して動作を確認しよう。
# pacman -S xorg <ビデオドライバ(xf86-video-***)> ttf-dejavu
# /etc/rc.d/hal start
# startx
起動に成功したらターミナルにexitを入力してXを終了する。あいにく失敗したらXorgのログ(/var/log/Xorg.0.log)から原因を探ってみよう。
/etc/rc.confの「DEAMONS」に「hal」を追加すると、HALの起動・終了処理が自動化される。
ALSAをインストールし、サウンドカードを検出して設定ファイルを作成する。コンソールが日本語表示に対応していない状態でalsaconfを実行すると文字化けしてしまうので、LANG=Cをつけるといい。
# pacman -S alsa-lib alsa-utils
# LANG=C alsaconf
/etc/rc.confの「DEAMONS」に「alsa」を追加すると、ALSAの起動・終了処理が自動化される。
AURを利用するには開発ツールとsudoが必要だ。
# pacman -S base-devel sudo
sudoを使用する権限を得るには、wheelグループにsudo権限を与え、自分をwheelグループに加えるといい。具体的には、visudoで/etc/sudoersの「%wheel ALL=(ALL) ALL」の行を非コメント化する。もしもviの操作に不慣れなら、事前にコマンドモードの概念と保存・終了コマンドを調べておくとスムーズだ。
# visudo
# usermod -a -G wheel <ユーザーネーム>
IPAフォントなどを/usr/local/share/fontsなどに配置し、/usr/share/fonts/TTFにシンボリックリンクを作る。
# ln -s /usr/local/share/fotns/*.ttf /usr/share/fonts/TTF
fonts.dir、font.scaleなどのファイルを生成する。もっとも、最近のパッケージの多くはfontconfigを利用するため、この作業を省略してもほとんど影響はないだろう。
$ cd /usr/share/fotns/TTF
# mkfontscale
# mkfontdir -e /usr/share/fonts/encodings
/etc/fonts/local.confを以下のような内容で作成する。これにより、セリフにIPAP明朝、サンセリフにIPAPゴシック、モノスペースにIPAゴシックがひもづけられる。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>DejaVu Serif</family>
<family>IPAPMincho</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>IPAPGothic</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
<family>IPAGothic</family>
</prefer>
</alias>
</fontconfig>
SCIMとAnthyをインストール。
# pacman -S scim-anthy
Qtアプリ(KDEなど)でSCIMを使えないときはAURを利用しSCIM-bridgeをインストール。
$ wget http://aur.archlinux.org/packages/scim-bridge/scim-bridge.tar.gz
$ tar -xvzf scim-bridge.tar.gz
$ cd scim-bridge
$ makepkg -s
# pacman -U scim-bridge-<バージョン-アーキテクチャ>.pkg.tar.gz
KDEのパッケージはkdebase、kdeutilsなどのセット単位で配布されている。Arch Linuxの公式レポジトリのパッケージもこれを踏襲した形だ。これとは別に、The Chakara Projectがいくつかのパッケージを分割して配布している。こちらを利用すれば、よりカスタマイズされたシステムを組むことができるだろう。ここでは公式レポジトリを使用する方法を紹介する。
# pacman -S kdebase kdebase-workspace kde-l10n-ja# pacman -S kde kde-l10n-ja kde-extragear koffice koffice-i10n-ja# pacman -S koffice koffice-i10n-ja# pacman -S archlinux-themes-kdeログイン後、「KDEコントロールセンター」でKDEのロケールとキーマップを日本語対応に設定しよう。
# kdmでKDMが起動する。/etc/inittabのランレベル設定を5にし、「x:5:respawn:/usr/bin/xdm -nodaemon」をコメント化して「x:5:respawn:/usr/bin/kdm -nodaemon」を非コメント化すると、次回から自動的に立ち上がる。
この時点までにD-BusとFAMがなければインストール。
# pacman -S dbus fam
/etc/rc.confの「DEAMONS」に「fam」を追加する。
Gnomeのパッケージは個別に配布されている。基本的なパッケージはメタパッケージ「gnome」を使ってまとめてインストールするのが手軽だ。
# pacman -S gnome gdm# pacman -S gnome gnome-extra gnome-system-tools# pacman -S archlinux-themes-gdm# gdmでGDMが起動する。/etc/inittabのランレベル設定を5にし、「x:5:respawn:/usr/bin/xdm -nodaemon」をコメント化して「x:5:respawn:/usr/sbin/gdm -nodaemon」を非コメント化すると、次回から自動的に立ち上がる。
この時点までにD-BusとFAMがなければインストール。
# pacman -S dbus fam
/etc/rc.confの「DEAMONS」に「fam」を追加する。
Xfceのパッケージは個別に配布されている。基本的なパッケージはメタパッケージ「xfce4」を使ってまとめてインストールするのが手軽だ。
# pacman -S xfce4 tango-icon-theme# pacman -S xfce4 xfce4-goodies tango-icon-themeログイン後、「設定→キーボード→レイアウト」でjpレイアウトを選択しよう。
この時点までにdesktop-file-utilsがなければインストール。
# pacman -S desktop-file-utils
E17本体と追加モジュール、ログインマネージャをインストール。
# pacman -S e-svn e-modules-extra-svn entrance-svn
GTKアプリの装飾はGTKテーマの項を参照のこと。日本語キーボードが認識されなかったら起動時に「setxkbmap jp」を実行するよう設定するといい。
# entrancedでEntranceが起動する。/etc/inittabのランレベル設定を5にし、「x:5:respawn:/usr/bin/xdm -nodaemon」をコメント化して「x:5:respawn:/usr/sbin/entranced --nodaemon >& /dev/null」を記述すると、次回から自動的に立ち上がる。
エンジンと設定ツール、Tangoなどのアイコンテーマをインストール。
# pacman -S gtk-engines gtk-chtheme tango-icon-theme
$ gtk-chthemeで設定ツールが立ち上がる。
アイコンは~/.gtkrc.mineに以下のように記述するといい。
gtk-icon-theme-name = "Tango"
本体とテーマをインストール。
# pacman -S slim archlinux-themes-slim
/etc/slim.confの「sessions」の行に使用するデスクトップ環境/ウィンドウマネージャーを記述し、各ユーザーの.xinitrcを作成する。以下はXfce、E17、Fluxboxを使用する例。
case $1 in
xfce4)
exec ck-launch-session xfce4-session
;;
e17)
setxkbmap jp && exec enlightenment_start
;;
fluxbox)
setxkbmap jp && exec startfluxbox
;;
# default session
*)
exec ck-launch-session xfce4-session
;;
esac
SLiMは# slimで起動する。/etc/inittabのランレベル設定を5にし、「x:5:respawn:/usr/bin/xdm -nodaemon」をコメント化して「x:5:respawn:/usr/bin/slim >& /dev/null」を非コメント化すると、次回から自動的に立ち上がる。
本体と国際化パッケージをインストール。
# pacman -S firefox firefox-i18n
「編集→設定→コンテンツ→フォントと配色:詳細設定」を開き、文字エンコーディングを「Unicode(UTF-8)」にする。
# pacman -S flashplugin
ここではサーバ起動までの基本的な作業を紹介する。実際の運営にはセキュリティなどの設定が不可欠なので注意してほしい。
Arch LinuxでLAMPを構築するには、公式レポジトリから各パッケージをインストールする方法と、AURからXamppをインストールする方法の2つがある。
ここでは公式レポジトリを使用する方法を紹介する。パッケージのインストール自体はとても簡単だ。
# pacman -S apache php mysql
デフォルトの設定は以下のようになっている。
/srv/http/etc/httpd/conf/httpd.confを確認し、必要な修正を行う。詳しくはArchWiki: LAMP、JAPAN APACHE USERS GROUPなどを参照してほしい。
デフォルトのユーザーディレクトリは~/public_html。変更したければ/etc/httpd/conf/extra/httpd-userdir.confを修正しよう。対象ディレクトリ(デフォルトでは~と~/public_htmlの2つ)に実行可能権限を与えるのを忘れずに。
$ chmod 745 <対象ディレクトリ>
「.shtml」が書かれた2行を非コメント化する。
設定が完了したら、# /etc/rc.d/httpd startでApacheを起動し、Webブラウザでhttp://localhost/にアクセスしてみよう。もしも正しく動かなかったら、設定を見直し、# /etc/rc.d/httpd restartでApacheを再起動する。正常な動作を確認できたら、/etc/rc.confの「DAEMONS」に「httpd」を加えると、Apacheの起動・終了処理が自動化される。
ApacheからPHPを利用するには、/etc/httpd/conf/httpd.confに「LoadModule php5_module modules/libphp5.so」「Include conf/extra/php5_module.conf」の2行を加える。
PHPからMySQLを利用するには、/etc/php/php.iniの「extension=mysql.so」を非コメント化する。
以下の内容をApacheのドキュメントルートにtest.phpという名前で保存し、Apacheを再起動する。Webブラウザでhttp://localhost/test.phpにアクセスし、PHPの情報が表示されたら正常に動作している。
<html>
<head>
<title>PHP Test Page</title>
</head>
<body>
<?php phpinfo(); ?>
</body>
</html>
MySQLを/etc/rc.d/mysqld startで起動し、ルートのパスワードを設定する。
# mysqladmin -u root password <パスワード>
/etc/rc.confの「DAEMONS」に「mysqld」を加えると、MySQLの起動・終了処理が自動化される。
phpMyAdminをインストールすると、MySQLの操作をWebブラウザから行うことができる。
# pacman -S phpmyadmin libmcrypt
/etc/php/php.iniの「extension=mcrypt.so」を非コメント化し、Apacheを再起動する。phpMyAdminのインストール先は/srv/http/phpMyAdmin/。Apacheの設定がデフォルトのままならhttp://localhost/phpMyAdmin/index.phpからアクセスできるだろう。