Arch User Repository

The Arch User Repository (AUR) はコミュニティによって運営される Arch ユーザーのためのリポジトリです。 パッケージの説明文 (PKGBUILD) が入っており、makepkg を使ってソースからパッケージをコンパイルし、pacman でインストールすることができます。 AUR はコミュニティからの新しいパッケージを整理・共有し、人気のあるパッケージのコミュニティリポジトリへの取り込みを促進するために作られました。 この文書では、ユーザがどのように AUR にアクセスし利用できるかを説明します。

公式リポジトリに入る新しいパッケージの多くは AUR で始まります。 AUR では、ユーザは自分自身のパッケージビルド(PKGBUILD と関連ファイル)を投稿することができます。 AUR コミュニティは AUR にあるパッケージに対して投票することができます。 パッケージが十分な人気を得れば – ライセンスに互換性がありパッケージング技術が優れていれば – コミュニティリポジトリに入るかもしれません(pacman や abs で直接アクセスできます)

Warning: AUR パッケージはユーザーが作成したコンテンツです。 これらの PKGBUILD は完全に非公式であり、徹底的な検証はされていません。 提供されたファイルの使用はあなた自身のリスクです。

はじめに

ユーザは AUR Web Interface から PKGBUILD を検索しダウンロードすることができます。 これらの PKGBUILDs は makepkg を使ってインストール可能なパッケージにビルドし、pacman を使ってインストールします。

  • base-devel パッケージグループが完全にインストールされていることを確認してください (pacman -S --needed base-devel)。
  • FAQ によくある質問の答えが載っています。 マルチコアプロセッサを持つシステムでは、MAKEFLAGS 変数を調整したり、圧縮に複数のコアを使ったり、異なる圧縮アルゴリズムを使うことで、パッケージのビルド時間を大幅に改善することが可能です。 また、ユーザーは CFLAGS 変数を使ってハードウェア固有のコンパイラ最適化を有効にすることができます。 より詳しい情報は makepkg#Tips and tricks を見て下さい。

SSH を通して AUR とやりとりすることもできます: 利用できるコマンドのリストは ssh [email protected] help と入力して下さい。

History

初期には ftp://ftp.archlinux.org/incoming があり、人々は PKGBUILD と必要な補助ファイル、ビルドしたパッケージ自身をサーバにアップロードして貢献しました。 パッケージと関連ファイルは Package Maintainer がそのプログラムを見て採用するまでそこに残りました。 コミュニティの特定の個人は、誰でも使えるように自分自身のリポジトリをホストすることを許可されました。 AUR はより柔軟でより使えるようにする目的で、この基盤の上に拡張されました。 実際、AUR のメンテナはまだ TU (Trusted Users) と呼ばれています。

2015-06-08から2015-08-08にかけて、AUR はバージョン 3.5.1 から 4.0.0 に移行し、PKGBUILDs の公開に Git リポジトリを使うようになりました。

Git repositories for AUR3 packages

The AUR Archive on GitHub には、移行時に AUR 3 にあった全てのパッケージのリポジトリがあります。 基本的には:

  1. PKGBUILD を含むビルドファイル、そしておそらく systemd ユニットやパッチのような他の必要なファイルを取得します (しばしば実際のコードではありません)。
  2. PKGBUILD と付随するファイルが悪意があったり信頼できないものではないかどうかを確認します。 これはコードをダウンロードし、pacman で依存関係を解決し、コンパイルし、パッケージ化し、パッケージをインストールします。
Note: AUR はサポートされていないので、インストールしたパッケージは pacman の責任ではなく、あなたの責任でアップデートしなければなりません。 公式リポジトリのパッケージがアップデートされた場合、それらのライブラリに依存している AUR パッケージをリビルドする必要があります。

前提条件

まず、ソースからのコンパイルに必要な make や他のツールを含む base-devel グループを完全にインストールすることで、必要なツールがインストールされているか確認します。 Note: AUR のパッケージは base-devel グループがインストールされていると仮定しています、つまり、ビルドの依存関係として明示的にグループのメンバーをリストアップしていません。 ビルドディレクトリとは、単にパッケージが作られる、または「ビルド」されるディレクトリで、任意のディレクトリにすることができます。 以下のセクションの例では ~/builds をビルドディレクトリとして使います。

