# Arch User Repository (日本語)

関連記事

- AUR ヘルパー
- AurJson
- AUR Trusted User ガイドライン
- PKGBUILD
- makepkg
- pacman
- AUR Metadata
- 公式リポジトリ
- Arch Build System

Arch User Repository (AUR) はコミュニティによって運営されている Arch ユーザーのためのリポジトリです。パッケージの詳細について書かれたファイル (PKGBUILD) が集められており、makepkg を使ってソースからパッケージを作り、それを pacman でインストールすることができます。コミュニティの手で新しいパッケージを共有することで、[community] リポジトリへの人気のあるパッケージの取り込みを促進することを目的に、AUR は作られました。このページでは AUR のアクセス・使用の方法を説明します。

AUR から始まった多くの新しいパッケージが公式リポジトリに取り込まれています。AUR では、ユーザーはパッケージビルド (PKGBUILD と関連ファイル) を投稿することができます。AUR コミュニティ には AUR に存在するパッケージに対して投票する機能があります。投票が十分に集まると — ライセンスに問題がなくきちんとパッケージ化されているならば — [community] リポジトリに取り込まれます (pacman や abs で直接獲得できるようになります)。

## はじめに

AUR Web Interface で PKGBUILD を検索し、ダウンロードすることができます。PKGBUILD は makepkg を使ってパッケージにすることができ、pacman でインストールできます。

- base-devel グループパッケージがインストールされている必要があります (`pacman -S --needed base-devel`)。
- この記事の下に、AUR パッケージをインストールする簡単なチュートリアルがあります。
- アップデート情報や問題を知るために AUR Web Interface を訪れましょう。AUR で利用可能なパッケージの最新リストを見ることができます。
- よくある質問の答えはほとんど #FAQ に載っています。
- `/etc/makepkg.conf` を修正することで、あなたのプロセッサに最適化して AUR からパッケージをビルドすることができます。特にマルチコア・プロセッサを使っている場合、MAKEFLAGS を調整することでコンパイル時間を大きく短縮することができるかもしれません。また、CFLAGS の設定で GCC に対してハードウェア個別の最適化を設定できます。詳しくは makepkg.conf を見て下さい。

## 歴史

以下の情報は歴史を語るためだけに存在しています。incoming と TUR は AUR により一新されて、すでに使われていません。

当初、`ftp://ftp.archlinux.org/incoming` というサーバーがあり、人々は PKGBUILD やビルドに必要なファイル、ビルド済みのパッケージをアップロードしていました。パッケージメンテナが採用するまでプログラムはここに置かれたままでした。

その後、Trusted User リポジトリが誕生しました。コミュニティから許可された人のリポジトリを、誰でも使えるようにするためのリポジトリです。これを基礎として、より柔軟に使いやすくするために拡張されたものが AUR です。今でも、AUR のメンテナは TU (Trusted User) と呼ばれます。

## 検索

AUR のウェブインタフェースはこちらです。スクリプト（など）によってアクセスするのに適しているインターフェースはこちらになります。

MySQL に似た構文をつかってパッケージの名前と説明を検索します。これによって柔軟に検索条件を指定することが可能になります（例えば `tool like grep` の代わりに `tool%like%grep` と検索してみてください）。`%` を含む文字列を検索するときは、`/%` とエスケープしてください。

## パッケージのインストール

AUR からパッケージをインストールする手順は比較的単純です。基本は:

1. PKGBUILD と systemd のユニットやパッチなど他の必要なファイル（ソースコードではない場合が多い）が含まれた tarball を取得します。
2. `tar -xvf hoge.tar.gz` で tarball を解凍します（なるべく AUR 用に作ったフォルダで行ってください）。
3. ファイルが入ったディレクトリの中で `makepkg` を実行します（`makepkg -s` で依存関係を自動的に解決します）。自動でソースコードをダウンロード、コンパイルしてまとめます。
4. `src/` 内の README ファイルを探します。もしかしたら後で必要な操作が書かれているかもしれません。
5. 作られたパッケージを pacman でインストールします:

      # pacman -U /path/to/pkg.tar.xz

AUR Helper を使って AUR へのアクセスをもっと簡単にできます。ものによって機能は多少異なりますが、AUR の PKGBUILD の検索・獲得・ビルド・インストールを楽にするものです。全ての AUR Helper のスクリプトは AUR にあります。

