Arch Linux

Arch Linuxは、Linuxディストリビューションの1つであり、「シンプリシティ」、「ミニマリズム」、「エレガンス」さ、コードの正しさに焦点を当てて開発されている。「シンプリシティ」とは、Arch Linuxの言うところでは「…不必要な追加・修正、あるいは複雑化を伴わない…」ことであり、それは初心者の立場よりも開発者の立場からの見たものだとしている。

Arch Linuxは、ローリングリリースと呼ばれるリリースモデルを採用しており、他のLinuxディストリビューションで見られるような明確な「バージョン番号」や「リリース・スケジュール」を持たない。リポジトリ上のソフトウェアパッケージは日々新しいバージョンへと更新されており、定期的にソフトウェアアップデートを行うことで、システムを常に最新の状態に保つことができる。インストール用のイメージファイルは定期的に更新されているが、これは基本的にシステムパッケージ群の最新スナップショットに過ぎない。

1. 歴史
-----

Arch Linuxは、2002年3月にジャッド・ヴィネットにより設立され、最初のリリースである 0.1は2002年3月11日に公開された。ジャッドは、別の最小主義ディストリビューションであるCRUXから着想を得てArchの開発を思い立った。彼は2007年10月1日までプロジェクトを率いたが、自身の時間不足を理由に辞任し、それ以降はアーロン・グリフィンがプロジェクトを率いている。

2. デザインと理念
----------

Arch Linuxの公式リポジトリはバイナリパッケージをベースとしている。これらのパッケージは、近代的なハードウェアのパフォーマンスを引き出すために、x86-64マイクロプロセッサを対象にしている。Portsやebuildのように、ソースコードのビルドおよびバイナリパッケージの作成を自動化するArch Build Systemも提供されている。

Arch Linuxは、シンプルで無駄の無いシステムに焦点を当てており、ユーザを支援するために行なわれている努力はグラフィカルインタフェースの提供ではない。その代わりに、「素早くアクセスして編集できるように配置され、簡明なコメントが付けられた、きれいで能率的な構成ファイル群が整備されている」としている。

2.1. initフレームワーク
----------------

Arch Linuxは、2012年11月4日より公式のinitシステムとしてsystemdを採用した。

過去のArch LinuxではBSDスタイルのinitが使われていた。これは、柔軟性と引き換えにシンプリシティを得るもので、起動時にロードしたいモジュールや実行したいサービスは中心的設定ファイルの /etc/rc.conf に単純に列挙していた。

3. インストール
---------

Arch Linuxのウェブサイトでは、CDもしくはUSBから起動できるISOイメージが提供されている。Arch Linuxのインストール作業はコマンドライン環境で行われる。パーティションの作成、ファイルシステムの作成・マウントなどを行い、pacstrapという小さなシェルスクリプトを実行して基本システムをインストールする。。インストール直後の状態では、必要最小限のGNU/Linux環境   —   すなわちLinuxカーネル、GNUツールチェーン、少数の追加モジュールとライブラリ、およびbashシェルのみが存在する。その後のシステムの設定やデスクトップ環境などのソフトウェアの追加は手動で行う必要がある。

4. パッケージ管理
----------

4.1. Pacman
-----------

すべてのパッケージは、Arch Linuxのために開発されたPacmanパッケージマネージャを使用して管理される。Pacmanは、パッケージのインストール・アップグレード・削除・ダウングレードを処理するとともに、依存関係の自動解決を行う。公式のパッケージはArch Linuxのパッケージツリーから取得され、それらはx86-64用に最適化されている。パッケージは基本的にtar.xz形式で提供されているが、2020年1月4日、tar.zst形式に切り替える方針が示された。

4.2. リポジトリ
----------

2011年9月時点で、以下の公式リポジトリが用意されている。

core基本システムをセットアップするために必要なすべてのパッケージが収容される。extra基本システムでは必要とされないパッケージが収容される。デスクトップ環境とそのプログラムはこれに含まれる。communityコミュニティによりビルドされたパッケージが収容される。これには、十分な数の投票を受けて「トラステッドユーザ」 により採用されたものが含まれる。multilibx86-64ユーザのためのリポジトリで、32ビットアプリケーションを64ビット環境で容易に実行できるように提供されている。この他に、メインのリポジトリに収容される前のテスト段階のパッケージを提供するためのリポジトリがある。

testing「core」および「extra」リポジトリ用。community-testing「community」リポジトリ用。multilib-testing「multilib」リポジトリ用。加えて、破損したパッケージがtestingリポジトリに置かれることを回避するために、試験的なリビルドを行うための「staging」および「community-staging」リポジトリが用意されている。過去に存在したunstableリポジトリは2008年7月をもって停止され、ほとんどのパッケージは他のリポジトリへ移動した。これらの公式リポジトリに加え、利用者が提供する非公式リポジトリが存在する。この例としてAURがある。

4.3. リポジトリのセキュリティ
-----------------