Acquire build files

AUR でパッケージの位置を確認します。 これは AUR ホームページの上部にある検索フィールドを使って行います。 検索リストでアプリケーション名をクリックすると、パッケージの情報ページが表示されます。 説明文を読んで目的のパッケージであることを確認し、パッケージが最後に更新された日を記録し、コメントを読んでください。

パッケージのビルドファイルを取得するいくつかの方法があります:

  • AUR ページの “パッケージの詳細” にある “Git Clone URL” と書かれた git リポジトリを複製する。 この方法は推奨されています。この方法の利点は git pull を使って簡単にパッケージのアップデートを取得できることです。

$ git clone https://aur.archlinux.org/package_name.git
  • スナップショットをダウンロードするには、AUR ページの右側にある “Package Actions” の “Download snapshot” リンクをクリックするか、ターミナルから:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Note: スナップショットファイルは圧縮されていて、(できれば AUR 構築用に用意した)ディレクトリに展開しておく必要があります。 tar -xvf package_name.tar.gz

Acquire a PGP public key if needed

Check if the signature file in form of .sig or .asc is part of the PKGBUILD source array, if that is the case, then acquired one of the public keys listed in the PKGBUILD validpgpkeys array. 詳細は makepkg#Signature checking を参照してください。

パッケージをビルドしてインストールする

パッケージの PKGBUILD を含むディレクトリにディレクトリを変更する

$ cd package_name
Warning: PKGBUILD や .install ファイル、パッケージの git リポジトリにあるその他のファイルに悪意のある危険なコマンドがないか注意深くチェックしてください。 疑わしい場合は、そのパッケージをビルドせず、 フォーラムやメーリングリストで助言を求めてください。 悪意のあるコードは以前にもパッケージで発見されています。

提供されたすべてのファイルの中身を見る。 例えば、PKGBUILD を見るために pager less を使うには:

$ less PKGBUILD
Tip: もしあなたがパッケージを更新しているなら、最後のコミットからの変更を見たいかもしれません。

  • 最後の git commit からの変更を見るには、git show.
  • vimdiff で最後の commit からの変更を見るなら git difftool @~..@ vimdiff と入力してください。 vimdiff の利点は、各ファイルの内容全体を、何が変更されたかの指標とともに表示できることです。

パッケージを作成します。 手動でファイルの内容を確認した後、通常のユーザとして makepkg を実行します。

$ makepkg -si
  • -s/--syncdeps はビルドする前に pacman で依存関係を自動的に解決してインストールします。 もしパッケージが他の AUR パッケージに依存している場合は、最初に手動でインストールする必要があります。
  • -i/--install はビルドが成功したらパッケージをインストールします。 代わりに、ビルドされたパッケージは pacman -U package_name.pkg.tar.zst でインストールできます。

その他の便利なフラグは

  • -r/--rmdeps ビルド後の依存関係は、もう必要ないものとして削除されます。
  • -c/--clean は、ビルド後に一時的なビルドファイルを削除し、不要となったため、再インストールする。 これらのファイルは通常、ビルドプロセスのデバッグ時にのみ必要となります。
注意: 上記の例は、ビルドプロセスの簡単な要約に過ぎません。 詳細は makepkg と ABS の記事を読むことを強くお勧めします。

パッケージのアップグレード

パッケージの PKGBUILD を含むディレクトリで、まず

$ git pull

コマンドを使ってファイルや変更を更新してから

$ makepkg -si

を実行してパッケージを更新しなければなりません。

Feedback

Commenting on packages

AUR Web Interface にはコメント機能があり、ユーザーが PKGBUILD contributor に対して提案や改善のフィードバックを提供することができます

Tip: パッチや PKGBUILD をコメント欄に貼り付けるのは避けて下さい: すぐに古くなってしまい、無駄にスペースを取ってしまうだけです。