Note: AUR からパッケージをインストールする公式の仕組みはありませんし今後も作られることはありません。全てのユーザーはビルドプロセスに慣れる必要があります。

以下は "hoge" というパッケージをインストールするときの詳細な説明です。

### 必須要件

まず必要なツールがインストールされているか確かめましょう。base-devel パッケージグループは絶対に必要です。make などの（ソースコードからの）コンパイルに必要なツールが含まれています。

Warning: AUR のパッケージは base-devel グループがインストールされているのを前提としているので、ビルドするにはこのグループのインストールが不可欠なのに関わらず、AUR パッケージはこのグループを依存のリストに挙げません。ビルドが失敗したら不満を言う前にこのグループがインストールされているか確認しましょう。

    # pacman -S --needed base-devel

次に適当なビルドディレクトリを選択します。ビルドディレクトリは単純にパッケージが作られる（または"ビルド"される）ディレクトリで、どのディレクトリでもかまいません。例えばこのようなディレクトリが使われます:

    ~/builds

ABS (Arch Build System) を使う場合は:

    /var/abs/local

ABS に関する詳細情報は Arch Build System (日本語) を読んで下さい。ここでは `~/builds` をビルドディレクトリとして使います。

### ビルドファイルを獲得

AUR からパッケージを入手します。検索機能（AUR home page の上部の検索ボックス）をつかってください。検索して出てきたリストからアプリケーションの名前をクリックしパッケージ情報のページを出します。説明を読んでそのパッケージをインストールすべきか決めて下さい。パッケージが最近更新されているなら、コメントも読んでおきましょう。

必要なビルドファイルをダウンロードします。パッケージ情報のページから、右にある "Package actions" 下の "Download tarball" リンクをクリックしてダウンロードします。ダウンロードしたファイルはビルドディレクトリに移してください。ここでは、"hoge.tar.gz" という名前のファイルということにします (標準フォーマットは pkgname.tar.gz です)。

### パッケージのビルド

tarball を解凍します。ビルドディレクトリに `cd` してビルドファイルを解凍してください。

    $ cd ~/builds
    $ tar -xvf hoge.tar.gz

ビルドディレクトリの中に "hoge" という名前の新しいディレクトリが作られるはずです。

Warning: 全てのファイルを注意してチェックしてください。新しく作られたディレクトリに `cd` した後、`PKGBUILD` と全ての `.install` ファイルを見て、悪意のあるコマンドが含まれていないかチェックします。`PKGBUILD` は `makepkg` で実行される bash スクリプトです: 有効な Bash 構文 やコマンドでありさえすればどんなコマンドも含むことができます、つまり作者の悪意や過失によって `PKGBUILD` に危険なコマンドが含まれていることがあるのです。`makepkg` は fakeroot を使うので（よって root で実行してはいけません）、ある程度の防護策は取られていますがそれに頼るのは危険です。疑わしいことがあれば、パッケージをビルドするのは中断してフォーラムやメーリングリストでアドバイスを求めましょう。

    $ cd hoge
    $ nano PKGBUILD
    $ nano hoge.install

パッケージを作ります。ファイルが正しいか確認したあと、ビルドディレクトリにおいて通常ユーザーで makepkg を実行します:

    $ makepkg -s

`-s` スイッチは sudo を使って依存パッケージをインストールします。sudo を使うのが望ましくない場合は、手動で依存性を解決して上のコマンドから `-s` を外して実行してください。

### インストールする

pacman を使ってパッケージをインストールします。次のような名前を持った tarball が作られているはずです:

    <application name>-<application version number>-<package revision number>-<architecture>.pkg.tar.xz

作られたパッケージは、pacman の "upgrade" コマンドを使ってインストールできます:

    # pacman -U hoge-0.1-1-i686.pkg.tar.xz

こうやって手動でインストールされたパッケージは foreign package と呼ばれます — pacman に知らせていないリポジトリから作られたパッケージという意味です。全ての foreign package を表示するには:

    $ pacman -Qm

Note: 以上の例はパッケージをビルドする手順の簡単な概略です。makepkg と ABS のページにはもっと詳しい解説が載っています、初めて使うユーザーはぜひ読んで下さい。

## フィードバック

