Arch Linuxについて

Arch LinuxArch Linuxは簡潔な基本構成と「pacman」という機能的なパッケージ管理ツールを持つ、コミュニティベースのLinuxディストロだ。コアパッケージはわずか200未満。このうえにpacmanを利用して使用するパッケージを導入していくと、各自の目的に応じたシステムが構築されるというわけだ。安定版の概念がなく、バージョンアップ時の再インストールは基本的に不要。自分色のシステムができていくのを楽しむ、育成型ディストロだといえるだろう。Debian、Slackwareなどに比べると後発でマイナーな存在だが、熱心なファンは少なくない。活発なコミュニティの存在も、Arch Linuxの魅力のひとつだといえる。パッケージの配布形式は基本的にバイナリ。対応アーキテクチャはi686とx86_64だ。

Arch Linuxのパッケージ管理

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を利用する準備については後述する。

ユーザーレポジトリ

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に記録される。

initプロセスとデーモン

Arch Linuxのプロセスの仕組みはシンプルだ。基本的な設定は/etc/inittabに記述され、各プロセスの処理を行うスクリプトは/etc、デーモンを制御するスクリプトは/etc/rc.dに置かれている。

Arch Linuxのプロセスとスクリプト
ランレベル プロセス スクリプト
ブート /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とALSA

Xorg

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

ALSAをインストールし、サウンドカードを検出して設定ファイルを作成する。コンソールが日本語表示に対応していない状態でalsaconfを実行すると文字化けしてしまうので、LANG=Cをつけるといい。

# pacman -S alsa-lib alsa-utils
# LANG=C alsaconf

/etc/rc.confの「DEAMONS」に「alsa」を追加すると、ALSAの起動・終了処理が自動化される。

AURの準備

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

Xコアフォント

fonts.dir、font.scaleなどのファイルを生成する。もっとも、最近のパッケージの多くはfontconfigを利用するため、この作業を省略してもほとんど影響はないだろう。

$ cd /usr/share/fotns/TTF
# mkfontscale
# mkfontdir -e /usr/share/fonts/encodings

fontconfig

/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

デスクトップ環境

KDE4

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
Koffice
# 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」を非コメント化すると、次回から自動的に立ち上がる。

Gnome

この時点までに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」を非コメント化すると、次回から自動的に立ち上がる。

Xfce4

この時点までに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レイアウトを選択しよう。

ログインマネージャ

GnomeのGDMかSLiMを使うといいだろう。

Enlightenment 17

この時点までに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」を記述すると、次回から自動的に立ち上がる。

GTKテーマ

エンジンと設定ツール、Tangoなどのアイコンテーマをインストール。

# pacman -S gtk-engines gtk-chtheme tango-icon-theme

$ gtk-chthemeで設定ツールが立ち上がる。

アイコンは~/.gtkrc.mineに以下のように記述するといい。

gtk-icon-theme-name = "Tango"

SLiM

本体とテーマをインストール。

# 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」を非コメント化すると、次回から自動的に立ち上がる。

主要デスクトップアプリ

Firefox

本体と国際化パッケージをインストール。

# pacman -S firefox firefox-i18n

「編集→設定→コンテンツ→フォントと配色:詳細設定」を開き、文字エンコーディングを「Unicode(UTF-8)」にする。

Flashplayer

# pacman -S flashplugin

Apache・MySQL・PHP

ここではサーバ起動までの基本的な作業を紹介する。実際の運営にはセキュリティなどの設定が不可欠なので注意してほしい。

Arch LinuxでLAMPを構築するには、公式レポジトリから各パッケージをインストールする方法と、AURからXamppをインストールする方法の2つがある。

ここでは公式レポジトリを使用する方法を紹介する。パッケージのインストール自体はとても簡単だ。

# pacman -S apache php mysql

Apache

デフォルトの設定は以下のようになっている。

ドキュメントルート
/srv/http
ユーザーディレクトリ
有効
SSI
無効

/etc/httpd/conf/httpd.confを確認し、必要な修正を行う。詳しくはArchWiki: LAMPJAPAN APACHE USERS GROUPなどを参照してほしい。

ユーザーディレクトリ

デフォルトのユーザーディレクトリは~/public_html。変更したければ/etc/httpd/conf/extra/httpd-userdir.confを修正しよう。対象ディレクトリ(デフォルトでは~~/public_htmlの2つ)に実行可能権限を与えるのを忘れずに。

$ chmod 745 <対象ディレクトリ>

SSI

.shtml」が書かれた2行を非コメント化する。

設定が完了したら、# /etc/rc.d/httpd startでApacheを起動し、Webブラウザでhttp://localhost/にアクセスしてみよう。もしも正しく動かなかったら、設定を見直し、# /etc/rc.d/httpd restartでApacheを再起動する。正常な動作を確認できたら、/etc/rc.confの「DAEMONS」に「httpd」を加えると、Apacheの起動・終了処理が自動化される。

PHP

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

MySQLを/etc/rc.d/mysqld startで起動し、ルートのパスワードを設定する。

# mysqladmin -u root password <パスワード>

/etc/rc.confの「DAEMONS」に「mysqld」を加えると、MySQLの起動・終了処理が自動化される。

phpMyAdmin

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からアクセスできるだろう。