about

この記事は archlinux のパッケージとリポジトリに関することを解説する記事です

archlinuxの公式リポジトリ

archlinuxの公式リポジトリはパッケージがbuild済みの状態で配布されています。
リポジトリは主に Core , Extra , Community の三種類です1

基本的には Core には動作に必須なパッケージ、Extra にはそれ以外のパッケージが入っており、この2つが archlinux の開発チームが管理するパッケージのリポジトリになります。
もう一つのリポジトリの Community にはユーザが作成したパッケージの中で人気がある物などを公式で配布するためのリポジトリです。

PKGBUILD

PKGBUILDarchlinux で使われているパッケージビルド用のファイルで、依存関係の解決やパッケージに必要なファイルのビルドやディレクトリへのインストールを行います。
archlinux 公式のパッケージの作成だけでなく、後述の aur にも使用されています。

PKGBUILDmakepkg というスクリプトでビルドされて、最終的にpacman という archlinux の公式のパッケージネージャーで扱えるアーカイブ形式になります。

PKGBUILD は実態が ShellScript なので、例えばbuild時に必要なファイルを同梱せず curl で取ってくるような操作が可能です。これを利用すると再配布が禁止されているプロプライエタリなソフトウェアをパッケージにすることができます。2 3

aur

aurarchlinux のユーザーコミュニティで PKGBUILD を共有するためのリポジトリです。アカウントを作れば誰でも自由にアップロードすることができます。
利用したいソフトウェアがある場合、ユーザは aur からダウンロードした PKGBUILDmakepkg でビルドした後に pacman で簡単にインストールすることができます。ビルドからインストールまでは自動化されているのでユーザは最低限の操作で他のユーザから共有されたパッケージを使うことが可能です。便利ですね。

aur は簡単に作成できる4こともあり、膨大な数が作成されています。 archlinuxCommunity リポジトリはこの aur で配布されている中で人気のあるソフトウェアをビルド済みのパッケージにして配布しています5。この制度が archlinux が小規模なプロジェクトながら大量のパッケージを公式リポジトリで配布可能にしています6


  1. 他にも各種 test 用や32bit互換のためのライブラリ等の入ったリポジトリがありますがここでは触れません ↩︎

  2. spotify とか google-chrome とか minecraft とか… ↩︎

  3. ただし、この方法で作成したパッケージは Community リポジトリで配布できませんね。 discord のクライアントは Discord Inc. にメールして直接再配布の許可を得たみたいで公式リポジトリからインストールできますが…. ↩︎

  4. PKGBUILD 独自の要素もシンプルなため ShellsScript の知識さえあれば作れます。 ↩︎

  5. ちなみに aur から Community に移動させる権限を持つのは archlinux のメンテナではなく Trusted Users と呼ばれる別の役割の人達です。 ↩︎

  6. archlinux の常に最新の安定版のソフトウェアを利用するというポリシーのお陰で依存関係をシンプルにできるからという点もあります。 ↩︎