archlinuxのパッケージについて
about
この記事は archlinux のパッケージとリポジトリに関することを解説する記事です
archlinuxの公式リポジトリ
archlinuxの公式リポジトリはパッケージがbuild済みの状態で配布されています。
リポジトリは主に Core , Extra , Community の三種類です1。
基本的には Core には動作に必須なパッケージ、Extra にはそれ以外のパッケージが入っており、この2つが archlinux の開発チームが管理するパッケージのリポジトリになります。
もう一つのリポジトリの Community にはユーザが作成したパッケージの中で人気がある物などを公式で配布するためのリポジトリです。
PKGBUILD
PKGBUILDは archlinux で使われているパッケージビルド用のファイルで、依存関係の解決やパッケージに必要なファイルのビルドやディレクトリへのインストールを行います。
archlinux 公式のパッケージの作成だけでなく、後述の aur にも使用されています。
PKGBUILD は makepkg というスクリプトでビルドされて、最終的にpacman という archlinux の公式のパッケージネージャーで扱えるアーカイブ形式になります。
PKGBUILD は実態が ShellScript なので、例えばbuild時に必要なファイルを同梱せず curl で取ってくるような操作が可能です。これを利用すると再配布が禁止されているプロプライエタリなソフトウェアをパッケージにすることができます。2 3
aur
aur は archlinux のユーザーコミュニティで PKGBUILD を共有するためのリポジトリです。アカウントを作れば誰でも自由にアップロードすることができます。
利用したいソフトウェアがある場合、ユーザは aur からダウンロードした PKGBUILD を makepkg でビルドした後に pacman で簡単にインストールすることができます。ビルドからインストールまでは自動化されているのでユーザは最低限の操作で他のユーザから共有されたパッケージを使うことが可能です。便利ですね。
aur は簡単に作成できる4こともあり、膨大な数が作成されています。 archlinux の Community リポジトリはこの aur で配布されている中で人気のあるソフトウェアをビルド済みのパッケージにして配布しています5。この制度が archlinux が小規模なプロジェクトながら大量のパッケージを公式リポジトリで配布可能にしています6。
-
他にも各種
test用や32bit互換のためのライブラリ等の入ったリポジトリがありますがここでは触れません ↩︎ -
spotify とか google-chrome とか minecraft とか… ↩︎
-
ただし、この方法で作成したパッケージは
Communityリポジトリで配布できませんね。discordのクライアントはDiscord Inc.にメールして直接再配布の許可を得たみたいで公式リポジトリからインストールできますが…. ↩︎ -
PKGBUILD独自の要素もシンプルなためShellsScriptの知識さえあれば作れます。 ↩︎ -
ちなみに
aurからCommunityに移動させる権限を持つのはarchlinuxのメンテナではなく Trusted Users と呼ばれる別の役割の人達です。 ↩︎ -
archlinuxの常に最新の安定版のソフトウェアを利用するというポリシーのお陰で依存関係をシンプルにできるからという点もあります。 ↩︎