AUR Web Interface にはコメント機能がありユーザーは PKGBUILD の作成者に提案やフィードバックをすることができます。パッチや PKGBUILD はコメントに書かないようにしてください: 鮮度がすぐ落ちて、無駄にスペースを埋めることになるからです。代わりにメンテナにメールを送るか、pastebin を使って下さい。

全ての Arch ユーザーにできる一番簡単な活動は、AUR のオンラインインターフェースを使ってお気に入りのパッケージに vote することです。全てのパッケージは TU によって [community] に取り込まれる資格があり、vote の数が理由の１つになります。また、投票数はみんなが気にしていることでもあります。

## パッケージの共有

ユーザーは AUR の中で大事な役目をおっています、ユーザーコミュニティの参加・貢献なくしては AUR の真価は発揮されません。AUR パッケージのライフサイクルはユーザー次第であり様々な方法での貢献が求められます。

ユーザーは Arch User Repository を使って PKGBUILD をシェアすることができます。AUR にはバイナリパッケージはありませんが PKGBUILD をアップロードすることで他のユーザーもそれを使うことができるのです。これらの PKGBUILD は完全に非オフィシャルなものであり徹底して管理されてはいないので、自己責任において使うことになります。

### パッケージを投稿する

AUR ウェブインタフェースにログイン後、ユーザーはパッケージのビルドファイルが入ったディレクトリを圧縮した tarball (`.tar.gz`) を投稿できます。ディレクトリには PKGBUILD、.AURINFO、`.install` ファイル、パッチなどを含めることができます（バイナリは絶対に入れないで下さい）。もし Arch Build System がインストールされているのならディレクトリの中がどのようになるか `/var/abs` で見ることができます。

tarball は次のコマンドで作って下さい (pkgbuild-introspection パッケージに入っています):

    $ mkaurball

仮に libhoge という名のパッケージを投稿する場合、ファイルはこのようになるはずです:

    $ tar tf libhoge-0.1-1.src.tar.gz

    libhoge/
    libhoge/.AURINFO
    libhoge/PKGBUILD
    libhoge/libhoge.install

Note: ".AURINFO" ファイルにはソースパッケージのメタデータが含まれています。詳しくは AUR Metadata を見て下さい。

パッケージを投稿する際には、以下のルールを守りましょう:

- そのパッケージがパッケージデータベースにすでに存在してないかチェックしてください。存在しているのなら、そのパッケージを投稿してはいけません。もし既にあるパッケージが壊れていたり機能していないのならバグレポートで報告してください。
- そのパッケージが AUR にすでに存在してないかチェックしてください。メンテナンスされているパッケージがあるのならば、コメントからメンテナに修正を求めることができます。パッケージが既にメンテナンスされていないのなら、作ったパッケージに差し替えることができます。パッケージを重複させないでください。
- あなたがアップロードするファイルを注意して問題ないかチェックしてください。全ての投稿者は PKGBUILD を書くときに Arch Packaging Standards (日本語) を読まなくてはなりません。AUR の効率的な運営と一般的な目的のために重要なことです。悪い PKGBUILD で利用者を苦しませているようではあなたの評判や名誉はうまれないでしょう。
- バイナリを含んでいたり全く不十分のパッケージは警告なしで削除されることがあります。
- もしパッケージ（やビルド・投稿プロセス）に自信がないときは、PKGBUILD を AUR Mailing List や AUR Forum に投稿して見てもらってから AUR に加えてください。
- そのパッケージが役に立つか考えて下さい。他の誰かがそのパッケージを使おうと考えるでしょうか？あまりにも特殊化しすぎていませんか？そのパッケージが役に立つと一般的な人が思うようなものであれば、投稿するのにふさわしいでしょう。
- AUR と公式リポジトリは一般的に、ソフトウェアやソフトウェアに関連するコンテンツをインストールするパッケージのためにあります、それには以下のものが含まれます: 実行可能ファイル、設定ファイル、特定のソフトウェアもしくは Arch Linux ディストリビューション全体のオンライン・オフラインのドキュメント、ソフトウェアによって直接使用されるメディア。
- パッケージを投稿しようとする前に経験をつみましょう。いくつかパッケージをビルドして手順を学んでから投稿してください。
- '`package`' という名前のファイルを含んだ `package.tar.gz` を投稿するとエラーが表示されます: 'Could not change to directory `/home/aur/unsupported/package/package`'。これを修正するには、ファイルの '`package`' という名前を何か他の名前に変えてください、例えば、'`package.rc`'。`pkg` ディレクトリにインストールされたときに名前を '`package`' に戻すことができます。Arch Packaging Standards (日本語)#パッケージを AUR に投稿するも読んで下さい。

