Arch User Repository
関連記事
Arch User Repository (AUR) はコミュニティによって運営されている、Arch ユーザーのためのリポジトリです。パッケージのビルド方法が書かれたファイル (PKGBUILD) がまとめて置かれており、makepkg を使ってソースからパッケージを作り、生成したパッケージを pacman でインストールすることができます。人気のあるパッケージが extra リポジトリに取り込まれるように、コミュニティの手で新しいパッケージを共有することを目的に AUR は作られました。このページでは AUR の使用方法を説明します。
AUR に投稿された新しいパッケージの一部は公式リポジトリに取り込まれています。AUR では、ユーザーはパッケージビルド (PKGBUILD と関連ファイル) を投稿することができます。AUR コミュニティには AUR に存在するパッケージに対して投票する機能があります。投票が十分に集まると (ライセンスに問題がなくきちんとパッケージ化されているならば) extra リポジトリに取り込まれます (pacman や abs で直接入手できるようになります)。
目次
- 1 はじめに
- 2 歴史
- 3 パッケージをインストール・アップグレードする
- 4 アカウントステータス
- 5 フィードバック
- 6 パッケージのビルドプロセスをデバッグする
- 7 パッケージを投稿する
- 8 ウェブインターフェイスの翻訳
- 9 FAQ
- 9.1 どのような種類のパッケージが AUR に置かれていますか?
- 9.2 どうすれば AUR 内のパッケージに投票できますか?
- 9.3 Trusted User / TU とは何ですか?
- 9.4 Arch User Repository と extra リポジトリの違いは何ですか?
- 9.5 AUR の Hoge が古くなっています、どうするべきでしょうか?
- 9.6 AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか?
- 9.7 ERROR: One or more PGP signatures could not be verified! この場合、どうすればよいですか?
- 9.8 どうやって PKGBUILD を作るのですか?
- 9.9 PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか?
- 9.10 どうすれば PKGBUILD が extra リポジトリに移されるのですか?
- 9.11 繰り返されるビルドプロセスを速めるにはどうすればよいですか?
- 9.12 foo と foo-git パッケージは何が違うのですか?
- 9.13 Foo が AUR から消えたのはなぜですか?
- 9.14 インストール済みのパッケージが AUR から消えてしまっているかどうかを確かめるには?
- 9.15 全ての AUR パッケージのリストを入手するには?
- 10 参照
はじめに
AUR ウェブインターフェイス で PKGBUILD を検索したり、ダウンロードしたりすることができます。makepkg を使って PKGBUILD
からパッケージを生成することができ、pacman でインストールできます。
- base-devel がインストールされていることを確認してください。
- 一般的な質問に対する答えはほとんど #FAQ に載っています。
/etc/makepkg.conf
を調整することで、AUR からパッケージをビルドするときに、あなたの使用しているプロセッサに最適化することができます。マルチコアプロセッサを搭載しているシステム上では、MAKEFLAGS
変数を調整したり、圧縮に複数のコアを使ったり、別の圧縮アルゴリズムを使ったりすることで、パッケージのビルドタイムを劇的に短縮できる可能性があります。また、CFLAGS
変数を使うことでハードウェア固有のコンパイラ最適化を有効化することもできます。詳しくは makepkg#ヒントとテクニック を見てください。
また、SSH から AUR にアクセスすることもできます: 利用可能なコマンドをリストアップするには ssh aur@aur.archlinux.org help
を入力してください。
歴史
当初、ftp://ftp.archlinux.org/incoming
というサーバーがあり、人々は PKGBUILD やビルドに必要なファイル、ビルド済みのパッケージをそのサーバにアップロードしていました。パッケージやそれに関連するファイルは、パッケージメンテナがプログラムを見て取り入れるまで、そこに置かれていました。
その後、Trusted User リポジトリが誕生しました。コミュニティの特定の個人が、誰でも使えるリポジトリをホストすることを許可されていました。これを基礎として、より柔軟に使いやすくするために拡張されたものが AUR です。今でも、AUR のメンテナは TU (Trusted User) と呼ばれます。
2015年6月8日から2015年8月8日までの間に AUR はバージョン 3.5.1 から 4.0.0 に移行し、PKGBUILD を公開するために Git リポジトリが使われるようになりました。 既存のパッケージは、メンテナによって新しいインフラに手動で移行されない限り、ドロップされました。
AUR3 パッケージの Git リポジトリ
GitHub 上の AUR Archive には、移行時に AUR3 内にあったすべてのパッケージが保存されているリポジトリです。 あるいは、同じものを提供する aur3-mirror リポジトリもあります。
パッケージをインストール・アップグレードする
AUR からパッケージをインストールする手順は比較的単純です。基本的には:
- ビルドファイルを取得する。PKGBUILD や、systemd ユニットやパッチなどの (しばしば、実際のコードではない) 他の必要なファイルを含みます。
PKGBUILD
とそれに付属しているファイルが、悪意のある、または信頼できないものでないことを検証する。- それらのファイルが保存されているディレクトリ内で
makepkg
を実行する。これは、コードをダウンロードし、コンパイルし、パッケージングします。 pacman -U package_file
を実行し、パッケージをシステムにインストールする。
要件
まず、base-devel をインストールして、必須のツールをインストールしましょう。このメタパッケージには、ソースからコンパイルするために必要な make などのツールが依存パッケージとして含まれています。
次に、適切なビルドディレクトリを選択してください。ビルドディレクトリは、パッケージがソースから作成/ビルドされるディレクトリであり、任意のディレクトリを使うことができます。以下のセクションでは例として ~/builds
をビルドディレクトリとして使用します。
ビルドファイルを取得する
AUR 内の対象パッケージの場所を特定します。AUR ホームページの検索フィールドを使って行うことができます。検索リスト内のアプリケーションの名前をクリックして、そのパッケージの情報ページを開きます。説明欄を読んで、それがあなたの求めているパッケージであることを確認してください。パッケージの最終更新日時とコメントも確認してください。
パッケージのビルドファイルを取得する方法は複数存在します:
- そのパッケージの git リポジトリをクローンする。URL は、そのパッケージの AUR ページの「パッケージの詳細」の「Git クローン URL」にあります。これは推奨される方法です。利点としては、
git pull
を実行すれば、パッケージを簡単にアップデートできます。
$ git clone https://aur.archlinux.org/package_name.git
- スナップショットをダウンロードする。パッケージの AUR ページの右側にある「パッケージアクション」内の「スナップショットのダウンロード」リンクをクリックするか、ターミナルで以下を実行してください:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
- archlinux/aur GitHub 上の読み取り専用ミラーを使う。1つのブランチ内に1つのパッケージが存在しています。1つのブランチのみをクローンすることが推奨されます (リポジトリ全体は大きすぎるので、パフォーマンスが低下するでしょう)。これを行う方法として、以下の2つがあります:
$ git clone --depth=1 https://github.com/archlinux/aur.git; cd aur
$ git remote set-branches --add origin package_name
$ git fetch
$ git checkout package_name
必要であれば PGP 公開鍵を取得する
PKGBUILD の source 配列に .sig や .asc という形式の署名ファイルがあるか確認してください。それがある場合、PKGBUILD の validpgpkeys 配列内にリストアップされている公開鍵のうち1つを取得してください。詳細は makepkg#署名チェック を参照してください。
パッケージをビルドする
パッケージの PKGBUILD が含まれているディレクトリに移動してください:
$ cd package_name
提供されているファイルすべての内容を確認してください。例えば、less を使って PKGBUILD
を見るには:
$ less PKGBUILD
パッケージを作成します。手動でファイルの内容を確認したあとで、makepkg を通常ユーザとして実行してください。いくつか便利なフラグがあります:
-s
/--syncdeps
は、ビルド前に自動的に依存関係を解決し、pacman を使って依存パッケージをインストールします。パッケージが他の AUR パッケージに依存している場合、まずその AUR パッケージを手動でインストールする必要があります。-i
/--install
は、ビルドが成功した場合にパッケージをインストールします。このフラグを使えば、通常手動で行う次の手順をスキップすることができます。-r
/--rmdeps
は、ビルド後に、ビルド時の依存パッケージを削除します (なぜなら、それらはもはや必要ないからです)。しかし、これらの依存パッケージは、パッケージがアップデートされたときに再インストールする必要があるでしょう。-c
/--clean
は、ビルド後に一時ビルドファイルをクリーンアップします (なぜなら、それらはもはや必要ないからです)。通常、これらのファイルはビルドプロセスをデバッグするときにだけ必要になります。
パッケージをインストールする
これで、pacman を使ってパッケージをインストールできます:
# pacman -U package_name-version-architecture.pkg.tar.zst
パッケージをアップグレードする
パッケージの PKGBUILD を含むディレクトリ内で、まず最初に以下のコマンドを使ってファイルと変更を更新しなければなりません:
$ git pull
次に、前述のビルドとインストールの指示に従ってください。
パッケージをアップデートする
AUR はサポート外のものなので、あなたがインストールしたパッケージは、pacman ではなく あなたの責任で アップデートすることになっています。公式リポジトリ内のパッケージがアップデートされた場合、それらのライブラリに依存している AUR パッケージをすべてビルドし直す必要があります。
アカウントステータス
休止 (Suspension)
Trusted User としてユーザを編集するとき、休止 (Suspended) フィールドをセットできます。これは、対象のユーザを休止させます。ユーザが休止しているとき、以下のことはできなくなります:
- https://aur.archlinux.org へのログイン
- 通知の受け取り
- git インターフェイスとの対話
活動休止 (Inactivity)
あなた自身のアカウントを編集するときや、Trusted User としてユーザを編集するとき、活動休止 (Inactive) フィールドをセットできます。活動休止中のアカウントは2つの理由により使用されます:
- アカウントページに活動休止になった日付を表示する。
- 新しい提案のために、活動休止になっているかどうかで現在アクティブな Trusted User の数を生成する。
フィードバック
パッケージにコメントする
AUR ウェブインターフェイスにはコメント機能があり、PKGBUILD の貢献者にコメントで提案やフィードバックを提供することができます。
Python-Markdown は、コメントをフォーマットする基本的な Markdown 構文を提供します。
パッケージに投票する
すべての Arch ユーザにとって最も簡単なアクティビティの1つとして、AUR のオンラインインターフェイスによる AUR のブラウズや、お気に入りのパッケージへの投票があります。すべてのパッケージは、TU によってextra リポジトリに取り込まれる可能性があり、得票数はその過程で考慮されます。また、投票数はみんなが気にしていることでもあります。
パッケージのブラウジングで「このパッケージに投票する」オプションを利用できるようにするには、AUR のウェブサイトにサインアップしてください。サインアップ後、aurvoteAUR、aurvote-gitAUR、aur-auto-vote-gitAUR を使ってコマンドラインからも投票できるようになります。
あるいは、ssh 認証がセットアップ済みである場合、あなたの ssh 鍵を使ってコマンドラインから直接投票できます。これはつまり、AUR パスワードを保存・入力する手間が省けることを意味します。
$ ssh aur@aur.archlinux.org vote package_name
パッケージに out-of-date フラグを立てる
まず、そのパッケージに out-of-date フラグを立て、そのパッケージが out-of-date である理由の詳細や、出来ればリリースのアナウンスや新しいリリースの tarball へのリンクを含めてください。
また、メンテナに email で直接連絡を取ってみるべきです。2周間経ってもメンテナから応答がない場合、孤児リクエストを提出することができます。詳細は AUR 投稿ガイドライン#リクエスト を見てください。
パッケージのビルドプロセスをデバッグする
- 何かをビルドする前にアップグレードしてビルド環境が最新であることを確認してください。
- base-devel がインストールされていることを確認してください。
- ビルドプロセスを始める前に、
makepkg
で-s
オプションを使って、必要とされているすべての依存関係をチェック・インストールしてください。 - デフォルトの makepkg の設定を試してください。
- 一般的な問題については Makepkg#トラブルシューティング を見てください。
パッケージのビルドで問題が発生する場合、まず、そのパッケージの PKGBUILD とそのパッケージの AUR ページのコメントを読んでください。
PKGBUILD
が全員の環境で壊れている場合もあり得ます。ひとりで解決できない場合、問題をメンテナに報告してください (例えば、発生するエラーを AUR ページのコメント欄に投稿するなど)。また、AUR Issues, Discussion & PKGBUILD Requests フォーラムで助けを得ることもできるかもしれません。
結局、原因が些細なことではない場合もあります。カスタムの CFLAGS
、LDFLAGS
、MAKEFLAGS
フラグは失敗を引き起こす可能性があります。あなたのシステム構成によって引き起こされる問題を回避するには、パッケージをクリーンな chroot 内でビルドしてください。ビルドプロセスがクリーンな chroot 内でも失敗する場合、原因はおそらく PKGBUILD
にあるのでしょう。
namcap
の使用に関しては パッケージの作成#パッケージの正常性のテスト を見てください。PKGBUILD
をレビューしてもらいたいならば、aur-general メーリングリストに投稿して TU やフェロー AUR メンバーからフィードバックをもらうか、Creating & Modifying Packages フォーラムに投稿してください。また、Libera Chat ネットワーク上の IRC チャンネル #archlinux-aur で助けを乞うこともできます。
パッケージを投稿する
ユーザは、Arch User Repository を使って PKGBUILD を共有できます。詳細は AUR 投稿ガイドライン を見てください。
ウェブインターフェイスの翻訳
AUR ウェブインターフェイスの翻訳の作成とメンテナンスについては AUR ソースツリーの i18n.txt を見てください。
FAQ
どのような種類のパッケージが AUR に置かれていますか?
AUR にあるパッケージはたんに"ビルドスクリプト"、つまり pacman 用にバイナリをビルドするレシピにすぎません。ほとんどの場合、有用性と範囲のガイドラインを条件として、コンテンツのライセンスの問題がない限り、すべてのものが置くことを許されています。他の場合、ダウンロードにリンクできない、つまり再配布が禁止されている時は、ソースとしてファイル名だけを使うことができます。よってパッケージをビルドするには、ユーザーによってビルドディレクトリにその制限されたソースを入れておく必要があります。どちらかわからない場合は、尋ねて下さい。
どうすれば AUR 内のパッケージに投票できますか?
#パッケージに投票する を見てください。
Trusted User / TU とは何ですか?
Trusted User (略して TU) とは、AUR と extra リポジトリを監督するように選ばれた人のことです。彼らは extra に入っている人気の PKGBUILD を管理していて、みんなで AUR を運営し続けています。
Arch User Repository と extra リポジトリの違いは何ですか?
Arch User Repository にはユーザーが投稿した全ての PKGBUILD が保存されており、利用するには手動で makepkg を使ってビルドしなくてはなりません。PKGBUILD
にコミュニティの十分な関心が集まると、パッケージは extra リポジトリに移され TU が管理するバイナリパッケージとなり、pacman によってインストールできるようになります。
AUR の Hoge が古くなっています、どうするべきでしょうか?
#パッケージに out-of-date フラグを立てる を見てください。
その間、ローカルで PKGBUILD を自分で編集してパッケージをアップデートしてみることもできます。アップデートにビルドプロセスの変更が必要ない場合もあり、この場合、pkgver
か source
配列を更新するだけで十分です。
AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか?
何か些細なことを見逃しているのかもしれません。#パッケージのビルドプロセスをデバッグする を見てください。
ERROR: One or more PGP signatures could not be verified! この場合、どうすればよいですか?
最もあり得るのは、ダウンロードしたファイルを検証するために必要な公開鍵があなたの個人キーリング内に存在しないことです。詳細は Makepkg#署名チェック を見てください。
どうやって PKGBUILD を作るのですか?
AUR 投稿ガイドライン#投稿の規則 を見て、次に パッケージの作成 を見てください。
PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか?
パッケージをレビューのために提出できるチャネルが複数存在します。#パッケージのビルドプロセスをデバッグする を見てください。
どうすれば PKGBUILD が extra リポジトリに移されるのですか?
通常、パッケージを extra リポジトリ に移すには最低 10 票必要です。しかし、TU がパッケージをサポートしたいと望んだときは、extra リポジトリに入ることがしばしばあります。
必要な最低投票数に到達することは唯一の要件ではありません。そのパッケージをメンテナンスしてもよいという TU がいなければなりません。たとえパッケージに数千もの投票があったとしても、TU は extra リポジトリにそのパケージを移す必要はないのです。
通常、非常に人気なパッケージが AUR に残っている理由としては:
- Arch Linux のリポジトリ内にパッケージの他のバージョンがすでに存在するから
- ライセンスで再配布が禁止されているから
- そのパッケージが、ユーザによって投稿された PKGBUILD の取得を補助するものだから。AUR ヘルパー は、当然、サポートされていません。
extra リポジトリにパッケージを入れるときのルール も見てください。
繰り返されるビルドプロセスを速めるにはどうすればよいですか?
Makepkg#コンパイル時間を短縮する を見てください。
foo と foo-git パッケージは何が違うのですか?
多くの AUR パッケージには安定バージョン ("stable") と開発バージョン ("unstable") が存在します。開発版のパッケージには大抵、バージョン管理システムを示す接尾辞が付いており、通常の使用を意図していません。しかし、それらは新しい機能やバグフィックスを提供している場合があります。
makepkg
を実行した時、これらのパッケージは最新のソースをダウンロードするので、pkgver()
は必ずしも上流と合っていません。同じく、これらのパッケージは、如何なる VCS ソースのチェックサムの確認もできません。
システムメンテナンス#実績のあるソフトウェアパッケージを使用する も見てください。
Foo が AUR から消えたのはなぜですか?
パッケージが TU によって引き取られ、現在は extra リポジトリ に存在している可能性があります。
また、投稿の規則に違反していたため、削除されてしまった可能性もあります。削除の理由は、aur-requests アーカイブ を見てください。
そのパッケージが AUR3 に存在していた場合、AUR4 に移行されなかったのかもしれません。そのようなパッケージが保存されている場所である #AUR3 パッケージの Git リポジトリ を見てください。
インストール済みのパッケージが AUR から消えてしまっているかどうかを確かめるには?
最もシンプルな方法は、そのパッケージの AUR ページの HTTP ステータスをチェックすることです:
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)
全ての AUR パッケージのリストを入手するには?
- https://aur.archlinux.org/packages.gz
- python3-aurAUR の
aurpkglist
を使ってください