Python-Markdown はコメントをフォーマットするための基本的な Markdown 構文を提供します。

注意:

  • この実装は公式構文規則と時折違いがあります。
  • Long comments are collapsed and can be expanded on demand.

Voting for packages

全ての Arch ユーザーにとって最も簡単な活動のひとつは、AUR を閲覧しオンラインインターフェイスを使ってお気に入りのパッケージに投票することでしょう。 全てのパッケージはコミュニティリポジトリに含まれるために TU によって採用される資格があり、投票数はそのプロセスにおける考慮事項の一つです; 投票することは全ての人の利益になります!

AUR ウェブサイトにサインアップすると、パッケージをブラウジングする際に “Vote for this package” オプションが表示されるようになります。 サインアップした後、コマンドラインから aurvoteAUR, aurvote-gitAUR, aur-auto-vote-gitAUR で投票することもできます。

代わりに、ssh 認証を設定していれば、ssh 鍵を使ってコマンドラインから直接投票することが可能です。 これは AUR パスワードを保存したり入力する必要がないことを意味します。

$ ssh [email protected] vote package_name

Flagging packages out-of-date

最初に、なぜそのパッケージが古くなっているのか詳細を示す out-of-date フラグを立て、できればリリース告知や新しいリリース Tarball へのリンクも含めるべきです。 2 週間経ってもメンテナから応答がない場合は、 orphan リクエストを出すことができます。 詳しくは AUR submission guidelines#Requests を見て下さい。

Note: VCS パッケージは pkgver が変更されても out-of-date とはみなされず、この場合フラグを立てるべきではありません。

Debugging the package build process

  1. Ensure your build environment is up-date by upgrading before anything building.
  2. ベースデベルグループをインストールしているのか確認して下さい。
  3. makepkg とともに -s オプションを使い、ビルドプロセスを開始する前に必要なすべての依存関係をチェックしインストールする。
  4. Makepkg のデフォルト設定を試してみる。

もしパッケージのビルドに問題がある場合、まずその PKGBUILD と AUR ページのコメントを読んでください。 もし自分で解決できないなら、メンテナに報告してください(例えば、AUR ページのコメントにあなたが得たエラーを投稿することで)。 AUR Issues, Discussion & PKGBUILD Requests フォーラムで助けを求めることもできます。

結局のところ、理由は些細なことではないのかもしれません。 カスタム CFLAGS, LDFLAGS, MAKEFLAGS が失敗の原因になることがあります。 特定のシステム構成に起因する問題を回避するために、クリーンな chroot でパッケージをビルドしてください。 クリーンな chroot でビルドしても失敗する場合、問題はおそらく PKGBUILD.

パッケージの作成#namcap の使用に関するパッケージの健全性のチェック を参照してください。 もし PKGBUILD をレビューしてもらいたいなら、TU や AUR メンバーからのフィードバックを得るために aur-general メーリングリストに投稿するか、Creating & Modifying Packages フォーラムに投稿してください。 Freenode の IRC チャンネル #archlinux-aur で助けを求めることもできます。

Submitting packages

User can share PKGBUILDs using the Arch User Repository (日本語) を使ってユーザーは PKGBUILD を共有できます。 詳しくは AUR submission guidelines を見て下さい。

Web interface translation

AUR Web Interface の翻訳の作成・管理については AUR ソースツリーにある i18n.txt を見て下さい。

AUR 上のパッケージは単なる “ビルドスクリプト” です、つまり pacman のためにバイナリをビルドするレシピです。 ほとんどの場合、コンテンツのライセンス条項を遵守している限り、有用性と範囲のガイドラインにしたがって、すべてが許可されます。 その他の場合、ダウンロードしたもの、つまり再配布不可能なコンテンツに「リンクしてはいけない」と記載されている場合は、ファイル名そのものをソースとして使用することだけが許可されます。 これは、パッケージをビルドする前に、ユーザがビルドディレクトリに制限されたソースをすでに持っていることを意味し、要求します。

どのように AUR のパッケージに投票できますか?

See #パッケージに投票する.