### パッケージのメンテナンス

- メンテしている PKGBUILD をアップデートしたいと思った時は、それを再投稿してください。
- 他のユーザーからのコメントやフィードバックをチェックして、ときには提案を汲み上げるようにしましょう。学習過程だと考えて下さい。
- パッケージを更新する度にバージョン番号を含むコメントを投稿するのはやめてください。コメント欄は上記の意味ある内容のために使って下さい。更新の確認には AUR ヘルパーの方が適しています。
- パッケージを投稿したらそのまま放置するのはやめてください。アップデートをチェックし、PKGBUILD を修正してパッケージをメンテナンスするのがメンテナの仕事です。
- 何らかの理由でパッケージのメンテナンスが続けられない場合は、AUR ウェブインタフェースでパッケージを `disown` するかメーリングリストでことづてしてください。

### その他

- disown リクエストや消去リクエストは aur-general メーリングリストに流れ TU や他のユーザーによって判断されます。
- パッケージ名と AUR ページヘの URL を書いて下さい、できれば脚注も付けて下さい [1]。
- disown リクエストは通るのに２週間ほどかかることがあります。現在のメンテナにメールで連絡が行ってから返信を待つためです。
- パッケージのマージも受け付けています、ユーザーはまず新しい名前でパッケージを再投稿して、古いバージョンのコメントや投票のマージをメーリングリストでリクエストしてください。
- 消去リクエストには以下の情報が必要です:
  - パッケージ名と AUR ページの URL
  - 消去する理由、最低でも短いメモ書き
    注意: パッケージのコメント欄をパッケージの削除の理由を書くのに使うことはできません。TU ができるだけ早く行動するために、そのような情報は aur-general メーリングリストに書かれるべきです。
  - 補足事項を加えて下さい、仮にあなたがメンテナならば、他のパッケージで提供されるようになった、パッケージ名を変えて元の管理者が認めた、など。

消去リクエストは認められないことがあります、その場合、他のパッケージメンテナに移すためにパッケージを disown するようアドバイスされるかもしれません。

## [community]

Trusted Users によって管理されている [community] リポジトリには AUR から取り込まれた多くの人気パッケージが含まれています。[community] リポジトリはデフォルトで `/etc/pacman.conf` で有効にされています。[community] を無効or削除されている時は、以下の２行をアンコメントor追加すれば有効にできます:

    /etc/pacman.conf

    ...
    [community]
    Include = /etc/pacman.d/mirrorlist
    ...

このリポジトリは、AUR とは違い、バイナリパッケージのリポジトリであり pacman によって直接インストールすることができますし、ビルドファイルに ABS でアクセスすることもできます。開発者によって、ディストリビューションの重要な地位を占めていると考えられるパッケージは、[core] もしくは [extra] リポジトリに移されることもあります。

ユーザーは [community] ビルドファイルに `/etc/abs.conf` を編集して [community] リポジトリ を `REPOS` で有効にすることによってもアクセス可能です。

## Git リポジトリ

Thomas Dziedzic によって管理されている AUR の Git リポジトリでパッケージ履歴を回覧することができます。 1日にすくなくとも1回の頻度で更新されています。リポジトリを clone するには（数百 MB）:

    $ git clone git://pkgbuild.com/aur-mirror.git

詳しくは: Web interface, forum thread。

## FAQ

#### Q: AUR とは何ですか？

A: AUR (Arch User Repository) は、Arch Linux コミュニティがアップロードした、アプリケーションやライブラリの PKGBUILD をコミュニティ全体で共有するスペースです。ユーザー同士でお気に入りのパッケージに投票することができ、場合によっては、[community] リポジトリに移されてバイナリ形式で Arch Linux ユーザー間に共有されます。

#### Q: どのような種類のパッケージが AUR に置かれていますか？

A: AUR にあるパッケージはたんに"ビルドスクリプト"、つまり pacman 用にバイナリをビルドするレシピにすぎません。ほとんどの場合、上述の有用性と範囲のガイドラインを条件として、コンテンツのライセンスの問題がない限り、すべてのものが置くことを許されています。他の場合、ダウンロードにリンクできない、つまり再配布が禁止されている時は、ソースとしてファイル名だけを使うことができます。よってパッケージをビルドするには、ユーザーによってビルドディレクトリにその制限されたソースを入れておく必要があります。どちらかわからない場合は、尋ねて下さい。

