「Arch User Repository」の版間の差分
18行目: | 18行目: | ||
[[ru:Arch User Repository]] |
[[ru:Arch User Repository]] |
||
[[sr:Arch User Repository]] |
[[sr:Arch User Repository]] |
||
− | [[tr: |
+ | [[tr:Arch Kullanıcı Deposu]] |
[[uk:Arch User Repository]] |
[[uk:Arch User Repository]] |
||
[[zh-CN:Arch User Repository]] |
[[zh-CN:Arch User Repository]] |
||
30行目: | 30行目: | ||
{{Related|公式リポジトリ}} |
{{Related|公式リポジトリ}} |
||
{{Related|Arch Build System}} |
{{Related|Arch Build System}} |
||
+ | {{Related|パッケージの作成}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
40行目: | 41行目: | ||
[https://aur.archlinux.org AUR Web Interface] で PKGBUILD を検索し、ダウンロードすることができます。PKGBUILD は [[makepkg|makepkg]] を使ってパッケージにすることができ、pacman でインストールできます。 |
[https://aur.archlinux.org AUR Web Interface] で PKGBUILD を検索し、ダウンロードすることができます。PKGBUILD は [[makepkg|makepkg]] を使ってパッケージにすることができ、pacman でインストールできます。 |
||
− | * {{Grp|base-devel}} |
+ | * {{Grp|base-devel}} パッケージグループがインストールされている必要があります ({{ic|pacman -S --needed base-devel}})。 |
* この記事の下に、AUR パッケージをインストールする簡単なチュートリアルがあります。 |
* この記事の下に、AUR パッケージをインストールする簡単なチュートリアルがあります。 |
||
* アップデート情報や問題を知るために [https://aur.archlinux.org AUR Web Interface] を訪れましょう。AUR で利用可能なパッケージの最新リストを見ることができます。 |
* アップデート情報や問題を知るために [https://aur.archlinux.org AUR Web Interface] を訪れましょう。AUR で利用可能なパッケージの最新リストを見ることができます。 |
||
153行目: | 154行目: | ||
{{Warning|パッケージを投稿する前に [[Arch パッケージングスタンダード]]の記事や、ページの下に並んでいる記事を読むようにしてください。}} |
{{Warning|パッケージを投稿する前に [[Arch パッケージングスタンダード]]の記事や、ページの下に並んでいる記事を読むようにしてください。}} |
||
+ | |||
+ | {{Note|以下のセクションでは aurweb 3.5.1 にパッケージをアップロードする方法を説明しています。初めてパッケージを投稿する場合、代わりに [[#AUR 4|AUR 4]] に直接パッケージをアップロードするようにしてください。}} |
||
AUR ウェブインタフェースにログイン後、ユーザーはパッケージのビルドファイルが入ったディレクトリを圧縮した tarball ({{ic|.tar.gz}}) を[https://aur.archlinux.org/pkgsubmit.php 投稿]できます。ディレクトリには [[PKGBUILD]]、[[#AUR メタデータ|.SRCINFO]]、{{ic|.install}} ファイル、パッチなどを含めることができます(バイナリは'''絶対に'''入れないで下さい)。もし [[Arch Build System]] がインストールされているのならディレクトリの中がどのようになるか {{ic|/var/abs}} で見ることができます。 |
AUR ウェブインタフェースにログイン後、ユーザーはパッケージのビルドファイルが入ったディレクトリを圧縮した tarball ({{ic|.tar.gz}}) を[https://aur.archlinux.org/pkgsubmit.php 投稿]できます。ディレクトリには [[PKGBUILD]]、[[#AUR メタデータ|.SRCINFO]]、{{ic|.install}} ファイル、パッチなどを含めることができます(バイナリは'''絶対に'''入れないで下さい)。もし [[Arch Build System]] がインストールされているのならディレクトリの中がどのようになるか {{ic|/var/abs}} で見ることができます。 |
||
168行目: | 171行目: | ||
libhoge/libhoge.install}} |
libhoge/libhoge.install}} |
||
− | {{Note| |
+ | {{Note|{{ic|.SRCINFO}} にはソースパッケージのメタデータが含まれています。詳しくは [[#AUR メタデータ]] を見て下さい。}} |
パッケージを投稿する際には、以下のルールを守りましょう: |
パッケージを投稿する際には、以下のルールを守りましょう: |
||
213行目: | 216行目: | ||
...}} |
...}} |
||
− | このリポジトリは、AUR とは違い、バイナリパッケージのリポジトリであり [[ |
+ | このリポジトリは、AUR とは違い、バイナリパッケージのリポジトリであり [[pacman]] によって直接インストールすることができますし、ビルドファイルに [[Arch Build System|ABS]] でアクセスすることもできます。開発者によって、ディストリビューションの重要な地位を占めていると考えられるパッケージは、[core] もしくは [extra] リポジトリに移されることもあります。 |
ユーザーは [community] ビルドファイルに {{ic|/etc/abs.conf}} を編集して [community] リポジトリ を {{ic|REPOS}} で有効にすることによってもアクセス可能です。 |
ユーザーは [community] ビルドファイルに {{ic|/etc/abs.conf}} を編集して [community] リポジトリ を {{ic|REPOS}} で有効にすることによってもアクセス可能です。 |
||
+ | |||
+ | === AUR 4 === |
||
+ | |||
+ | {{Note|このセクションに変更を加えるときはまず [[en2:Talk:Arch User Repository#Scope of the AUR4 section]] を見て下さい。}} |
||
+ | |||
+ | リリース 4.0.0 から、aurweb は AUR パッケージに対して Git リポジトリを使用します。このためパッケージの投稿方法は少々複雑になります。メンテナは Git と SSH に関する基礎知識を覚える必要があります。移行を楽にするためのスクリプトが色々と存在します。2015年の8月8日まで [https://aur.archlinux.org/ aur.archlinux.org] は aurweb 3.5.1 を使いますが、4.0.0 のリリース候補版が [https://aur4.archlinux.org/ aur4.archlinux.org] の下でセットアップされています。 |
||
+ | |||
+ | 現在の AUR メンテナには6月8日から7月8日までが猶予期間として与えられ、メンテしているパッケージを [https://aur4.archlinux.org/ aur4.archlinux.org] にアップロードすることができます。7月8日からは、AUR に存在するパッケージは誰でもメンテナンスを引き継ぐことができるようになります。8月8日には、[https://aur4.archlinux.org/ aur4.archlinux.org] が新しい公式の AUR としてグランドオープンし、aur サブドメインに移動します。 |
||
+ | |||
+ | ==== aur4.archlinux.org にパッケージを投稿する ==== |
||
+ | |||
+ | {{Warning|パッケージを投稿しようとする前に、まずは [[Arch パッケージングスタンダード]]と、その下で触れられている記事を読むようにしてください。}} |
||
+ | |||
+ | AUR への書き込み権限を得るには [[SSH 鍵]]が必要になります。公開鍵 {{ic|.ssh/foo.pub}} の中身を''アカウント''のユーザープロフィールにコピーしてください。何かが起こった時に SSH 鍵を選択的に無効化できるように、既存の SSH 鍵を使うのではなく、新しく鍵を作成することを推奨します。 |
||
+ | |||
+ | パッケージをアップロードするには、Git リポジトリを適当な名前で複製してください: |
||
+ | |||
+ | $ git clone <nowiki>ssh://</nowiki>aur@''aur4''.archlinux.org/''foobar''.git |
||
+ | |||
+ | 8月8日以降は、{{ic|aur4.archlinux.org}} を {{ic|aur.archlinux.org}} で置き換えて下さい。 |
||
+ | |||
+ | Git リポジトリのローカルコピーにソースファイルを追加することが可能です。リポジトリに変更を加えるときは、トップレベルディレクトリに {{ic|PKGBUILD}} と {{ic|.SRCINFO}} があることを確認してください。{{ic|.SRCINFO}} ファイルは {{ic|mksrcinfo}} ({{Pkg|pkgbuild-introspection}} に含まれています) を使って作成することができます。 |
||
+ | |||
+ | AUR にパッケージベースの新しいバージョンを投稿する場合、新しい {{ic|PKGBUILD}} と {{ic|.SRCINFO}}、そして時には ({{ic|.install}} ファイルなどの) ヘルパーファイルをコミットして {{ic|git push}} を実行してください。例えば、新しく作成したディレクトリに {{ic|PKGBUILD}} を追加したら、以下のコマンドを実行することで最初のコミットを作成・送信できます: |
||
+ | |||
+ | $ mksrcinfo |
||
+ | $ git add PKGBUILD .SRCINFO |
||
+ | $ git commit -m 'Initial import' |
||
+ | $ git push origin master |
||
+ | |||
+ | パッケージをアップデートするときは、{{ic|PKGBUILD}} を編集してから AUR の Git リポジトリの変更をトラックするために以下のコマンドを実行して下さい: |
||
+ | |||
+ | $ mksrcinfo |
||
+ | $ git commit -am 'Update to ''1.0.0''' |
||
+ | $ git push |
||
+ | |||
+ | 詳しい情報は [[Git]] を見て下さい。 |
||
+ | |||
+ | {{Tip|もしあなたが {{ic|.SRCINFO}} をコミットするのを忘れてしまって、後から {{ic|.SRCINFO}} を追加した場合、AUR はあなたのプッシュをリジェクトします。''すべての''コミットで {{ic|.SRCINFO}} は必須だからです。[https://git-scm.com/docs/git-rebase git rebase] を使うか、または [https://git-scm.com/docs/git-filter-branch git filter-branch] と {{ic|--tree-filter}} オプションを使うことでこの問題は解決できます。}} |
||
+ | |||
+ | ==== 移行スクリプト ==== |
||
+ | |||
+ | 移行を楽にするためのスクリプトがいくつか存在します: |
||
+ | |||
+ | * [https://github.com/amiad/aur2aur4 aur2aur4] - パッケージリストや AUR ユーザーによって AUR3 から AUR4 にパッケージをインポートします。 |
||
+ | * [https://github.com/voidus/aur2git aur2git] - 既存のパッケージをダウンロードして投稿する ruby gem。 |
||
+ | * [https://gist.github.com/bbidulock/82ab6f5347f021136054 bbidulock のスクリプト] は .backup ディレクトリから全てのパッケージを移行します。 |
||
+ | * [https://github.com/JonnyJD/PKGBUILDs/blob/master/_bin/aur4_import.sh aur4_import.sh] は git リポジトリから複数のパッケージにパッケージを分割します (全てのコミットで {{ic|.SRCINFO}} を追加・更新)。 |
||
+ | * [https://github.com/JonnyJD/PKGBUILDs/blob/master/_bin/aur4_make_submodule.sh aur4_make_submodule.sh] は AUR 4 サブモジュールによって巨大な git リポジトリのパッケージを置き換えます。 |
||
+ | * [https://github.com/ido/packages-archlinux/blob/master/bin/import-to-aur4.sh import-to-aur4] は既存の git リポジトリを複数の AUR 4 パッケージに分割します (一度に全てを実行、すべてのコミットに {{ic|.SRCINFO}} を追加)。 |
||
+ | |||
+ | 上記スクリプトは全て公式によるサポートがなく、ユーザーによって作成されたものであることに注意してください。 |
||
== Git リポジトリ == |
== Git リポジトリ == |
||
230行目: | 285行目: | ||
=== 動作の仕組み === |
=== 動作の仕組み === |
||
− | + | {{ic|.SRCINFO}} という名前のメタデータファイルをソース tarball に追加することで特定の PKGBUILD フィールドを上書きします。このファイルのフォーマットは [https://mailman.archlinux.org/pipermail/aur-dev/2013-March/002428.html AUR 2.1.0 のリリースアナウンス]で説明されています。{{ic|.SRCINFO}} ファイルは一行毎にパースされます。それぞれの行は {{ic|1=key[_arch] = value}} という形式をとります。イコール記号の前後には半角スペースが必要で、値をクォートで囲ってはいけません。 |
|
{{ic|key}} はフィールド名です。[[PKGBUILD]] の変数の名前に対応しています。フィールド名によっては任意でアーキテクチャの名前を語尾に付けることができます。フィールドは、以下の2つのフィールド名を先頭に、セクションに分けられています: |
{{ic|key}} はフィールド名です。[[PKGBUILD]] の変数の名前に対応しています。フィールド名によっては任意でアーキテクチャの名前を語尾に付けることができます。フィールドは、以下の2つのフィールド名を先頭に、セクションに分けられています: |
||
262行目: | 317行目: | ||
他の名前のフィールドは無視されます。空の行や、ハッシュ記号 (#) で始まる行コメントも無視されます。このフォーマットは [[pacman|pacman/libalpm]] のバイナリパッケージで使われている {{ic|.PKGINFO}} フォーマットとほぼ一致します。 |
他の名前のフィールドは無視されます。空の行や、ハッシュ記号 (#) で始まる行コメントも無視されます。このフォーマットは [[pacman|pacman/libalpm]] のバイナリパッケージで使われている {{ic|.PKGINFO}} フォーマットとほぼ一致します。 |
||
+ | |||
+ | {{Pkg|pkgbuild-introspection}} の {{ic|mksrcinfo}} によって {{ic|PKGBUILD}} から {{ic|.SRCINFO}} を作成することもできます。 |
||
+ | |||
+ | == AUR の翻訳 == |
||
+ | |||
+ | AUR ウェブインターフェイスの翻訳については AUR ソースツリーの [https://projects.archlinux.org/aurweb.git/tree/TRANSLATING TRANSLATING] を見て下さい。 |
||
== FAQ == |
== FAQ == |
2015年6月18日 (木) 15:40時点における版
関連記事
Arch User Repository (AUR) はコミュニティによって運営されている Arch ユーザーのためのリポジトリです。パッケージの詳細について書かれたファイル (PKGBUILD) が集められており、makepkg を使ってソースからパッケージを作り、それを pacman でインストールすることができます。コミュニティの手で新しいパッケージを共有することで、[community] リポジトリへの人気のあるパッケージの取り込みを促進することを目的に、AUR は作られました。このページでは AUR のアクセス・使用の方法を説明します。
AUR から始まった多くの新しいパッケージが公式リポジトリに取り込まれています。AUR では、ユーザーはパッケージビルド (PKGBUILD と関連ファイル) を投稿することができます。AUR コミュニティ には AUR に存在するパッケージに対して投票する機能があります。投票が十分に集まると — ライセンスに問題がなくきちんとパッケージ化されているならば — [community] リポジトリに取り込まれます (pacman や abs で直接獲得できるようになります)。
目次
- 1 はじめに
- 2 歴史
- 3 検索
- 4 パッケージのインストール
- 5 フィードバック
- 6 パッケージの共有
- 7 [community]
- 8 Git リポジトリ
- 9 AUR メタデータ
- 10 AUR の翻訳
- 11 FAQ
- 11.1 AUR とは何ですか?
- 11.2 どのような種類のパッケージが AUR に置かれていますか?
- 11.3 TU とはどのような人ですか?
- 11.4 Arch User Repository と [community] の違いは?
- 11.5 どれくらいの投票で PKGBUILD が [community] に移されますか?
- 11.6 どうやって PKGBUILD を作るのですか?
- 11.7 [community] にあるパッケージを "pacman -S hoge" したのですがインストールされません
- 11.8 AUR の Hoge が古くなっています、どうするべきでしょうか?
- 11.9 PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか?
- 11.10 AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか?
- 11.11 ビルドの速度を速めるにはどうすればいいですか?
- 11.12 どうすればサポートされていないパッケージにアクセスできますか?
- 11.13 ウェブインタフェースを使わずに AUR にアップロードするにはどうすればいいですか?
- 11.14 foo と foo-git パッケージは何が違うのですか?
- 12 参照
はじめに
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 -xvf hoge.tar.gz
で tarball を解凍します(なるべく AUR 用に作ったフォルダで行ってください)。- ファイルが入ったディレクトリの中で
makepkg
を実行します(makepkg -s
で依存関係を自動的に解決します)。自動でソースコードをダウンロード、コンパイルしてまとめます。 src/
内の README ファイルを探します。もしかしたら後で必要な操作が書かれているかもしれません。- 作られたパッケージを pacman でインストールします:
# pacman -U /path/to/pkg.tar.xz
AUR ヘルパーを使って 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 -xvf 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、.SRCINFO、.install
ファイル、パッチなどを含めることができます(バイナリは絶対に入れないで下さい)。もし Arch Build System がインストールされているのならディレクトリの中がどのようになるか /var/abs
で見ることができます。
tarball は次のコマンドで作って下さい:
$ makepkg --source
仮に libhoge という名のパッケージを投稿する場合、ファイルはこのようになるはずです:
$ tar tf libhoge-0.1-1.src.tar.gz
libhoge/ libhoge/.SRCINFO libhoge/PKGBUILD libhoge/libhoge.install
パッケージを投稿する際には、以下のルールを守りましょう:
- そのパッケージがパッケージデータベースにすでに存在してないかチェックしてください。存在しているのなら、そのパッケージを投稿してはいけません。もし既にあるパッケージが壊れていたり機能していないのならバグレポートで報告してください。
- そのパッケージが AUR にすでに存在してないかチェックしてください。メンテナンスされているパッケージがあるのならば、コメントからメンテナに修正を求めることができます。パッケージが既にメンテナンスされていないのなら、作ったパッケージに差し替えることができます。パッケージを重複させないでください。
- あなたがアップロードするファイルを注意して問題ないかチェックしてください。全ての投稿者は PKGBUILD を書くときに Arch パッケージングスタンダードを読まなくてはなりません。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 パッケージングスタンダード#パッケージを AUR に投稿するも読んで下さい。
パッケージのメンテナンス
- メンテしている PKGBUILD をアップデートしたいと思った時は、それを再投稿してください。
- 他のユーザーからのコメントやフィードバックをチェックして、ときには提案を汲み上げるようにしましょう。学習過程だと考えて下さい。
- パッケージを更新する度にバージョン番号を含むコメントを投稿するのはやめてください。コメント欄は上記の意味ある内容のために使って下さい。更新の確認には AUR ヘルパーの方が適しています。
- パッケージを投稿したらそのまま放置するのはやめてください。アップデートをチェックし、PKGBUILD を修正してパッケージをメンテナンスするのがメンテナの仕事です。
- 何らかの理由でパッケージのメンテナンスが続けられない場合は、AUR ウェブインタフェースでパッケージを
disown
するかメーリングリストでことづてしてください。
その他
- disown リクエストや消去リクエストは右側の"パッケージアクション"の下にある"リクエストを送る"リンクをクリックして作成することができます。リクエストが作成されると自動的に通知メールがパッケージの現在のメンテナと aur-requests メーリングリストに送信されます。その後 Trusted User がリクエストの承認・却下を行います。
- disown リクエストは通るのに2週間ほどかかることがあります。現在のメンテナにメールで連絡が行ってから、反応がないか待つためです。
- パッケージのマージも受け付けています、ユーザーはまず新しい名前でパッケージを再投稿して、古いバージョンのコメントや投票のマージをリクエストしてください。
- 消去リクエストには以下の情報が必要です:
- パッケージ名と AUR ページの URL
- 消去する理由、最低でも短いメモ書き
注意: パッケージのコメント欄をパッケージの削除の理由を書くのに使うことはできません。TU ができるだけ早く行動するために、そのような情報は aur-requests メーリングリストに書かれるべきです。 - 補足事項を加えて下さい、仮にあなたがメンテナならば、他のパッケージで提供されるようになった、パッケージ名を変えて元の管理者が認めた、など。
- マージリクエストの場合: マージ先のパッケージベースの名前。
消去リクエストは認められないことがあります、その場合、他のパッケージメンテナに移すためにパッケージを 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
で有効にすることによってもアクセス可能です。
AUR 4
リリース 4.0.0 から、aurweb は AUR パッケージに対して Git リポジトリを使用します。このためパッケージの投稿方法は少々複雑になります。メンテナは Git と SSH に関する基礎知識を覚える必要があります。移行を楽にするためのスクリプトが色々と存在します。2015年の8月8日まで aur.archlinux.org は aurweb 3.5.1 を使いますが、4.0.0 のリリース候補版が aur4.archlinux.org の下でセットアップされています。
現在の AUR メンテナには6月8日から7月8日までが猶予期間として与えられ、メンテしているパッケージを aur4.archlinux.org にアップロードすることができます。7月8日からは、AUR に存在するパッケージは誰でもメンテナンスを引き継ぐことができるようになります。8月8日には、aur4.archlinux.org が新しい公式の AUR としてグランドオープンし、aur サブドメインに移動します。
aur4.archlinux.org にパッケージを投稿する
AUR への書き込み権限を得るには SSH 鍵が必要になります。公開鍵 .ssh/foo.pub
の中身をアカウントのユーザープロフィールにコピーしてください。何かが起こった時に SSH 鍵を選択的に無効化できるように、既存の SSH 鍵を使うのではなく、新しく鍵を作成することを推奨します。
パッケージをアップロードするには、Git リポジトリを適当な名前で複製してください:
$ git clone ssh://aur@aur4.archlinux.org/foobar.git
8月8日以降は、aur4.archlinux.org
を aur.archlinux.org
で置き換えて下さい。
Git リポジトリのローカルコピーにソースファイルを追加することが可能です。リポジトリに変更を加えるときは、トップレベルディレクトリに PKGBUILD
と .SRCINFO
があることを確認してください。.SRCINFO
ファイルは mksrcinfo
(pkgbuild-introspection に含まれています) を使って作成することができます。
AUR にパッケージベースの新しいバージョンを投稿する場合、新しい PKGBUILD
と .SRCINFO
、そして時には (.install
ファイルなどの) ヘルパーファイルをコミットして git push
を実行してください。例えば、新しく作成したディレクトリに PKGBUILD
を追加したら、以下のコマンドを実行することで最初のコミットを作成・送信できます:
$ mksrcinfo $ git add PKGBUILD .SRCINFO $ git commit -m 'Initial import' $ git push origin master
パッケージをアップデートするときは、PKGBUILD
を編集してから AUR の Git リポジトリの変更をトラックするために以下のコマンドを実行して下さい:
$ mksrcinfo $ git commit -am 'Update to 1.0.0' $ git push
詳しい情報は Git を見て下さい。
移行スクリプト
移行を楽にするためのスクリプトがいくつか存在します:
- aur2aur4 - パッケージリストや AUR ユーザーによって AUR3 から AUR4 にパッケージをインポートします。
- aur2git - 既存のパッケージをダウンロードして投稿する ruby gem。
- bbidulock のスクリプト は .backup ディレクトリから全てのパッケージを移行します。
- aur4_import.sh は git リポジトリから複数のパッケージにパッケージを分割します (全てのコミットで
.SRCINFO
を追加・更新)。 - aur4_make_submodule.sh は AUR 4 サブモジュールによって巨大な git リポジトリのパッケージを置き換えます。
- import-to-aur4 は既存の git リポジトリを複数の AUR 4 パッケージに分割します (一度に全てを実行、すべてのコミットに
.SRCINFO
を追加)。
上記スクリプトは全て公式によるサポートがなく、ユーザーによって作成されたものであることに注意してください。
Git リポジトリ
AUR の Git リポジトリは git://pkgbuild.com/aur-mirror.git
にあります。1日にすくなくとも1回の頻度で更新されています。commit 履歴 が必要ない場合は、--depth=1
オプションを使うことで高速に複製することができます:
$ git clone --depth=1 git://pkgbuild.com/aur-mirror.git
詳しくは: Web interface, forum thread。
AUR メタデータ
AUR ウェブインターフェイスに情報を表示するために、AUR のバックエンドのコードでは PKGBUILD ファイルを分析して、パッケージの名前・バージョンなどの情報をサルベージしています。PKGBUILD
は Bash スクリプトなので、実行することなく Bash スクリプトを正確に分析するのは難題です、そのために makepkg は Bash スクリプトで出来ています: makepkg は source
ディレクティブでビルドするパッケージの PKGBUILD を読み込みます。AUR メタデータファイルはそのようなハックを取り除くために作られました。ウェブインターフェイスで間違った分析が行われないように AUR パッケージのメンテナによって使用されます。FS#25210, FS#15043, FS#16394 を参照してください。
動作の仕組み
.SRCINFO
という名前のメタデータファイルをソース tarball に追加することで特定の PKGBUILD フィールドを上書きします。このファイルのフォーマットは AUR 2.1.0 のリリースアナウンスで説明されています。.SRCINFO
ファイルは一行毎にパースされます。それぞれの行は key[_arch] = value
という形式をとります。イコール記号の前後には半角スペースが必要で、値をクォートで囲ってはいけません。
key
はフィールド名です。PKGBUILD の変数の名前に対応しています。フィールド名によっては任意でアーキテクチャの名前を語尾に付けることができます。フィールドは、以下の2つのフィールド名を先頭に、セクションに分けられています:
- pkgbase: AUR 3 から必要になったフィールドで、これがないと悪名高い “only lowercase letters are allowed” エラーが起こります (pkgbase が省略されている場合 Pacman が先の pkgname を使用します)。よく分からない場合は pkgname と同じにしてください。pkgbase セクションは一つしかありません。このセクションのフィールド値は、pkgname セクションで上書きされないかぎり継承されます。pkgname セクションに空のフィールド値がある場合、継承はキャンセルされます。
- pkgname: pkgname セクションは複数作ることができます。
以下のフィールド名は一つの値と関連付けられます:
- epoch
- pkgver: パッケージのバージョン、epoch フィールドを分けないで [epoch:]pkgver と記述することもできます
- pkgrel: Arch Linux 固有のパッケージリリース番号
- pkgdesc
- url
以下のフィールド名は複数行で繰り返し使って複数の値を追加することができます:
- license: 複数のライセンスが存在する場合、スペースで区切ります
- groups
以下のフィールド名も繰り返すことができ、任意で下線を使って、アーキテクチャを指定することができます:
- depends: 依存パッケージ、一行ごと
- makedepends
- checkdepends
- optdepends
- conflicts
- provides
- replaces
- source
他の名前のフィールドは無視されます。空の行や、ハッシュ記号 (#) で始まる行コメントも無視されます。このフォーマットは pacman/libalpm のバイナリパッケージで使われている .PKGINFO
フォーマットとほぼ一致します。
pkgbuild-introspection の mksrcinfo
によって PKGBUILD
から .SRCINFO
を作成することもできます。
AUR の翻訳
AUR ウェブインターフェイスの翻訳については AUR ソースツリーの TRANSLATING を見て下さい。
FAQ
AUR とは何ですか?
AUR (Arch User Repository) は、Arch Linux コミュニティがアップロードした、アプリケーションやライブラリの PKGBUILD をコミュニティ全体で共有するスペースです。ユーザー同士でお気に入りのパッケージに投票することができ、場合によっては、[community] リポジトリに移されてバイナリ形式で Arch Linux ユーザー間に共有されます。
どのような種類のパッケージが AUR に置かれていますか?
AUR にあるパッケージはたんに"ビルドスクリプト"、つまり pacman 用にバイナリをビルドするレシピにすぎません。ほとんどの場合、上述の有用性と範囲のガイドラインを条件として、コンテンツのライセンスの問題がない限り、すべてのものが置くことを許されています。他の場合、ダウンロードにリンクできない、つまり再配布が禁止されている時は、ソースとしてファイル名だけを使うことができます。よってパッケージをビルドするには、ユーザーによってビルドディレクトリにその制限されたソースを入れておく必要があります。どちらかわからない場合は、尋ねて下さい。
TU とはどのような人ですか?
TU (Trusted User) とは、AUR と [community] リポジトリを監督するように選ばれた人のことです。彼らは [community] に入っている人気の PKGBUILD を管理していて、みんなで AUR を運営し続けています。
Arch User Repository と [community] の違いは?
Arch User Repository にはユーザーが投稿した全ての PKGBUILD が保存されており、利用するには手動で makepkg を使ってビルドしなくてはなりません。PKGBUILD に一定数の投票が入ると、パッケージは [community] リポジトリに移され TU が管理するバイナリパッケージとなり、pacman によってインストールできるようになります。
どれくらいの投票で PKGBUILD が [community] に移されますか?
通常、少なくとも 10 の投票が [community] に移されるのに必要です。しかし、TU がパッケージをサポートしたいと望んだ時は、投票数にかかわらず [community] に入ることがしばしばあります。
どうやって PKGBUILD を作るのですか?
作り方はパッケージの作成にあります。同じものをダブらせてしまわないように PKGBUILD を作る前に AUR を調べるのを忘れないようにしましょう。
[community] にあるパッケージを "pacman -S hoge" したのですがインストールされません
おそらく /etc/pacman.conf
で [community] を有効にしていないのではないでしょうか。当該行をアンコメントしてください。
/etc/pacman.conf
の [community] が有効になっていたのなら、pacman -Syu
で pkgcache を同期してからパッケージを再度取得してみてください。
AUR の Hoge が古くなっています、どうするべきでしょうか?
第一歩として、パッケージの out-of-date フラグを立てることができます。パッケージが延長した時間になっても out-of-date のままの場合、最良の解決策はメンテナにメールをすることです。2週間たってもメンテナから何の反応も得られないときは、孤児リクエストを作成してください。3ヶ月以上 out-of-date のままでいっこうにアップデートされる気配のないパッケージがあるのならば、孤児リクエストに加えて下さい。
PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか?
あなたの PKGBUILD を批評してもらいたいのなら、aur-general メーリングリストに投稿して、TU や AUR メンバーからの反応をみてはいかがでしょう。IRC チャンネル, #archlinux on irc.freenode.net からも助けを得ることができます。namcap を使って PKGBUILD や作られるパッケージにエラーがないかチェックすることも可能です。
AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか?
おそらく些細なことを見逃していると思われます。
makepkg
でコンパイルする前にpacman -Syyu
をしてみてください。あなたのシステムが最新でないことが問題かもしれません。- "base" と "base-devel" グループがインストール済みか確認してください。
- ビルドプロセスをはじめる前に
makepkg
に "-s
" オプションを使って必要な依存パッケージがインストールされているかチェックしてみてください。
まずはじめに PKGBUILD やパッケージの AUR ページのコメントを読むようにしてください。問題がカスタムした CFLAGS, LDFLAGS, MAKEFLAGS が問題を起こしているのかもしれません。その PKGBUILD が全ての人にとって壊れているかもしれません。もし自分で解決できない問題なら、AUR ページのコメントに書き込むなどしてメンテナにそれを報告してください。
ビルドの速度を速めるにはどうすればいいですか?
gcc を使って頻繁にコードをコンパイルする場合 (git や SVN パッケージなど)、ccache ("compiler cache" の略) が役にたつかもしれません。
どうすればサポートされていないパッケージにアクセスできますか?
#パッケージのインストールを見て下さい。
ウェブインタフェースを使わずに AUR にアップロードするにはどうすればいいですか?
burp, aurploader (python3-aurAUR) や aurupAUR などのコマンドラインプログラムが使えます。
foo と foo-git パッケージは何が違うのですか?
多くの AUR パッケージには通常バージョン ("stable") と開発バージョン ("unstable") が存在します。開発版のパッケージには大抵 "-cvs", "-svn", "-git", "-hg", "-bzr", "-darcs" などが末尾に付きます。開発版のパッケージは通常の使用には適してしませんが、新しい機能やバグフィックスが含まれていることがあります。makepkg
を実行した時 -git
, -svn
, -hg
, -bzr
パッケージは最新のソースをダウンロードするので、パッケージのバージョンは必ずしも上流と合っていません。同じく、チェックサムの確認が出来ないので、git リポジトリのメンテナを信用することになります。
Arch Linux の安定化#開発中のパッケージを使わないも参照してください。