過去のArch Linuxでは、電子署名付きパッケージがサポートされておらず、ダウンロード-インストールのプロセスにおいて、パッケージとメタデータの真正性が検証されていなかった。したがって、改ざんされた、もしくは悪意を持つリポジトリミラーによってシステムが危険に晒される可能性があった。pacmanバージョン4から、データベースとパッケージの検証が可能になった。2011年11月より公式リポジトリにおいて新規パッケージへの署名が強制され、2012年3月の時点ではすべてのパッケージが署名され、2012年6月よりパッケージ署名検証の運用が正式に開始された。

4.4. Arch Build System
----------------------

Arch Build Systemは、ソースコードのビルドおよびPacman用バイナリパッケージの作成を自動化するための「Portsライクな」システムである。ABSが提供するツールは、公式リポジトリのパッケージ作成に使われているだけでなく、一般のユーザも利用できる。

ABSでは、パッケージの構築に必要な情報をPKGBUILDという名前のBashスクリプトとして記述する。PKGBUILDスクリプトには、ソースコードのダウンロード元、パッケージのメタデータ、ビルド時に必要なパッケージの一覧や、インストール時の依存関係、ソースコードをビルドするスクリプト、ファイルシステムへの配置を決めるスクリプトなどが、定められた仕様に従って記述される。

PKGBUILDスクリプトはABSのmakepkgツールによって処理される。makepkgは、PKGBUILDスクリプトの内容をもとに、ソースコードのダウンロードおよびビルド、Pacman用バイナリパッケージの作成を自動で行うシェルスクリプトである。これによって作成されたパッケージは、公式のパッケージと同様に、Pacmanを使ってインストールおよび管理を行うことができる。

4.5. AUR
--------

Arch Build Systemによって、一般のユーザもソースコードからPacman用のバイナリパッケージを構築できる。この機能性をもとに、一般ユーザによって作られたPKGBUILDを収容するためのArch User Repositoryという補完的なリポジトリが提供されている。

AURでは、一般ユーザによって作成された、公式リポジトリには存在しないパッケージのPKGBUILDスクリプトが提供されている。PKGBUILDスクリプトには、依存パッケージのリストと、ソースをArch Linuxのアーキテクチャに適合させるための構成処理が記述されている。これによりユーザは、ソースコードのビルドを簡略化することができ、さらにソフトウェアをPacmanのパッケージとしてインストールすることができる。これらのPKGBUILDスクリプトはAURのウェブサイトからダウンロードしてABSのmakepkgコマンドで利用できるが、「yaourt」のようなヘルパプログラムを使うことで、パッケージの検索・ダウンロード・ビルドのプロセスをさらに自動化することもできる。

AURでは、以下の理由によりリポジトリに収容されないパッケージも提供されている。

ライセンスの問題再配布は認められていないが利用は自由なソフトウェアはAURに収容できる。AURには実際にそれらのソフトウェアを提供サイトから直接ダウンロードするPKGBUILDスクリプトが収容されている。例えばGoogle EarthやRealPlayerなどが該当する。公式パッケージに変更を加えたものAURには公式パッケージの様々なバリエーションも収容される。公式パッケージのベータバージョンなどもこれに該当する。いかなるソフトウェアであっても一般ユーザによってPKGBUILDが提供されうる。あらゆるPKGBUILDは、ライセンスの問題や方針などのために意図的にAURに置く場合を除いて、ユーザから十分な投票を受けることでenリポジトリに登録される可能性がある。

5. バージョン
--------

5.1. ローリングリリース
--------------

Arch Linuxは、Gentoo Linuxなどのように、ディストリビューションの明確なバージョン名やリリース日を持たない「ローリングリリース」システムを採用している。リポジトリ上のパッケージは個別に日々更新されており、定期的なアップデートを行っていれば、システムを常に最新の状態に保つことができる。Arch Linuxのインストール用イメージファイルは定期的にリリースされるが、これはパッケージ集合の最新スナップショットに過ぎず、各リリースごとにユーザの移動を奨めるものではない。パッケージおよび各種設定ファイルの更新を行えば、どのリリースをインストールしても違いが生じることはない。

ISOイメージリリース2009.02以降、最適なハードウェアサポートを行うために、インストール用イメージのリリースはカーネルのバージョンアップにあわせて行われることになった。これは、およそ3、4ヶ月ごとに新たなリリースが行われることを意味する。

6. 派生ディストリビューション
----------------

※Pacman系派生版一覧に掲載されるもの。



6.1. その他の派生版
------------

※原則、DistroWatchのほかパソコン雑誌、他言語版を含めWikipediaに記事が存在しないものは掲載しない。

Arch Linux ARM — ARMアーキテクチャで動作する。
Arch Hurd — Linuxカーネルの代わりにGNU Hurdを使用している。
Antergos — GUIインストーラーを用いて、Arch Linuxのインストールを手軽にしたもの。プロジェクト終了が2019年5月21日にアナウンスされた。
[1] — Fluxboxを採用した、オーディオ愛好家向けOS。
[2] — Arch Linuxを母体にウィンドウマネージャKDEを採用し、多くのマルチメディアソフトウェアを収録したLiveDVD。

7. 脚注
-----

8. 外部リンク
--------

[3]
[4] DistroWatch
[5]
[6]
//[7]//、多くのArch Linux開発チームへのインタビュー
[8]
[9]

9. 関連項目
-------

Linuxディストリビューション
Linuxディストリビューションの比較
Linux