Arch User Repository (日本語)
| 概括 |
|---|
| Arch User Repository はユーザーが投稿した PKGBUILD の集合であり、公式リポジトリを補うものです。この記事ではサポートされていないソフトウェアパッケージを AUR から作成する方法について記述します。 |
| 概要 |
| Arch Linux のパッケージは makepkg と、それぞれのパッケージにあわせたカスタムビルドスクリプト (PKGBUILD) でビルドされています。パッケージングされたソフトウェアは pacman でインストールして管理することができます。公式レポジトリにあるソフトウェアの PKGBUILD は ABS ツリーから入手できます。そして、さらに多くの PKGBUILD が(非公式の) Arch User Repository にあります。 |
| 関連項目 |
| AUR Helpers (日本語) |
| AurJson |
| AUR Trusted User Guidelines |
| 資料 |
| AUR Web Interface |
| AUR Mailing List |
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 からパッケージをインストールする手順は比較的単純です。基本は:
- PKGBUILD と systemd のユニットやパッチなど他の必要なファイル(ソースコードではない場合が多い)が含まれた tarball を取得します。
-
tar -xzf hoge.tar.gzで tarball を解凍します(なるべく AUR 用に作ったフォルダで行ってください)。 - ファイルが入ったディレクトリの中で
makepkgを実行します(makepkg -sで依存関係を自動的に解決します)。自動でソースコードをダウンロード、コンパイルしてまとめます。 -
src/内の README ファイルを探します。もしかしたら後で必要な操作が書かれているかもしれません。 - 作られたパッケージを pacman でインストールします:
-
# pacman -U /path/to/pkg.tar.xz
AUR Helper を使って AUR へのアクセスをもっと簡単にできます。ものによって機能は多少異なりますが、AUR の PKGBUILD の検索・獲得・ビルド・インストールを楽にするものです。全ての AUR Helper のスクリプトは AUR にあります。
以下は "hoge" というパッケージをインストールするときの詳細な説明です。
必須要件
まず必要なツールがインストールされているか確かめましょう。base-devel パッケージグループは絶対に必要です。make などの(ソースコードからの)コンパイルに必要なツールが含まれています。
# 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 -xvzf hoge.tar.gz
ビルドディレクトリの中に "hoge" という名前の新しいディレクトリが作られるはずです。
$ 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
フィードバック
AUR Web Interface にはコメント機能がありユーザーは PKGBUILD の作成者に提案やフィードバックをすることができます。パッチや PKGBUILD はコメントに書かないようにしてください: 鮮度がすぐ落ちて、無駄にスペースを埋めることになるからです。代わりにメンテナにメールを送るか、pastebin を使って下さい。
全ての Arch ユーザーにできる一番簡単な活動は、AUR のオンラインインターフェースを使ってお気に入りのパッケージに vote することです。全てのパッケージは TU によって [community] に取り込まれる資格があり、vote の数が理由の1つになります。また、投票数はみんなが気にしていることでもあります。
パッケージの共有
ユーザーは AUR の中で大事な役目をおっています、ユーザーコミュニティの参加・貢献なくしては AUR の真価は発揮されません。AUR パッケージのライフサイクルはユーザー次第であり様々な方法での貢献が求められます。
ユーザーは Arch User Repository を使って PKGBUILD をシェアすることができます。AUR にはバイナリパッケージはありませんが PKGBUILD をアップロードすることで他のユーザーもそれを使うことができるのです。これらの PKGBUILD は完全に非オフィシャルなものであり徹底して管理されてはいないので、自己責任において使うことになります。
パッケージを投稿する
AUR ウェブインタフェースにログイン後、ユーザーはパッケージのビルドファイルが入ったディレクトリを圧縮した tarball (.tar.gz) を投稿できます。ディレクトリには PKGBUILD (日本語)、.install ファイル、パッチなどを含めることができます(バイナリは絶対に入れないで下さい)。もし Arch Build System がインストールされているのならディレクトリの中がどのようになるか /var/abs で見ることができます。
tarball は次のコマンドで作って下さい:
$ makepkg --source
仮に libhoge という名のパッケージを投稿する場合、ファイルはこのようになるはずです:
$ tar tf libhoge-0.1-1.src.tar.gz
libhoge/ libhoge/PKGBUILD libhoge/libhoge.install
パッケージを投稿する際には、以下のルールを守りましょう:
- そのパッケージがパッケージデータベースにすでに存在してないかチェックしてください。存在しているのなら、そのパッケージを投稿してはいけません。もし既にあるパッケージが壊れていたり機能していないのならバグレポートで報告してください。
- そのパッケージが AUR にすでに存在してないかチェックしてください。メンテナンスされているパッケージがあるのならば、コメントからメンテナに修正を求めることができます。パッケージが既にメンテナンスされていないのなら、作ったパッケージに差し替えることができます。パッケージを重複させないでください。
- あなたがアップロードするファイルを注意して問題ないかチェックしてください。全ての投稿者は PKGBUILD を書くときに Arch Packaging Standards (日本語) を読まなくてはなりません。AUR の効率的な運営と一般的な目的のために重要なことです。悪い PKGBUILD で利用者を苦しませているようではあなたの評判や名誉はうまれないでしょう。
- バイナリを含んでいたり全く不十分のパッケージは警告なしで削除されることがあります。
- もしパッケージ(やビルド・投稿プロセス)に自信がないときは、PKGBUILD を AUR Mailing List や AUR boards に投稿して見てもらってから AUR に加えてください。
- そのパッケージが役に立つか考えて下さい。他の誰かがそのパッケージを使おうと考えるでしょうか?あまりにも特殊化しすぎていませんか?そのパッケージが役に立つと一般的な人が思うようなものであれば、投稿するのにふさわしいでしょう。
- The AUR and official repositories are intended for packages which install generally software and software-related content, including one or more of the following: executable(s); config file(s); online or offline documentation for specific software or the Arch Linux distribution as a whole; media intended to be used directly by software.
- パッケージを投稿しようとする前に経験をつみましょう。いくつかパッケージをビルドして手順を学んでから投稿してください。
- '
package' という名前のファイルを含んだpackage.tar.gzを投稿するとエラーが表示されます: 'Could not change to directory/home/aur/unsupported/package/package'。これを修正するには、ファイルの 'package' という名前を何か他の名前に変えてください、例えば、'package.rc'。pkgディレクトリにインストールされたときに名前を 'package' に戻すことができます。Arch Packaging Standards (日本語)#パッケージを AUR に投稿するも読んで下さい。
パッケージのメンテナンス
- メンテしている PKGBUILD をアップデートしたいと思った時は、それを再投稿してください。
- 他のユーザーからのコメントやフィードバックをチェックして、ときには提案を汲み上げるようにしましょう。学習過程だと考えて下さい。
- パッケージを投稿したらそのまま放置するのはやめてください。アップデートをチェックし、PKGBUILD を修正してパッケージをメンテナンスするのがメンテナの仕事です。
- 何らかの理由でパッケージのメンテナンスが続けられない場合は、AUR ウェブインタフェースでパッケージを
disownするかメーリングリストでことづてしてください。
その他
- disown リクエストや消去リクエストは aur-general メーリングリストに流れ TU や他のユーザーによって決定されます。
- パッケージ名と AUR ページヘの URL を書いて下さい, preferably with a footnote [1].
- disown リクエストは通るのに2週間ほどかかることがあります。現在のメンテナにメールで連絡が行ってから返信を待つためです。
- パッケージのマージも受け付けています、ユーザーはまず新しい名前でパッケージを再投稿して、古いバージョンのコメントや投票のマージをメーリングリストでリクエストしてください。
- 消去リクエストには以下の情報が必要です:
- パッケージ名と AUR ページの URL
- 消去する理由、最低でも短いメモ書き
注意: パッケージのコメント欄をパッケージの削除の理由を書くのに使うことはできません。TU ができるだけ早く行動するために、そのような情報は aur-general メーリングリストに書かれるべきです。 - 補足事項を加えて下さい、仮にあなたがメンテナならば、他のパッケージで提供されるようになった、パッケージ名を変えて元の管理者が認めた、など。
消去リクエストは認められないことがあります、その場合、他のパッケージメンテナに移すためにパッケージを disown するようアドバイスされるかもしれません。
[community]
Trusted Users によって管理されている [community] リポジトリには AUR から取り込まれた多くの人気パッケージが含まれています。[community] リポジトリはデフォルトで /etc/pacman.conf で有効にされています。[community] を無効or削除されている時は、以下の2行をアンコメント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 とは何ですか?
Q: どのような種類のパッケージが AUR に置かれていますか?
Q: TU とはどのような人ですか?
Q: Arch User Repository と [community] の違いは?
Q: どれくらいの投票で PKGBUILD が [community] に移されますか?
Q: どうやって PKGBUILD を作るのですか?
Q: [community] にあるパッケージを "pacman -S hoge" したのですがインストールされません。
/etc/pacman.conf で [community] を有効にしていないのではないでしょうか。当該行をアンコメントしてください。
/etc/pacman.conf の [community] が有効になっていたのなら、pacman -Syu で pkgcache を同期してからパッケージを再度取得してみてください。Q: AUR の Hoge が古くなっています、どうするべきでしょうか?
Q: PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか?
Q: AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか?
-
makepkgでコンパイルする前にpacman -Syyuをしてみてください。あなたのシステムが最新でないことが問題かもしれません。 - "base" と "base-devel" グループがインストール済みか確認してください。
- ビルドプロセスをはじめる前に
makepkgに "-s" オプションを使って必要な依存パッケージがインストールされているかチェックしてみてください。