#### Q: TU とはどのような人ですか？

A: TU (Trusted User) とは、AUR と [community] リポジトリを監督するように選ばれた人のことです。彼らは [community] に入っている人気の PKGBUILD を管理していて、みんなで AUR を運営し続けています。

#### Q: Arch User Repository と [community] の違いは？

A: Arch User Repository にはユーザーが投稿した全ての PKGBUILD が保存されており、利用するには手動で makepkg を使ってビルドしなくてはなりません。PKGBUILD に一定数の投票が入ると、パッケージは [community] リポジトリに移され TU が管理するバイナリパッケージとなり、pacman によってインストールできるようになります。

#### Q: どれくらいの投票で PKGBUILD が [community] に移されますか？

A: 通常、少なくとも 10 の投票が [community] に移されるのに必要です。しかし、TU がパッケージをサポートしたいと望んだ時は、投票数にかかわらず [community] に入ることがしばしばあります。

#### Q: どうやって PKGBUILD を作るのですか？

A: 作り方は Creating Packages (日本語) にあります。同じものをダブらせてしまわないように PKGBUILD を作る前に AUR を調べるのを忘れないようにしましょう。

#### Q: [community] にあるパッケージを "pacman -S hoge" したのですがインストールされません。

A: おそらく `/etc/pacman.conf` で [community] を有効にしていないのではないでしょうか。当該行をアンコメントしてください。 `/etc/pacman.conf` の [community] が有効になっていたのなら、`pacman -Syu` で pkgcache を同期してからパッケージを再度取得してみてください。

#### Q: AUR の Hoge が古くなっています、どうするべきでしょうか？

A: 第一歩として、パッケージの out-of-date フラグを立てることができます。パッケージが延長した時間になっても out-of-date のままの場合、最良の解決策はメンテナにメールをすることです。２週間たってもメンテナから何の反応も得られないときは、aur-general メーリングリストにメールをして TU に PKGBUILD のメンテナをあなたに変えてもらうことができます。３ヶ月以上 out-of-date のままでいっこうにアップデートされる気配のないパッケージがあるのならば、あなたの orphan リクエストに加えて下さい。

#### Q: PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか？

A: あなたの PKGBUILD を批評してもらいたいのなら、aur-general メーリングリストに投稿して、TU や AUR メンバーからの反応をみてはいかがでしょう。IRC channel, #archlinux on irc.freenode.net からも助けを得ることができます。namcap を使って PKGBUILD や作られるパッケージにエラーがないかチェックすることも可能です。

#### Q: AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか？

A: おそらく些細なことを見逃していると思われます。

1. `makepkg` でコンパイルする前に `pacman -Syyu` をしてみてください。あなたのシステムが最新でないことが問題かもしれません。
2. "base" と "base-devel" グループがインストール済みか確認してください。
3. ビルドプロセスをはじめる前に `makepkg` に "`-s`" オプションを使って必要な依存パッケージがインストールされているかチェックしてみてください。

まずはじめに PKGBUILD やパッケージの AUR ページのコメントを読むようにしてください。問題がカスタムした CFLAGS, LDFLAGS, MAKEFLAGS が問題を起こしているのかもしれません。その PKGBUILD が全ての人にとって壊れているかもしれません。もし自分で解決できない問題なら、AUR ページのコメントに書き込むなどしてメンテナにそれを報告してください。

#### Q: ビルドの速度を速めるにはどうすればいいですか？

A: gcc を使って頻繁にコードをコンパイルする場合 (git や SVN パッケージなど)、ccache ("compiler cache" の略) が役にたつかもしれません。

#### Q: どうすればサポートされていないパッケージにアクセスできますか？

A: #パッケージのインストールを見て下さい。

#### Q: ウェブインタフェースを使わずに AUR にアップロードするにはどうすればいいですか？

A: burp, aurploader (python3-aur) や aurup などのコマンドラインプログラムが使えます。

## 参照

- AUR ウェブインターフェイス
- AUR メーリングリスト
- AUR Mirror Git リポジトリ

Categories:

- Arch User Repository (日本語)
- Package development (日本語)
- Package management (日本語)