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