Trusted User / TU とは何ですか?

A Trusted User, short TU, は AUR とコミュニティリポジトリを監督するために選ばれた人です。 彼らはコミュニティで人気のある PKGBUILD を管理し、全体として AUR を維持します。

Arch User Repository とコミュニティ・リポジトリの違いは何ですか?

Arch User Repository はユーザーが投稿した全ての PKGBUILD が保存される場所で、makepkg を使って手動でビルドする必要があります。 PKGBUILDs がコミュニティから十分な関心を集め、TU のサポートを受けると、それらはコミュニティリポジトリ (TU によって管理) に移され、バイナリパッケージは pacman でインストールできるようになります。

AUR にある Foo は古いです、どうすればいいですか?

See #Flagging packages out-of-date.

その間、ローカルで PKGBUILD を編集して自分自身でパッケージを更新してみることができます。 その場合は、単に pkgversource の配列を更新すれば十分です。

AUR の Foo が makepkg を実行してもコンパイルされません。

おそらく何か些細なことを見逃しているのでしょう。#Debugging the package build process.

ERROR をご覧ください。 1 つまたは複数の PGP 署名が検証できませんでした!

ダウンロードしたファイルを検証するために必要な公開鍵が個人用の鍵束にない可能性が高いです。 詳細は Makepkg#Signature checking を参照してください。

PKGBUILD はどのように作成するのですか?

AUR submission guidelines#Rules of submission を見て、creating packages を見て下さい。

投稿したい PKGBUILD があるのですが、誰かエラーがないかチェックしてもらえませんか?

あなたのパッケージをレビューのために投稿するのに利用できるチャンネルがいくつかあります; #Debugging the package build process を見て下さい。

PKGBUILD をコミュニティリポジトリに入れるにはどうしたらいいですか?

通常、何かが community に移動するためには少なくとも 10 票が必要です。 しかし、もし TU がパッケージをサポートしたいと思えば、それはしばしばリポジトリで見つかります。

必要な最低投票数に達することだけが条件ではなく、パッケージを保守することを望む TU が存在しなければなりません。 TU は何千もの投票があってもパッケージをコミュニティリポジトリに移動する必要はありません。

通常、非常に人気のあるパッケージが AUR に残るのは、以下の理由によるものです。 AUR ヘルパーは定義上サポートされていません。

See also Rules for Packages Entering the community Repo.

どうしたら繰り返しビルド処理を速くすることができますか?

Makepkg#Improving compile times.

foo パッケージと foo-git パッケージの違いは何ですか?

多くの AUR パッケージには “stable” リリース版と “unstable” 開発版があります。 開発版パッケージは通常、バージョン管理システムを示すサフィックスを持ち、通常の使用は意図されていませんが、新しい機能やバグフィックスを提供することがあります。 これらのパッケージは makepkg を実行したときに最新のソースをダウンロードするだけなので、AUR の pkgver() にはアップストリームの変更が反映されません。 同様に、これらのパッケージは VCS ソースに対して真正性のチェックサムを実行できません。

See also システムメンテナンス#Use proven software packages.

なぜ foo は AUR から消えたのですか?

パッケージが TU によって採用され、コミュニティリポジトリにある可能性があります。 削除の理由については aur-requests archives を参照してください。

注意: 削除されたパッケージの git リポジトリは通常利用可能なままです。 詳しくは AUR submission guidelines#Requests を見て下さい。

AUR3 に存在していたパッケージは AUR4 に移行されていないかもしれません。 AUR3 のパッケージが保存されている #Git リポジトリ を参照してください。

インストールしたパッケージが AUR から消えたかどうかを調べるにはどうすればいいですか?

一番簡単な方法は、パッケージの AUR ページの HTTP ステータスを確認することです:

$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)

どうしたら全ての AUR パッケージのリストを入手できますか?

  • python3-aurAUR

See also

  • AUR Web Interface
  • AUR Mailing List
  • DeveloperWiki:AUR Cleanup Day

を使ってください。

コメントを残す

メールアドレスが公開されることはありません。