「Arch User Repository」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(リンクを修正)
 
(7人の利用者による、間の41版が非表示)
2行目: 2行目:
 
[[Category:パッケージ開発]]
 
[[Category:パッケージ開発]]
 
[[Category:パッケージ管理]]
 
[[Category:パッケージ管理]]
[[ar:Arch User Repository]]
 
[[cs:Arch User Repository]]
 
[[da:Arch User Repository]]
 
 
[[de:Arch User Repository]]
 
[[de:Arch User Repository]]
[[el:Arch User Repository]]
 
 
[[en:Arch User Repository]]
 
[[en:Arch User Repository]]
 
[[es:Arch User Repository]]
 
[[es:Arch User Repository]]
  +
[[fr:Arch User Repository]]
[[fi:AUR]]
 
[[fr:AUR]]
 
[[it:Arch User Repository]]
 
[[nl:Arch User Repository]]
 
[[pl:Arch User Repository]]
 
 
[[pt:Arch User Repository]]
 
[[pt:Arch User Repository]]
[[ro:AUR]]
 
 
[[ru:Arch User Repository]]
 
[[ru:Arch User Repository]]
[[sr:Arch User Repository]]
+
[[uk:Arch User Repository]]
 
[[zh-hans:Arch User Repository]]
 
[[zh-hans:Arch User Repository]]
[[zh-hant:Arch User Repository]]
 
 
{{Related articles start}}
 
{{Related articles start}}
{{Related|AUR ヘルパー}}
 
{{Related|AurJson}}
 
{{Related|AUR Trusted User ガイドライン}}
 
{{Related|PKGBUILD}}
 
 
{{Related|makepkg}}
 
{{Related|makepkg}}
 
{{Related|pacman}}
 
{{Related|pacman}}
  +
{{Related|PKGBUILD}}
 
{{Related|.SRCINFO}}
 
{{Related|.SRCINFO}}
  +
{{Related|Aurweb RPC インターフェース}}
  +
{{Related|AUR 投稿ガイドライン}}
  +
{{Related|AUR Trusted User ガイドライン}}
 
{{Related|公式リポジトリ}}
 
{{Related|公式リポジトリ}}
 
{{Related|Arch Build System}}
 
{{Related|Arch Build System}}
 
{{Related|パッケージの作成}}
 
{{Related|パッケージの作成}}
  +
{{Related|AUR ヘルパー}}
  +
{{Related|AUR クリーンアップデー}}
 
{{Related articles end}}
 
{{Related articles end}}
   
Arch User Repository (AUR) はコミュニティによって運営されている Arch ユーザーのためのリポジトリです。パッケージのビルド方法が書かれたファイル ([[PKGBUILD]]) がまとめて置かれており、[[makepkg]] を使ってソースからパッケージを作り、生成したパッケージを [[pacman]] でインストールすることができます。人気のあるパッケージが [[公式リポジトリ#.5Bcommunity.5D|[community]]] リポジトリに取り込まれるように、コミュニティの手で新しいパッケージを共有することを目的に AUR は作られました。このページでは AUR の使用方法を説明します。
+
Arch User Repository (AUR) はコミュニティによって運営されているArch ユーザーのためのリポジトリです。パッケージのビルド方法が書かれたファイル ([[PKGBUILD]]) がまとめて置かれており、[[makepkg]] を使ってソースからパッケージを作り、生成したパッケージを [[pacman#その他のコマンド|pacman]] でインストールすることができます。人気のあるパッケージが [[extra|extra リポジトリ]]に取り込まれるように、コミュニティの手で新しいパッケージを共有することを目的に AUR は作られました。このページでは AUR の使用方法を説明します。
  +
  +
AUR に投稿された新しいパッケージの一部は公式リポジトリに取り込まれています。AUR では、ユーザーはパッケージビルド (PKGBUILD と関連ファイル) を投稿することができます。AUR コミュニティには AUR に存在するパッケージに対して投票する機能があります。投票が十分に集まると (ライセンスに問題がなくきちんとパッケージ化されているならば) ''extra'' リポジトリに取り込まれます ([[pacman]] や [[Arch Build System|abs]] で直接入手できるようになります)。
   
  +
{{Warning|AUR のパッケージはユーザによって提供されているものです。それらの {{ic|PKGBUILD}} は完全に非公式であり、綿密に検査されていません。AUR から提供されているファイルの使用は自己責任となります。}}
AUR に投稿された新しいパッケージの一部は公式リポジトリに取り込まれています。AUR では、ユーザーはパッケージビルド (PKGBUILD と関連ファイル) を投稿することができます。AUR コミュニティには AUR に存在するパッケージに対して投票する機能があります。投票が十分に集まると — ライセンスに問題がなくきちんとパッケージ化されているならば — [community] リポジトリに取り込まれます ([[pacman]] や [[Arch Build System|abs]] で直接入手できるようになります)。
 
   
 
== はじめに ==
 
== はじめに ==
   
[https://aur.archlinux.org AUR ウェブインターフェイス] で PKGBUILD を検索し、ダウンロードすることができます。[[makepkg]] を使って PKGBUILD からパッケージを生成することができ、pacman でインストールできます。
+
[https://aur.archlinux.org AUR ウェブインターフェイス] で [[PKGBUILD]] を検索したり、ダウンロードしたりすることができます。''makepkg'' を使って {{ic|PKGBUILD}} からパッケージを生成することができ、''pacman'' でインストールできます。
   
* {{Grp|base-devel}} パッケージグループをインストールしてください ({{ic|pacman -S --needed base-devel}})
+
* {{Pkg|base-devel}} が[[インストール]]されていることを確認してください。
  +
* 一般的な質問に対する答えはほとんど [[#FAQ]] に載っています。
* この記事の下の方に、AUR パッケージをインストールする簡単なチュートリアルがあります。
 
  +
* {{ic|/etc/makepkg.conf}} を調整することで、AUR からパッケージをビルドするときに、あなたの使用しているプロセッサに最適化することができます。マルチコアプロセッサを搭載しているシステム上では、{{ic|MAKEFLAGS}} 変数を調整したり、圧縮に複数のコアを使ったり、別の圧縮アルゴリズムを使ったりすることで、パッケージのビルドタイムを劇的に短縮できる可能性があります。また、{{ic|CFLAGS}} 変数を使うことでハードウェア固有のコンパイラ最適化を有効化することもできます。詳しくは [[makepkg#ヒントとテクニック]] を見てください。
* アップデート情報や問題を知るために [https://aur.archlinux.org AUR ウェブインターフェイス] を訪れましょう。AUR で利用可能なパッケージの最新リストを見ることができます。
 
* よくある質問の答えはほとんど [[#FAQ]] に載っています。
 
* {{ic|/etc/makepkg.conf}} を修正することで、AUR からパッケージをビルドするときに、あなたの使用しているプロセッサに最適化することができます。特にマルチコア・プロセッサを使っている場合、MAKEFLAGS を調整することでコンパイルにかかる時間を大きく短縮することができるかもしれません。また、CFLAGS の設定で GCC に対してハードウェア個別の最適化を設定できます。詳しくは [[makepkg|makepkg.conf]] を見てください。
 
   
SSH 経由で AUR を使うこともできます: 利用可能なコマンドは {{ic|ssh aur@aur.archlinux.org help}} で確認できます
+
また、SSH から AUR にアクセスすることもできます: 利用可能なコマンドをリストアップするには {{ic|ssh aur@aur.archlinux.org help}} を入力してください
   
  +
== パッケージをインストール・アップグレードする ==
== 歴史 ==
 
   
  +
AUR からパッケージをインストールする手順は比較的単純です。基本的には:
以下の情報は歴史を語るためだけに存在しています。incoming と TUR は AUR により一新されて、すでに使われていません。
 
   
  +
# ビルドファイルを取得する。[[PKGBUILD]] や、[[systemd]] ユニットやパッチなどの (しばしば、実際のコードではない) 他の必要なファイルを含みます。
当初、{{ic|<nowiki>ftp://ftp.archlinux.org/incoming</nowiki>}} というサーバーがあり、人々は PKGBUILD やビルドに必要なファイル、ビルド済みのパッケージをアップロードしていました。[[Arch 用語集#パッケージメンテナ|パッケージメンテナ]]が採用するまでプログラムはここに置かれたままでした。
 
  +
# {{ic|PKGBUILD}} とそれに付属しているファイルが、悪意のある、または信頼できないものでないことを検証する。
  +
# それらのファイルが保存されているディレクトリ内で {{ic|makepkg}} を実行する。これは、コードをダウンロードし、コンパイルし、パッケージングします。
  +
# {{ic|pacman -U ''package_file''}} を実行し、パッケージをシステムにインストールする。
   
  +
=== 要件 ===
その後、Trusted User リポジトリが誕生しました。コミュニティから許可された人のリポジトリを、誰でも使えるようにするためのリポジトリです。これを基礎として、より柔軟に使いやすくするために拡張されたものが AUR です。今でも、AUR のメンテナは TU (Trusted User) と呼ばれます。
 
   
  +
まず、{{Pkg|base-devel}} をインストールして、必須のツールをインストールしましょう。この[[メタパッケージ]]には、ソースからコンパイルするために必要な {{pkg|make}} などのツールが依存パッケージとして含まれています。
2015年6月8日から2015年8月8日までの間に AUR はバージョン 3.5.1 から 4.0.0 に移行し、PKGBUILD を公開するのに Git リポジトリが使われるようになりました。
 
   
  +
{{Note|AUR のパッケージは、{{Pkg|base-devel}} がビルド環境にインストールされていることを想定しています。}}
== 検索 ==
 
   
  +
次に、適切なビルドディレクトリを選択してください。ビルドディレクトリは、パッケージがソースから作成/ビルドされるディレクトリであり、任意のディレクトリを使うことができます。以下のセクションでは例として {{ic|~/builds}} をビルドディレクトリとして使用します。
AUR のウェブインタフェースは [https://aur.archlinux.org/ こちら] です。スクリプト(など)によってアクセスするのに適しているインターフェースは [https://aur.archlinux.org/rpc.php こちら] になります。
 
   
  +
=== ビルドファイルを取得する ===
MySQL に似た構文をつかってパッケージの名前と説明を検索することができ、柔軟に検索条件を指定することが可能となっています (例えば {{ic|tool like grep}} の代わりに {{ic|tool%like%grep}} と検索してみてください)。{{ic|%}} を含む文字列を検索するときは、{{ic|/%}} とエスケープしてください。
 
   
  +
AUR 内の対象パッケージの場所を特定します。[https://aur.archlinux.org/ AUR ホームページ]の検索フィールドを使って行うことができます。検索リスト内のアプリケーションの名前をクリックして、そのパッケージの情報ページを開きます。説明欄を読んで、それがあなたの求めているパッケージであることを確認してください。パッケージの最終更新日時とコメントも確認してください。
== パッケージのインストール ==
 
   
  +
パッケージのビルドファイルを取得する方法は複数存在します:
{{Note|AUR からパッケージをインストールする''公式の''仕組みはありませんし今後も作られることはありません。全てのユーザーはビルドプロセスに慣れる必要があります。}}
 
   
  +
* そのパッケージの [[git]] リポジトリをクローンする。URL は、そのパッケージの AUR ページの「パッケージの詳細」の「Git クローン URL」にあります。これは推奨される方法です。利点としては、{{ic|git pull}} を実行すれば、パッケージを簡単にアップデートできます。
AUR からパッケージをインストールする手順は比較的単純です。基本は:
 
  +
: {{bc|$ git clone <nowiki>https://aur.archlinux.org/</nowiki>''package_name''.git}}
  +
* スナップショットをダウンロードする。パッケージの AUR ページの右側にある「パッケージアクション」内の「スナップショットのダウンロード」リンクをクリックするか、ターミナルで以下を実行してください:
  +
: {{bc|$ curl -L -O <nowiki>https://aur.archlinux.org/cgit/aur.git/snapshot/</nowiki>''package_name''.tar.gz}}
  +
: {{Note|スナップショットのファイルは圧縮されています。なので、展開する必要があります (できれば、AUR ビルド用のディレクトリ内で): {{ic|tar -xvf ''package_name''.tar.gz}}}}
  +
* [https://github.com/archlinux/aur archlinux/aur GitHub] 上の読み取り専用ミラーを使う。1つのブランチ内に1つのパッケージが存在しています。1つのブランチのみをクローンすることが推奨されます (リポジトリ全体は大きすぎるので、パフォーマンスが低下するでしょう)。これを行う方法として、以下の2つがあります:
  +
** {{ic|1=git clone --single-branch}} を使う: {{bc|$ git clone --branch ''package_name'' --single-branch <nowiki>https://github.com/archlinux/aur.git</nowiki>}}
  +
** このリポジトリの[[Git|部分クローン]]を行い ({{ic|1=git clone --depth=1}})、選択的に[[Git#ブランチの作成|ブランチを追加する]]:
  +
:: {{bc|<nowiki>$ git clone --depth=1 https://github.com/archlinux/aur.git;</nowiki> cd aur<br>$ git remote set-branches --add origin ''package_name''<br>$ git fetch<br>$ git checkout ''package_name''}}
   
  +
=== 必要であれば PGP 公開鍵を取得する ===
# [[PKGBUILD]] と systemd のユニットやパッチなど他の必要なファイル (ソースコードではない場合が多い) が含まれた tarball を取得します。
 
# {{ic|tar -xvf ''pkgname''.tar.gz}} で tarball を解凍します (なるべく AUR 用に作ったフォルダで行ってください)。
 
# PKGBUILD ファイルが入ったディレクトリの中で {{ic|makepkg -si}} を実行します。自動でソースコードをダウンロード、[[pacman]] で依存関係を解決、コンパイルしてパッケージ化し、パッケージをインストールします。
 
   
  +
[[PKGBUILD]] の source 配列に ''.sig'' や ''.asc'' という形式の署名ファイルがあるか確認してください。それがある場合、PKGBUILD の [[PKGBUILD#validpgpkeys|validpgpkeys]] 配列内にリストアップされている公開鍵のうち1つを取得してください。詳細は [[makepkg#署名チェック]] を参照してください。
=== 必須要件 ===
 
   
  +
=== パッケージをビルドする ===
まず必要なツールがインストールされているか確かめましょう。{{grp|base-devel}} パッケージグループは絶対に必要です。{{pkg|make}} などの (ソースコードからの) コンパイルに必要なツールが含まれています。
 
   
  +
パッケージの [[PKGBUILD]] が含まれているディレクトリに移動してください:
{{Warning|AUR のパッケージは {{grp|base-devel}} グループがインストールされているのを前提としているので、ビルドするにはこのグループのインストールが不可欠な場合でも、AUR パッケージはこのグループを依存のリストに挙げません。ビルドが失敗したら、このグループがインストールされているか確認しましょう。}}
 
   
  +
$ cd ''package_name''
# pacman -S --needed base-devel
 
   
  +
{{Warning|{{ic|PKGBUILD}} ファイルや ''.install'' ファイル、パッケージの git リポジトリ内のすべてのファイルを注意深く見て、悪意のある/危険なコマンドがないかチェックしてください。疑わしい場合、パッケージをビルドせずに、フォーラムやメーリングリストで[[一般的なトラブルシューティング#他者のサポート|助言を得ましょう]]。以前、悪意のあるコードがパッケージ内で見つかったことがあります。[https://lists.archlinux.org/archives/list/aur-general@lists.archlinux.org/thread/FFCMZGL4UQODYKZGUY7KTN3UBF3XN66P/]}}
次に適当なビルドディレクトリを選択します。ビルドディレクトリは単純にパッケージが作られる (または"ビルド"される) ディレクトリというだけで、どのディレクトリでもかまいません。
 
   
  +
提供されているファイルすべての内容を確認してください。例えば、''less'' を使って {{ic|PKGBUILD}} を見るには:
=== ビルドファイルを獲得 ===
 
   
  +
$ less PKGBUILD
AUR からパッケージを入手します。検索機能 ([https://aur.archlinux.org/ AUR ホームページ] の上部の検索ボックス) をつかってください。検索して出てきたリストからアプリケーションの名前をクリックしパッケージ情報のページを出します。説明を読んでそのパッケージをインストールすべきか決めて下さい。パッケージが最近更新されているなら、コメントも読んでおきましょう。
 
   
  +
{{Tip|パッケージをアップデートしようとしているならば、最後のコミットとの変更点を見るべきかもしれません。
ビルドファイルをダウンロードする方法は複数存在します:
 
  +
* 最後の git コミットとの変更点を見るには、{{ic|git show}} を使うことができます。
  +
* ''vimdiff'' を使って最後のコミットとの変更点を見るには、{{ic|git difftool @~..@ vimdiff}} を実行してください。''vimdiff'' の利点は、何が変更されたかを示すインジケータと共に各ファイルの内容全体を見ることができることです。}}
   
  +
パッケージを作成します。手動でファイルの内容を確認したあとで、[[makepkg]] を通常ユーザとして実行してください。いくつか便利なフラグがあります:
* "Package Details" の "Git Clone URL" に書かれている [[git]] リポジトリを複製する:
 
   
  +
* {{ic|-s}}/{{ic|--syncdeps}} は、ビルド前に自動的に依存関係を解決し、[[pacman]] を使って依存パッケージをインストールします。パッケージが他の AUR パッケージに依存している場合、まずその AUR パッケージを手動でインストールする必要があります。
$ git clone <nowiki>https://aur.archlinux.org/</nowiki>''package_name''.git
 
  +
* {{ic|-i}}/{{ic|--install}} は、ビルドが成功した場合にパッケージをインストールします。このフラグを使えば、通常手動で行う次の手順をスキップすることができます。
  +
* {{ic|-r}}/{{ic|--rmdeps}} は、ビルド後に、ビルド時の依存パッケージを削除します (なぜなら、それらはもはや必要ないからです)。しかし、これらの依存パッケージは、パッケージがアップデートされたときに再インストールする必要があるでしょう。
  +
* {{ic|-c}}/{{ic|--clean}} は、ビルド後に一時ビルドファイルをクリーンアップします (なぜなら、それらはもはや必要ないからです)。通常、これらのファイルはビルドプロセスをデバッグするときにだけ必要になります。
   
  +
{{Tip|{{ic| git clean -dfx}} を使えば、git によって追跡されていないファイルをすべて削除できます。つまり、以前ビルドされたパッケージをすべて削除します。}}
:リポジトリを複製する場合、{{ic|git pull}} で簡単にパッケージを更新することができます。
 
* パッケージ情報のページから、右にある "パッケージアクション" 下の "スナップショットのダウンロード" リンクをクリックしてダウンロードする。圧縮ファイルがダウンロードされるので、ファイルをビルドディレクトリに移して展開してください:
 
   
  +
=== パッケージをインストールする ===
$ tar -xvf ''package_name''.tar.gz
 
* また、ターミナルから tarball をダウンロードすることもできます:
 
   
  +
これで、pacman を使ってパッケージをインストールできます:
$ curl -L -O <nowiki>https://aur.archlinux.org/cgit/aur.git/snapshot/</nowiki>''package_name''.tar.gz
 
   
  +
# pacman -U ''package_name''-''version''-''architecture''.pkg.tar.zst
=== パッケージのビルド ===
 
   
  +
{{Note|
まずは [[PKGBUILD]] が含まれているディレクトリに移動してください:
 
  +
* {{ic|makepkg.conf}} 内の {{ic|PKGEXT}} を変更している場合、パッケージファイルの名前も若干異なる場合があります。
  +
* 上記の例は、ビルドプロセスの概略です。詳細は [[makepkg]] と [[ABS]] の記事を見ることを'''強く'''推奨します。
  +
}}
   
  +
=== パッケージをアップグレードする ===
{{Warning|全てのファイルを注意してチェックしてください。新しく作られたディレクトリに {{ic|cd}} した後、{{ic|PKGBUILD}} と全ての {{ic|.install}} ファイルを見て、悪意のあるコマンドが含まれていないかチェックします。{{ic|PKGBUILD}} は {{ic|makepkg}} で実行される bash スクリプトです: 有効な Bash 構文 やコマンドでありさえすれば''どんな''コマンドも含むことができます、つまり作者の悪意や過失によって {{ic|PKGBUILD}} に危険なコマンドが含まれていることがあるのです。{{ic|makepkg}} は fakeroot を使うので (よって root で実行してはいけません)、ある程度の防護策は取られていますがそれに頼るのは危険です。疑わしいことがあれば、パッケージをビルドするのは中断してフォーラムやメーリングリストでアドバイスを求めましょう。}}
 
   
  +
パッケージの [[PKGBUILD]] を含むディレクトリ内で、まず最初に以下のコマンドを使ってファイルと変更を更新しなければなりません:
$ cd hoge
 
   
  +
$ git pull
移動したらファイルが正しいか確認してください。例:
 
   
  +
次に、前述のビルドとインストールの指示に従ってください。
$ nano PKGBUILD
 
$ nano hoge.install
 
   
  +
=== パッケージをアップデートする ===
確認できたら通常ユーザーで [[makepkg]] を実行します:
 
   
  +
AUR はサポート外のものなので、あなたがインストールしたパッケージは、pacman ではなく ''あなたの責任で'' アップデートすることになっています。公式リポジトリ内のパッケージがアップデートされた場合、それらのライブラリに依存している AUR パッケージをすべてビルドし直す必要があります。
$ makepkg -si
 
   
  +
== アカウントステータス ==
* {{ic|-s}}/{{ic|--syncdeps}} スイッチはビルドする前に [[pacman]] によって依存関係を自動的に解決・インストールします。
 
* {{ic|-i}}/{{ic|--install}} は作成したパッケージをインストールします。
 
   
  +
=== 休止 (Suspension) ===
他の便利なフラグ:
 
   
  +
Trusted User としてユーザを編集するとき、休止 (Suspended) フィールドをセットできます。これは、対象のユーザを休止させます。'''ユーザが休止しているとき、以下のことはできなくなります:'''
* {{ic|-r}}/{{ic|--rmdeps}} はビルド後に不要になった依存パッケージを削除します。ただし、パッケージを更新するときは再度依存パッケージをインストールする必要があります。
 
* {{ic|-c}}/{{ic|--clean}} はビルド時に一時的に作成されたビルドファイルを消去します。パッケージのビルドをデバッグしたい場合に有用なフラグです。
 
   
  +
* https://aur.archlinux.org へのログイン
{{Note|以上の例はパッケージをビルドする手順の簡単な概略です。[[makepkg]] と [[Arch Build System|ABS]] のページにはもっと詳しい解説が載っています、初めて使うユーザーはぜひ読んで下さい。}}
 
  +
* 通知の受け取り
  +
* git インターフェイスとの対話
   
  +
=== 活動休止 (Inactivity) ===
== フィードバック ==
 
   
  +
あなた自身のアカウントを編集するときや、Trusted User としてユーザを編集するとき、活動休止 (Inactive) フィールドをセットできます。活動休止中のアカウントは2つの理由により使用されます:
[https://aur.archlinux.org AUR ウェブインターフェイス] にはコメント機能がありユーザーは PKGBUILD の作成者に提案やフィードバックをすることができます。パッチや PKGBUILD はコメントに書かないようにしてください: 鮮度がすぐ落ちて、無駄にスペースを埋めることになるからです。代わりにメンテナにメールを送るか、[[アプリケーション一覧#Pastebin クライアント|pastebin]] を使って下さい。
 
   
  +
* アカウントページに活動休止になった日付を表示する。
全ての Arch ユーザーにできる一番簡単な活動は、AUR のオンラインインターフェースを使ってお気に入りのパッケージに ''vote'' することです。全てのパッケージは TU によって [community] に取り込まれる可能性があり、vote の数が理由のひとつになります。また、投票数はみんなが気にしていることでもあります。
 
  +
* 新しい提案のために、活動休止になっているかどうかで現在アクティブな Trusted User の数を生成する。
   
== パッケジの共有 ==
+
== フィドバック ==
   
  +
=== パッケージにコメントする ===
ユーザーは AUR の中で大事な役目をおっています、ユーザーコミュニティの参加・貢献なくしては AUR の真価は発揮されません。AUR パッケージのライフサイクルはユーザー次第であり、様々な方法での貢献が求められます。
 
   
  +
[https://aur.archlinux.org AUR ウェブインターフェイス]にはコメント機能があり、[[PKGBUILD]] の貢献者にコメントで提案やフィードバックを提供することができます。
ユーザーは Arch User Repository を使って PKGBUILD をシェアすることができます。AUR にはバイナリパッケージはありませんが PKGBUILD をアップロードすることで他のユーザーもパッケージを使うことができるのです。これらの PKGBUILD は完全に非公式なものであり、徹底して管理されてはいないので、自己責任において使うことになります。
 
   
  +
{{Tip|コメント欄にパッチや {{ic|PKGBUILD}} をペーストするのは避けてください。それらはすぐに古くなり、不必要にスペースを圧迫するだけになります。代わりに、それらのファイルをメンテナにメールするか、[[アプリケーション一覧#Pastebin サービス|pastebin]] を使ってください。}}
=== パッケージを投稿する ===
 
   
  +
[https://python-markdown.github.io/ Python-Markdown] は、コメントをフォーマットする基本的な [[Wikipedia:ja:Markdown|Markdown]] 構文を提供します。
{{Warning|パッケージを投稿する前に [[Arch パッケージングスタンダード]]の記事や、関連記事を読むようにしてください。ルールに違反するパッケージはとくに警告もされずに削除される場合があります。}}
 
   
  +
{{Note|
==== 認証 ====
 
  +
* この実装は、公式の[https://daringfireball.net/projects/markdown/syntax 構文規則]とは一部異なる場合があります。
  +
* パッケージの [[Git]] リポジトリへのコミットハッシュと、[[Flyspray]] チケットへの参照は、自動的にリンクに変換されます。
  +
* 長いコメントは短く表示され、必要に応じて全文を表示できます。
  +
}}
   
  +
=== パッケージに投票する ===
AUR への書き込み権限を得るには [[SSH 鍵]]が必要になります。公開鍵の中身を''アカウント''のユーザープロフィールにコピーしてください。対応する秘密鍵のホストを {{ic|aur.archlinux.org}} に設定します。例:
 
   
  +
'''すべての''' Arch ユーザにとって最も簡単なアクティビティの1つとして、AUR のオンラインインターフェイスによる AUR のブラウズや、お気に入りのパッケージへの'''投票'''があります。すべてのパッケージは、TU によって[[公式リポジトリ#extra|extra リポジトリ]]に取り込まれる可能性があり、得票数はその過程で考慮されます。また、投票数はみんなが気にしていることでもあります。
{{hc|~/.ssh/config|
 
Host aur.archlinux.org
 
IdentityFile ~/.ssh/aur
 
User aur}}
 
   
  +
パッケージのブラウジングで「このパッケージに投票する」オプションを利用できるようにするには、[https://aur.archlinux.org/ AUR のウェブサイト]にサインアップしてください。サインアップ後、{{AUR|aurvote}}、{{AUR|aurvote-git}}、{{AUR|aur-auto-vote-git}} を使ってコマンドラインからも投票できるようになります。
何かが起こった時に SSH 鍵を選択的に無効化できるように、既存の SSH 鍵を使うのではなく、[[SSH 鍵|新しく鍵を作成]]することを推奨します:
 
   
  +
あるいは、[[AUR 投稿ガイドライン#認証|ssh 認証]]がセットアップ済みである場合、あなたの ssh 鍵を使ってコマンドラインから直接投票できます。これはつまり、AUR パスワードを保存・入力する手間が省けることを意味します。
$ ssh-keygen -f ~/.ssh/aur
 
   
  +
$ ssh aur@aur.archlinux.org vote ''package_name''
{{Tip|入力フィールドで改行することで複数の公開鍵をプロフィールに追加することができます。}}
 
   
==== 新しいパッケージの作成 ====
+
=== パッケージに out-of-date フラグを立てる ===
   
  +
まず、そのパッケージに ''out-of-date'' フラグを立て、そのパッケージが out-of-date である理由の詳細や、出来ればリリースのアナウンスや新しいリリースの [[アーカイブと圧縮#アーカイブのみ|tarball]] へのリンクを含めてください。
まずローカルに空の Git リポジトリを作成する必要があります。リモートから適切な名前で複製してください:
 
   
  +
また、メンテナに email で直接連絡を取ってみるべきです。''2周間''経ってもメンテナから応答がない場合、''孤児''リクエストを提出することができます。詳細は [[AUR 投稿ガイドライン#リクエスト]] を見てください。
$ git clone <nowiki>ssh://</nowiki>aur@aur.archlinux.org/''foobar''.git
 
   
  +
{{Note|[[VCS パッケージガイドライン|VCS パッケージ]]は、{{ic|pkgver}} が変更されても、out-of-date とは見なされません。VCS パッケージにはフラグを建てないでください。立てても、メンテナは単にフラグを解除し、あなたを無視するでしょう。AUR メンテナは単なる {{ic|pkgver}} のバージョンアップをコミットするべきではありません。}}
AUR に同じ名前のパッケージが存在しない場合、以下のように警告が表示されます:
 
   
  +
== パッケージのビルドプロセスをデバッグする ==
Cloning into &apos;''foobar''&apos;...
 
warning: You appear to have cloned an empty repository.
 
Checking connectivity... done.
 
   
  +
# 何かをビルドする前に[[Pacman#パッケージのアップグレード|アップグレード]]してビルド環境が最新であることを確認してください。
{{Note|AUR でパッケージを削除しても git リポジトリは削除されません。そのため誰かが削除されたパッケージと同じ名前でパッケージを作成したときに中身が中になっていない場合があります。}}
 
  +
# {{Pkg|base-devel}} がインストールされていることを確認してください。
  +
# ビルドプロセスを始める前に、{{ic|makepkg}} で {{ic|-s}} オプションを使って、必要とされているすべての依存関係をチェック・インストールしてください。
  +
# デフォルトの [https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/blob/main/makepkg.conf makepkg の設定]を試してください。
  +
# 一般的な問題については [[Makepkg#トラブルシューティング]] を見てください。
   
  +
パッケージのビルドで問題が発生する場合、まず、そのパッケージの [[PKGBUILD]] とそのパッケージの AUR ページのコメントを読んでください。
既に git リポジトリを作成済みの場合、AUR の git リポジトリにリモートリポジトリを作成して fetch することができます:
 
   
  +
{{ic|PKGBUILD}} が全員の環境で壊れている場合もあり得ます。ひとりで解決できない場合、問題をメンテナに報告してください (例えば、[[#パッケージにコメントする|発生するエラーを AUR ページのコメント欄に投稿する]]など)。また、[https://bbs.archlinux.org/viewforum.php?id=38 AUR Issues, Discussion & PKGBUILD Requests フォーラム]で助けを得ることもできるかもしれません。
$ git remote add ''remote_name'' <nowiki>ssh://</nowiki>aur@aur.archlinux.org/''package_name''.git
 
$ git fetch ''remote_name''
 
   
  +
結局、原因が些細なことではない場合もあります。カスタムの {{ic|CFLAGS}}、{{ic|LDFLAGS}}、{{ic|MAKEFLAGS}} フラグは失敗を引き起こす可能性があります。あなたのシステム構成によって引き起こされる問題を回避するには、パッケージを[[:en:DeveloperWiki:Building in a clean chroot|クリーンな chroot]] 内でビルドしてください。ビルドプロセスがクリーンな chroot 内でも失敗する場合、原因はおそらく {{ic|PKGBUILD}} にあるのでしょう。
{{ic|''remote_name''}} は作成するリモートリポジトリの名前 (例: "origin") に置き換えてください。詳しくは [[Git#リモートの使用]]を参照。
 
   
  +
{{ic|namcap}} の使用に関しては [[パッケージの作成#パッケージの正常性のテスト]] を見てください。{{ic|PKGBUILD}} をレビューしてもらいたいならば、[https://lists.archlinux.org/mailman3/lists/aur-general.lists.archlinux.org/ aur-general メーリングリスト]に投稿して TU やフェロー AUR メンバーからフィードバックをもらうか、[https://bbs.archlinux.org/viewforum.php?id=4 Creating & Modifying Packages フォーラム]に投稿してください。また、[https://libera.chat Libera Chat] ネットワーク上の [[IRC チャンネル]] [ircs://irc.libera.chat/archlinux-aur #archlinux-aur] で助けを乞うこともできます。
最初にコミットを ''push'' すると AUR に新しいパッケージを作成されます。Git リポジトリのローカルコピーにソースファイルを追加してください。
 
   
  +
== パッケージを投稿する ==
{{Warning|既に公開された履歴を書き換えるのは大変難しくなります (参照: {{Bug|45425}})。別の名前・メールで AUR に push したい場合、{{ic|git config user.name [...]}} と {{ic|git config user.email [...]}} でユーザー名とメールアドレスを設定することができます。公開する前にコミットをよく確認しましょう。}}
 
   
  +
ユーザは、Arch User Repository を使って [[PKGBUILD]] を共有できます。詳細は [[AUR 投稿ガイドライン]] を見てください。
==== パッケージのアップロード ====
 
   
  +
== ウェブインターフェイスの翻訳 ==
リポジトリに変更を加えるときは、トップレベルディレクトリに {{ic|PKGBUILD}} と {{ic|.SRCINFO}} があることを確認してください。{{ic|.SRCINFO}} ファイルは {{ic|makepkg --printsrcinfo}} を使って作成することができます。
 
   
  +
[https://aur.archlinux.org AUR ウェブインターフェイス]の翻訳の作成とメンテナンスについては AUR ソースツリーの [https://gitlab.archlinux.org/archlinux/aurweb/-/blob/master/doc/i18n.txt i18n.txt] を見てください。
{{Note|{{ic|PKGBUILD}} のメタデータ ([[PKGBUILD#pkgver|pkgver]] など) を変更したら毎回 {{ic|.SRCINFO}} を再生成する必要があります。再生成しないと AUR が新しいバージョン番号を表示しません。}}
 
   
  +
== 歴史 ==
AUR にパッケージベースの新しいバージョンを投稿する場合、{{ic|git add}} で''ステージングエリア''に新しい {{ic|PKGBUILD}} と {{ic|.SRCINFO}}、そして時にはヘルパーファイル ({{ic|.install}} ファイルや {{ic|.patch}} などのローカルソースファイル) を追加し、{{ic|git commit}} でコミットメッセージを付けてローカルツリーにコミットして、{{ic|git push}} で変更を AUR に公開してください。
 
   
  +
当初、{{ic|<nowiki>ftp://ftp.archlinux.org/incoming</nowiki>}} というサーバーがあり、人々は [[PKGBUILD]] やビルドに必要なファイル、ビルド済みのパッケージをそのサーバにアップロードしていました。パッケージやそれに関連するファイルは、[[パッケージメンテナ]]がプログラムを見て取り入れるまで、そこに置かれていました。
例えば、新しく作成したディレクトリに {{ic|PKGBUILD}} を追加したら、以下のコマンドを実行することで最初のコミットを作成・送信できます:
 
   
  +
その後、Trusted User リポジトリが誕生しました。コミュニティの特定の個人が、誰でも使えるリポジトリをホストすることを許可されていました。これを基礎として、より柔軟に使いやすくするために拡張されたものが AUR です。今でも、AUR のメンテナは TU (Trusted User) と呼ばれます。
$ makepkg --printsrcinfo > .SRCINFO
 
$ git add ''PKGBUILD .SRCINFO''
 
$ git commit -m 'Initial import'
 
$ git push origin master
 
   
  +
2015年6月8日から2015年8月8日までの間に AUR はバージョン 3.5.1 から 4.0.0 に移行し、PKGBUILD を公開するために Git リポジトリが使われるようになりました。
パッケージをアップデートするときは、{{ic|PKGBUILD}} を編集してから AUR の Git リポジトリで変更を追跡するために以下のコマンドを実行して下さい:
 
  +
既存のパッケージは、メンテナによって新しいインフラに手動で移行されない限り、ドロップされました。
   
  +
=== AUR3 パッケージの Git リポジトリ ===
$ makepkg --printsrcinfo > .SRCINFO
 
$ git commit -am 'Update to ''1.0.0-2'''
 
$ git push
 
   
  +
GitHub 上の [https://github.com/aur-archive AUR Archive] には、移行時に AUR3 内にあったすべてのパッケージが保存されているリポジトリです。
詳しい情報は [[Git]] を見てください。
 
  +
あるいは、同じものを提供する [https://github.com/felixonmars/aur3-mirror/ aur3-mirror] リポジトリもあります。
   
  +
== FAQ ==
{{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}} オプションを使うことでこの問題は解決できます。{{ic|.SRCINFO}} にはソースパッケージのメタデータが含まれています。詳しくは [[.SRCINFO]] を見てください。}}
 
   
=== パッケージの投稿ルール ===
+
=== どのような種類のパッケージが AUR に置かれていますか? ===
   
  +
AUR にあるパッケージはたんに"ビルドスクリプト"、つまり pacman 用にバイナリをビルドするレシピにすぎません。ほとんどの場合、[[AUR 投稿ガイドライン#投稿の規則|有用性と範囲のガイドライン]]を条件として、コンテンツのライセンスの問題がない限り、すべてのものが置くことを許されています。他の場合、ダウンロードにリンクできない、つまり再配布が禁止されている時は、ソースとしてファイル名だけを使うことができます。よってパッケージをビルドするには、ユーザーによってビルドディレクトリにその制限されたソースを入れておく必要があります。どちらかわからない場合は、尋ねて下さい。
パッケージを投稿する際には、以下のルールを守りましょう:
 
   
  +
=== どうすれば AUR 内のパッケージに投票できますか? ===
* 投稿しようとしているパッケージが [https://www.archlinux.jp/packages/ パッケージデータベース] にすでに存在してないかチェックしてください。存在しているのなら、そのパッケージを投稿してはいけません。もし既にあるパッケージが壊れていたり機能していないのなら[https://bugs.archlinux.org/ バグレポート] で報告してください。
 
: 上記のルールの例外として、公式パッケージと比べて機能やパッチが追加されている場合は除外されます。そのような場合は違いがわかるように {{ic|pkgname}} を決めてください。例えば、サイドバーのパッチを適用した GNU screen のパッケージは {{ic|screen-sidebar}} などと名前を付けます。公式パッケージと衝突しないようにするため {{ic|1=provides=('screen')}} を使ってください。
 
* そのパッケージが AUR にすでに存在してないかチェックしてください。メンテナンスされているパッケージがあるのならば、コメントからメンテナに修正を求めることができます。パッケージが既にメンテナンスされていないのなら、作ったパッケージに差し替えることができます。パッケージを重複させないでください。
 
* 投稿するパッケージが皆の役に立つか考えて下さい。他の誰かがそのパッケージを使おうと考えるでしょうか?あまりにも特殊化しすぎていませんか?少なからぬ人が役に立つと思うようなパッケージであれば、投稿するのにふさわしいでしょう。
 
: AUR と公式リポジトリは一般的に、ソフトウェアやソフトウェアに関連するコンテンツをインストールするパッケージのために存在します。該当するコンテンツとしては次のものが含まれます: 実行可能ファイル、設定ファイル、特定のソフトウェアもしくは Arch Linux ディストリビューション全体のオンライン・オフラインのドキュメント、ソフトウェアによって直接使用されるメディア。
 
* AUR の PKGBUILD で {{ic|replaces}} を使うのはパッケージの名前を変更したいときです。例えば ''Ethereal'' から ''Wireshark'' に名前が変更されたときです。既存のパッケージの別バージョンとしてパッケージを作成する場合、{{ic|conflicts}} を使ってください (他のパッケージから必要とされる場合は {{ic|provides}} も使ってください)。{{ic|conflicts}} と {{ic|replaces}} は同期後 (-Sy) に pacman が即座にパッケージを置き換えるかどうかが違います。{{ic|conflicts}} はパッケージのインストール時にしか評価されません。
 
* あなたがアップロードするファイルを注意して問題ないかチェックしてください。全ての投稿者は PKGBUILD を書くときに [[Arch パッケージングスタンダード]]を読まなくてはなりません。AUR の効率的な運営と一般的な目的のために重要なことです。悪い PKGBUILD で利用者を苦しませているようではあなたの評判は上がらないでしょう。
 
* ソースがダウンロードできる場合はバイナリを投稿するのは避けてください。AUR は makepkg によって作成されるバイナリ tarball を保存する場所ではありません。
 
* {{ic|PKGBUILD}} ファイルの一番上の行には現在の'''メンテナ'''と過去にメンテを行っていた'''貢献者'''を以下のように記述してください。スパムから身を守るためにメールアドレスはわざとぼかしてください。
 
:新しく PKGBUILD のメンテナになる場合、以下のようにあなたの名前をファイルの一番上に追加してください:
 
:{{bc|<nowiki>
 
# Maintainer: Your Name <address at domain dot tld>
 
</nowiki>}}
 
:パッケージを共同メンテしている場合、共同メンテナの名前も追加してください。過去にメンテナが存在した場合、貢献者としてその後ろに追記してください。一番最初に投稿したユーザーも同じように貢献者として扱ってください。
 
:{{bc|<nowiki>
 
# Maintainer: Your name <address at domain dot tld>
 
# Maintainer: Other maintainer's name <address at domain dot tld>
 
# Contributor: Previous maintainer's name <address at domain dot tld>
 
# Contributor: Original submitter's name <address at domain dot tld>
 
</nowiki>}}
 
* もしパッケージ (やビルド・投稿プロセス) に自信がないときは、PKGBUILD を [https://lists.archlinux.org/listinfo/aur-general AUR メーリングリスト] や [https://bbs.archlinux.jp/viewforum.php?id=17 AUR フォーラム] に投稿して見てもらってから AUR に加えてください。
 
* パッケージを投稿しようとする前に経験をつみましょう。いくつかパッケージをビルドして手順を学んでから投稿してください。
 
   
=== パッケージのメンテナンス ===
+
[[#パッケージに投票する]] を見てください。
   
  +
=== Trusted User / TU とは何ですか? ===
* 他のユーザーからのコメントやフィードバックをチェックして、ときには提案を汲み上げるようにしましょう。学習過程だと考えて下さい。
 
* パッケージを更新する度にバージョン番号を含むコメントを投稿するのはやめてください。コメント欄は上記の意味ある内容のために使って下さい。更新の確認には [[AUR ヘルパー]]の方が適しています。
 
* パッケージを投稿したらそのまま放置するのはやめてください。アップデートをチェックし、PKGBUILD を修正してパッケージをメンテナンスするのがメンテナの仕事です。
 
* 何らかの理由でパッケージのメンテナンスが続けられない場合は、AUR ウェブインタフェースでパッケージを {{ic|disown}} するかメーリングリストでことづてしてください。AUR パッケージのメンテナがパッケージを放棄すると、パッケージは [https://aur.archlinux.org/packages/?O=0&SeB=nd&K=&outdated=&SB=n&SO=a&PP=50&do_Orphans=Orphans "孤児"] になります。
 
   
  +
[[AUR Trusted User ガイドライン|Trusted User]] (略して TU) とは、AUR と [[extra リポジトリ]]を監督するように選ばれた人のことです。彼らは ''extra'' に入っている人気の [[PKGBUILD]] を管理していて、みんなで AUR を運営し続けています。
=== その他 ===
 
   
  +
=== Arch User Repository と extra リポジトリの違いは何ですか? ===
* 孤児リクエストや消去リクエストは右側の"パッケージアクション"の下にある"リクエストを送る"リンクをクリックして作成することができます。リクエストが作成されると自動的に通知メールがパッケージの現在のメンテナと [https://lists.archlinux.org/listinfo/aur-requests aur-requests メーリングリスト] に送信されます。その後 [[Trusted Users|Trusted User]] がリクエストの承認・却下を行います。
 
* 孤児リクエストは通るのに2週間ほどかかることがあります。現在のメンテナにメールで連絡が行ってから、反応がないか待つためです。
 
* パッケージのマージも受け付けています、ユーザーはまず新しい名前でパッケージを再投稿して、古いバージョンのコメントや投票のマージをリクエストしてください。
 
* 消去リクエストには以下の情報が必要です:
 
** パッケージ名と AUR ページの URL
 
** 消去する理由、最低でも短いメモ書き <br> ''注意:'' パッケージのコメント欄をパッケージの削除の理由を書くのに使うことはできません。TU ができるだけ早く行動するために、そのような情報は aur-requests メーリングリストに書かれるべきです。
 
** 補足事項を加えて下さい、仮にあなたがメンテナならば、他のパッケージで提供されるようになった、パッケージ名を変えて元の管理者が認めた、など。
 
** マージリクエストの場合: マージ先のパッケージベースの名前。
 
   
  +
Arch User Repository にはユーザーが投稿した全ての [[PKGBUILD]] が保存されており、利用するには手動で [[makepkg]] を使ってビルドしなくてはなりません。{{ic|PKGBUILD}} にコミュニティの十分な関心が集まると、パッケージは [[extra リポジトリ]]に移され TU が管理するバイナリパッケージとなり、[[pacman]] によってインストールできるようになります。
消去リクエストは認められないことがあります、その場合、他のパッケージメンテナに移すためにパッケージを孤児にするようアドバイスされるかもしれません。
 
   
  +
=== AUR の Hoge が古くなっています、どうするべきでしょうか? ===
== AUR3 パッケージの Git リポジトリ ==
 
   
  +
[[#パッケージに out-of-date フラグを立てる]] を見てください。
GitHub の [https://github.com/aur-archive AUR Archive] には2015年8月に AUR4 に移行する前の AUR3 に存在した全てのパッケージが保存されています。
 
   
  +
その間、ローカルで [[PKGBUILD]] を自分で編集してパッケージをアップデートしてみることもできます。アップデートにビルドプロセスの変更が必要ない場合もあり、この場合、{{ic|pkgver}} か {{ic|source}} 配列を更新するだけで十分です。
== AUR メタデータ ==
 
   
  +
=== AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか? ===
[[AUR]] ウェブインターフェイスに情報を表示するために、AUR のバックエンドのコードでは [[PKGBUILD]] ファイルを分析して、パッケージの名前・バージョンなどの情報をサルベージしています。{{ic|PKGBUILD}} は [[Bash]] スクリプトなので、実行することなく Bash スクリプトを正確に分析するのは難題です、そのために [[makepkg]] は Bash スクリプトで出来ています: makepkg は {{ic|source}} ディレクティブでビルドするパッケージの PKGBUILD を読み込みます。AUR メタデータファイルはそのようなハックを取り除くために作られました。ウェブインターフェイスで間違った分析が行われないように AUR パッケージのメンテナによって使用されます。{{Bug|25210}}, {{Bug|15043}}, {{Bug|16394}} を参照してください。
 
   
  +
何か些細なことを見逃しているのかもしれません。[[#パッケージのビルドプロセスをデバッグする]] を見てください。
=== 動作の仕組み ===
 
{{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}} という形式をとります。イコール記号の前後には半角スペースが必要で、値をクォートで囲ってはいけません。
 
   
  +
=== ERROR: One or more PGP signatures could not be verified! この場合、どうすればよいですか? ===
{{ic|key}} はフィールド名です。[[PKGBUILD]] の変数の名前に対応しています。フィールド名によっては任意でアーキテクチャの名前を語尾に付けることができます。フィールドは、以下の2つのフィールド名を先頭に、セクションに分けられています:
 
   
  +
最もあり得るのは、ダウンロードしたファイルを検証するために必要な公開鍵があなたの個人キーリング内に存在しないことです。詳細は [[Makepkg#署名チェック]] を見てください。
* pkgbase: AUR 3 から必要になったフィールドで、これがないと悪名高い “only lowercase letters are allowed” エラーが起こります (''pkgbase'' が省略されている場合 Pacman が先の ''pkgname'' を使用します)。よく分からない場合は pkgname と同じにしてください。''pkgbase'' セクションは一つしかありません。このセクションのフィールド値は、''pkgname'' セクションで上書きされないかぎり継承されます。''pkgname'' セクションに空のフィールド値がある場合、継承はキャンセルされます。
 
* pkgname: ''pkgname'' セクションは複数作ることができます。
 
   
  +
=== どうやって PKGBUILD を作るのですか? ===
以下のフィールド名は一つの値と関連付けられます:
 
   
  +
[[AUR 投稿ガイドライン#投稿の規則]] を見て、次に [[パッケージの作成]] を見てください。
* epoch
 
* pkgver: パッケージのバージョン、epoch フィールドを分けないで [''epoch'':]''pkgver'' と記述することもできます
 
* pkgrel: Arch Linux 固有のパッケージリリース番号
 
* pkgdesc
 
* url
 
   
  +
=== PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか? ===
以下のフィールド名は複数行で繰り返し使って複数の値を追加することができます:
 
   
  +
パッケージをレビューのために提出できるチャネルが複数存在します。[[#パッケージのビルドプロセスをデバッグする]] を見てください。
* license: 複数のライセンスが存在する場合、スペースで区切ります
 
* groups
 
   
  +
=== どうすれば PKGBUILD が extra リポジトリに移されるのですか? ===
以下のフィールド名も繰り返すことができ、任意で下線を使って、アーキテクチャを指定することができます:
 
   
  +
通常、パッケージを [[extra リポジトリ]] に移すには最低 10 票必要です。しかし、[[TU]] がパッケージをサポートしたいと望んだときは、''extra'' リポジトリに入ることがしばしばあります。
* depends: 依存パッケージ、一行ごと
 
* makedepends
 
* checkdepends
 
* optdepends
 
* conflicts
 
* provides
 
* replaces
 
* source
 
   
  +
必要な最低投票数に到達することは唯一の要件ではありません。そのパッケージをメンテナンスしてもよいという TU がいなければなりません。たとえパッケージに数千もの投票があったとしても、TU は ''extra'' リポジトリにそのパケージを移す必要はないのです。
他の名前のフィールドは無視されます。空の行や、ハッシュ記号 (#) で始まる行コメントも無視されます。このフォーマットは [[pacman|pacman/libalpm]] のバイナリパッケージで使われている {{ic|.PKGINFO}} フォーマットとほぼ一致します。
 
   
  +
通常、非常に人気なパッケージが AUR に残っている理由としては:
{{Pkg|pkgbuild-introspection}} の {{ic|mksrcinfo}} によって {{ic|PKGBUILD}} から {{ic|.SRCINFO}} を作成することもできます。
 
   
  +
* Arch Linux のリポジトリ内にパッケージの他のバージョンがすでに存在するから
== AUR の翻訳 ==
 
  +
* ライセンスで再配布が禁止されているから
  +
* そのパッケージが、ユーザによって投稿された [[PKGBUILD]] の取得を補助するものだから。[[AUR ヘルパー]] は、当然、[https://bbs.archlinux.org/viewtopic.php?pid=828310#p828310 サポートされていません]。
   
  +
[[AUR Trusted User ガイドライン#extra リポジトリにパッケージを入れるときのルール|extra リポジトリにパッケージを入れるときのルール]] も見てください。
AUR ウェブインターフェイスの翻訳については AUR ソースツリーの [https://git.archlinux.org/aurweb.git/tree/doc/i18n.txt i18n.txt] を見てください。
 
   
  +
=== 繰り返されるビルドプロセスを速めるにはどうすればよいですか? ===
== コメント構文 ==
 
   
  +
[[Makepkg#コンパイル時間を短縮する]] を見てください。
AUR [https://lists.archlinux.org/pipermail/aur-general/2017-December/033697.html v4.6.0] から [https://python-markdown.github.io/ Python-Markdown] ライブラリがサポートされています。[[Wikipedia:ja:Markdown|Markdown]] との違いについては [https://python-markdown.github.io/#differences] を見てください。
 
   
  +
=== foo と foo-git パッケージは何が違うのですか? ===
== FAQ ==
 
   
  +
多くの AUR パッケージには安定バージョン ("stable") と開発バージョン ("unstable") が存在します。開発版のパッケージには大抵、バージョン管理システムを示す[[VCS パッケージガイドライン|接尾辞]]が付いており、通常の使用を意図していません。しかし、それらは新しい機能やバグフィックスを提供している場合があります。
=== AUR とは何ですか? ===
 
   
  +
{{ic|makepkg}} を実行した時、これらのパッケージは最新のソースをダウンロードするので、{{ic|pkgver()}} は必ずしも上流と合っていません。同じく、これらのパッケージは、如何なる [[VCS パッケージガイドライン#VCS ソース|VCS ソース]]のチェックサムの確認もできません。
AUR (Arch User Repository) は、Arch Linux コミュニティがアップロードした、アプリケーションやライブラリの [[PKGBUILD]] をコミュニティ全体で共有するスペースです。ユーザー同士でお気に入りのパッケージに投票することができ、場合によっては、[community] リポジトリに移されてバイナリ形式で Arch Linux ユーザー間に共有されます。
 
   
  +
[[システムメンテナンス#実績のあるソフトウェアパッケージを使用する]] も見てください。
=== どのような種類のパッケージが AUR に置かれていますか? ===
 
   
  +
=== Foo が AUR から消えたのはなぜですか? ===
AUR にあるパッケージはたんに"ビルドスクリプト"、つまり pacman 用にバイナリをビルドするレシピにすぎません。ほとんどの場合、上述の有用性と範囲のガイドラインを条件として、コンテンツのライセンスの問題がない限り、すべてのものが置くことを許されています。他の場合、ダウンロードにリンクできない、つまり再配布が禁止されている時は、ソースとしてファイル名だけを使うことができます。よってパッケージをビルドするには、ユーザーによってビルドディレクトリにその制限されたソースを入れておく必要があります。どちらかわからない場合は、尋ねて下さい。
 
   
  +
パッケージが [[TU]] によって引き取られ、現在は [[extra リポジトリ]] に存在している可能性があります。
=== TU とはどのような人ですか? ===
 
   
  +
また、[[AUR 投稿ガイドライン#投稿の規則|投稿の規則]]に違反していたため、削除されてしまった可能性もあります。削除の理由は、[https://lists.archlinux.org/archives/list/aur-requests@lists.archlinux.org/ aur-requests アーカイブ] を見てください。
[[AUR Trusted User ガイドライン|TU (Trusted User)]] とは、AUR と [community] リポジトリを監督するように選ばれた人のことです。彼らは [community] に入っている人気の PKGBUILD を管理していて、みんなで AUR を運営し続けています。
 
   
  +
{{Note|削除されたパッケージの git リポジトリは、通常、利用可能なままになります。詳細は [[AUR 投稿ガイドライン#リクエスト]] を見てください。}}
=== Arch User Repository と [community] の違いは? ===
 
   
  +
そのパッケージが AUR3 に存在していた場合、[https://lists.archlinux.org/archives/list/aur-general@lists.archlinux.org/message/NJN6TPVF6MWGF7BCHBMBYFZ5JDAPOHP5/ AUR4 に移行]されなかったのかもしれません。そのようなパッケージが保存されている場所である [[#AUR3 パッケージの Git リポジトリ]] を見てください。
Arch User Repository にはユーザーが投稿した全ての PKGBUILD が保存されており、利用するには手動で [[makepkg]] を使ってビルドしなくてはなりません。PKGBUILD に一定数の投票が入ると、パッケージは [community] リポジトリに移され TU が管理するバイナリパッケージとなり、[[pacman]] によってインストールできるようになります。
 
   
=== AUR のパッケージに投票すにはどうすればいいです ===
+
=== インストール済みのパッケージが AUR から消えてしまっていどうかを確かめるには? ===
   
  +
最もシンプルな方法は、そのパッケージの AUR ページの HTTP ステータスをチェックすることです:
[https://aur.archlinux.org/ AUR のウェブサイト] で登録して、パッケージのページを開いて「このパッケージに投票する」を押してください。サイトに一度登録すれば {{AUR|aurvote}}, {{AUR|aurvote-git}}, {{AUR|aur-auto-vote-git}} などを使ってコマンドラインから投票することもできます。
 
   
  +
$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)
もしくは [[#認証|ssh 認証]]を設定して、ssh 鍵を使ってコマンドラインから直接投票することも可能です。AUR のパスワードを入力する手間を省けます。
 
   
  +
=== 全ての AUR パッケージのリストを入手するには? ===
ssh aur@aur.archlinux.org vote <PACKAGE_NAME>
 
 
システムにインストールしている AUR パッケージ全てに投票するには:
 
 
for i in $(pacman -Qqm); do echo Voting for $i; ssh aur vote $i; done
 
 
=== どれくらいの投票で PKGBUILD が [community] に移されますか? ===
 
 
通常、少なくとも 10 の投票が [community] に移されるのに必要です。しかし、TU がパッケージをサポートしたいと望んだ時は、投票数にかかわらず [community] に入ることがしばしばあります。
 
 
=== どうやって PKGBUILD を作るのですか? ===
 
 
作り方は[[パッケージの作成]]にあります。同じものをダブらせてしまわないように PKGBUILD を作る前に AUR を調べるのを忘れないようにしましょう。
 
 
=== [community] にあるパッケージを "pacman -S hoge" したのですがインストールされません ===
 
 
おそらく {{ic|/etc/pacman.conf}} で [community] を有効にしていないのではないでしょうか。当該行をアンコメントしてください。
 
{{ic|/etc/pacman.conf}} の [community] が有効になっていたのなら、{{ic|pacman -Syu}} で pkgcache を同期してからパッケージを再度取得してみてください。
 
 
=== AUR の Hoge が古くなっています、どうするべきでしょうか? ===
 
 
第一歩として、パッケージの out-of-date フラグを立てることができます。しばらく時間がたっても out-of-date のままの場合、最良の解決策はメンテナにメールをすることです。2週間たってもメンテナから何の反応も得られないときは、孤児リクエストを作成してください。3ヶ月以上 out-of-date のままでいっこうにアップデートされる気配のないパッケージがあるのならば、孤児リクエストに加えて下さい。
 
 
{{Note|[[VCS パッケージガイドライン|VCS パッケージ]]は pkgver 以外に変更がない場合は out-of-date とはみなすべきではありません。VCS パッケージの out-of-date フラグを立ててもメンテナはフラグを降ろしてあなたを無視することでしょう。AUR のメンテナは
 
VCS パッケージの pkgver だけを上げるコミットをしてはいけません。}}
 
 
=== PKGBUILD を作って投稿したいと思っています。エラーがないか誰かチェックしてくれるでしょうか? ===
 
 
あなたの PKGBUILD を批評してもらいたいのなら、aur-general メーリングリストに投稿して、TU や AUR メンバーからの反応をみてはいかがでしょう。[[IRC チャンネル]], #archlinux on irc.freenode.net からも助けを得ることができます。[[namcap]] を使って PKGBUILD や作られるパッケージにエラーがないかチェックすることも可能です。
 
 
=== AUR の Hoge を makepkg でコンパイルすることができません。どうしたらいいですか? ===
 
 
おそらく些細なことを見逃していると思われます。
 
 
# {{ic|makepkg}} でコンパイルする前に {{ic|pacman -Syyu}} をしてみてください。あなたのシステムが最新でないことが問題かもしれません。
 
# {{Grp|base}} と {{Grp|base-devel}} グループがインストール済みか確認してください。
 
# ビルドプロセスをはじめる前に {{ic|makepkg}} に "{{ic|-s}}" オプションを使って必要な依存パッケージがインストールされているかチェックしてみてください。
 
 
まずはじめに PKGBUILD やパッケージの AUR ページのコメントを読むようにしてください。問題がカスタムした CFLAGS, LDFLAGS, MAKEFLAGS が問題を起こしているのかもしれません。その PKGBUILD が全ての人にとって壊れているかもしれません。もし自分で解決できない問題なら、AUR ページのコメントに書き込むなどしてメンテナにそれを報告してください。
 
 
=== ビルドの速度を速めるにはどうすればいいですか? ===
 
 
gcc を使って頻繁にコードをコンパイルする場合 (git や SVN パッケージなど)、[[ccache]] ("compiler cache" の略) が役にたつかもしれません。
 
 
=== foo と foo-git パッケージは何が違うのですか? ===
 
 
多くの AUR パッケージには通常バージョン ("stable") と開発バージョン ("unstable") が存在します。開発版のパッケージには大抵 "-cvs", "-svn", "-git", "-hg", "-bzr", "-darcs" などが末尾に付きます。開発版のパッケージは通常の使用には適してしませんが、新しい機能やバグフィックスが含まれていることがあります。{{ic|makepkg}} を実行した時 {{ic|-git}}, {{ic|-svn}}, {{ic|-hg}}, {{ic|-bzr}} パッケージは最新のソースをダウンロードするので、パッケージのバージョンは必ずしも上流と合っていません。同じく、チェックサムの確認が出来ないので、git リポジトリのメンテナを信用することになります。
 
 
[[Arch Linux の安定化#開発中のパッケージを使わない]]も参照してください。
 
 
=== foo パッケージが AUR から消えているのはなぜですか? ===
 
 
[[#パッケージの投稿ルール|ルール違反]]によってパッケージが削除された可能性があります。削除理由は [https://lists.archlinux.org/pipermail/aur-requests/ aur-requests アーカイブ] を見てください。
 
 
AUR3 に存在していたパッケージの場合、[https://lists.archlinux.org/pipermail/aur-general/2015-August/031322.html AUR4 に移行] したときにパッケージが移行されなかった可能性があります。[[#AUR3 パッケージの Git リポジトリ]]を見てください。
 
 
=== 全ての AUR パッケージのリストを入手するには? ===
 
   
 
* https://aur.archlinux.org/packages.gz
 
* https://aur.archlinux.org/packages.gz
* {{aur|python3-aur}} パッケージに含まれている {{ic|aurpkglist}} を使用する。
+
* {{aur|python3-aur}} {{ic|aurpkglist}} を使ってください
   
 
== 参照 ==
 
== 参照 ==
 
* [https://aur.archlinux.org AUR ウェブインターフェイス]
 
* [https://aur.archlinux.org AUR ウェブインターフェイス]
* [https://www.archlinux.org/mailman/listinfo/aur-general AUR メーリングリスト]
+
* [https://lists.archlinux.org/mailman3/lists/aur-general.lists.archlinux.org/ AUR メーリングリスト]
  +
  +
{{TranslationStatus|Arch User Repository|2023-06-14|779733}}

2023年10月21日 (土) 19:05時点における最新版

関連記事

Arch User Repository (AUR) はコミュニティによって運営されている、Arch ユーザーのためのリポジトリです。パッケージのビルド方法が書かれたファイル (PKGBUILD) がまとめて置かれており、makepkg を使ってソースからパッケージを作り、生成したパッケージを pacman でインストールすることができます。人気のあるパッケージが extra リポジトリに取り込まれるように、コミュニティの手で新しいパッケージを共有することを目的に AUR は作られました。このページでは AUR の使用方法を説明します。

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

警告: AUR のパッケージはユーザによって提供されているものです。それらの PKGBUILD は完全に非公式であり、綿密に検査されていません。AUR から提供されているファイルの使用は自己責任となります。

目次

はじめに

AUR ウェブインターフェイスPKGBUILD を検索したり、ダウンロードしたりすることができます。makepkg を使って PKGBUILD からパッケージを生成することができ、pacman でインストールできます。

  • base-develインストールされていることを確認してください。
  • 一般的な質問に対する答えはほとんど #FAQ に載っています。
  • /etc/makepkg.conf を調整することで、AUR からパッケージをビルドするときに、あなたの使用しているプロセッサに最適化することができます。マルチコアプロセッサを搭載しているシステム上では、MAKEFLAGS 変数を調整したり、圧縮に複数のコアを使ったり、別の圧縮アルゴリズムを使ったりすることで、パッケージのビルドタイムを劇的に短縮できる可能性があります。また、CFLAGS 変数を使うことでハードウェア固有のコンパイラ最適化を有効化することもできます。詳しくは makepkg#ヒントとテクニック を見てください。

また、SSH から AUR にアクセスすることもできます: 利用可能なコマンドをリストアップするには ssh aur@aur.archlinux.org help を入力してください。

パッケージをインストール・アップグレードする

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

  1. ビルドファイルを取得する。PKGBUILD や、systemd ユニットやパッチなどの (しばしば、実際のコードではない) 他の必要なファイルを含みます。
  2. PKGBUILD とそれに付属しているファイルが、悪意のある、または信頼できないものでないことを検証する。
  3. それらのファイルが保存されているディレクトリ内で makepkg を実行する。これは、コードをダウンロードし、コンパイルし、パッケージングします。
  4. pacman -U package_file を実行し、パッケージをシステムにインストールする。

要件

まず、base-devel をインストールして、必須のツールをインストールしましょう。このメタパッケージには、ソースからコンパイルするために必要な make などのツールが依存パッケージとして含まれています。

ノート: AUR のパッケージは、base-devel がビルド環境にインストールされていることを想定しています。

次に、適切なビルドディレクトリを選択してください。ビルドディレクトリは、パッケージがソースから作成/ビルドされるディレクトリであり、任意のディレクトリを使うことができます。以下のセクションでは例として ~/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
ノート: スナップショットのファイルは圧縮されています。なので、展開する必要があります (できれば、AUR ビルド用のディレクトリ内で): tar -xvf package_name.tar.gz
  • archlinux/aur GitHub 上の読み取り専用ミラーを使う。1つのブランチ内に1つのパッケージが存在しています。1つのブランチのみをクローンすることが推奨されます (リポジトリ全体は大きすぎるので、パフォーマンスが低下するでしょう)。これを行う方法として、以下の2つがあります:
    • git clone --single-branch を使う:
      $ git clone --branch package_name --single-branch https://github.com/archlinux/aur.git
    • このリポジトリの部分クローンを行い (git clone --depth=1)、選択的にブランチを追加する:
$ 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
警告: PKGBUILD ファイルや .install ファイル、パッケージの git リポジトリ内のすべてのファイルを注意深く見て、悪意のある/危険なコマンドがないかチェックしてください。疑わしい場合、パッケージをビルドせずに、フォーラムやメーリングリストで助言を得ましょう。以前、悪意のあるコードがパッケージ内で見つかったことがあります。[1]

提供されているファイルすべての内容を確認してください。例えば、less を使って PKGBUILD を見るには:

$ less PKGBUILD
ヒント: パッケージをアップデートしようとしているならば、最後のコミットとの変更点を見るべきかもしれません。
  • 最後の git コミットとの変更点を見るには、git show を使うことができます。
  • vimdiff を使って最後のコミットとの変更点を見るには、git difftool @~..@ vimdiff を実行してください。vimdiff の利点は、何が変更されたかを示すインジケータと共に各ファイルの内容全体を見ることができることです。

パッケージを作成します。手動でファイルの内容を確認したあとで、makepkg を通常ユーザとして実行してください。いくつか便利なフラグがあります:

  • -s/--syncdeps は、ビルド前に自動的に依存関係を解決し、pacman を使って依存パッケージをインストールします。パッケージが他の AUR パッケージに依存している場合、まずその AUR パッケージを手動でインストールする必要があります。
  • -i/--install は、ビルドが成功した場合にパッケージをインストールします。このフラグを使えば、通常手動で行う次の手順をスキップすることができます。
  • -r/--rmdeps は、ビルド後に、ビルド時の依存パッケージを削除します (なぜなら、それらはもはや必要ないからです)。しかし、これらの依存パッケージは、パッケージがアップデートされたときに再インストールする必要があるでしょう。
  • -c/--clean は、ビルド後に一時ビルドファイルをクリーンアップします (なぜなら、それらはもはや必要ないからです)。通常、これらのファイルはビルドプロセスをデバッグするときにだけ必要になります。
ヒント: git clean -dfx を使えば、git によって追跡されていないファイルをすべて削除できます。つまり、以前ビルドされたパッケージをすべて削除します。

パッケージをインストールする

これで、pacman を使ってパッケージをインストールできます:

# pacman -U package_name-version-architecture.pkg.tar.zst
ノート:
  • makepkg.conf 内の PKGEXT を変更している場合、パッケージファイルの名前も若干異なる場合があります。
  • 上記の例は、ビルドプロセスの概略です。詳細は makepkgABS の記事を見ることを強く推奨します。

パッケージをアップグレードする

パッケージの PKGBUILD を含むディレクトリ内で、まず最初に以下のコマンドを使ってファイルと変更を更新しなければなりません:

$ git pull

次に、前述のビルドとインストールの指示に従ってください。

パッケージをアップデートする

AUR はサポート外のものなので、あなたがインストールしたパッケージは、pacman ではなく あなたの責任で アップデートすることになっています。公式リポジトリ内のパッケージがアップデートされた場合、それらのライブラリに依存している AUR パッケージをすべてビルドし直す必要があります。

アカウントステータス

休止 (Suspension)

Trusted User としてユーザを編集するとき、休止 (Suspended) フィールドをセットできます。これは、対象のユーザを休止させます。ユーザが休止しているとき、以下のことはできなくなります:

活動休止 (Inactivity)

あなた自身のアカウントを編集するときや、Trusted User としてユーザを編集するとき、活動休止 (Inactive) フィールドをセットできます。活動休止中のアカウントは2つの理由により使用されます:

  • アカウントページに活動休止になった日付を表示する。
  • 新しい提案のために、活動休止になっているかどうかで現在アクティブな Trusted User の数を生成する。

フィードバック

パッケージにコメントする

AUR ウェブインターフェイスにはコメント機能があり、PKGBUILD の貢献者にコメントで提案やフィードバックを提供することができます。

ヒント: コメント欄にパッチや PKGBUILD をペーストするのは避けてください。それらはすぐに古くなり、不必要にスペースを圧迫するだけになります。代わりに、それらのファイルをメンテナにメールするか、pastebin を使ってください。

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

ノート:
  • この実装は、公式の構文規則とは一部異なる場合があります。
  • パッケージの Git リポジトリへのコミットハッシュと、Flyspray チケットへの参照は、自動的にリンクに変換されます。
  • 長いコメントは短く表示され、必要に応じて全文を表示できます。

パッケージに投票する

すべての Arch ユーザにとって最も簡単なアクティビティの1つとして、AUR のオンラインインターフェイスによる AUR のブラウズや、お気に入りのパッケージへの投票があります。すべてのパッケージは、TU によってextra リポジトリに取り込まれる可能性があり、得票数はその過程で考慮されます。また、投票数はみんなが気にしていることでもあります。

パッケージのブラウジングで「このパッケージに投票する」オプションを利用できるようにするには、AUR のウェブサイトにサインアップしてください。サインアップ後、aurvoteAURaurvote-gitAURaur-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 投稿ガイドライン#リクエスト を見てください。

ノート: VCS パッケージは、pkgver が変更されても、out-of-date とは見なされません。VCS パッケージにはフラグを建てないでください。立てても、メンテナは単にフラグを解除し、あなたを無視するでしょう。AUR メンテナは単なる pkgver のバージョンアップをコミットするべきではありません。

パッケージのビルドプロセスをデバッグする

  1. 何かをビルドする前にアップグレードしてビルド環境が最新であることを確認してください。
  2. base-devel がインストールされていることを確認してください。
  3. ビルドプロセスを始める前に、makepkg-s オプションを使って、必要とされているすべての依存関係をチェック・インストールしてください。
  4. デフォルトの makepkg の設定を試してください。
  5. 一般的な問題については Makepkg#トラブルシューティング を見てください。

パッケージのビルドで問題が発生する場合、まず、そのパッケージの PKGBUILD とそのパッケージの AUR ページのコメントを読んでください。

PKGBUILD が全員の環境で壊れている場合もあり得ます。ひとりで解決できない場合、問題をメンテナに報告してください (例えば、発生するエラーを AUR ページのコメント欄に投稿するなど)。また、AUR Issues, Discussion & PKGBUILD Requests フォーラムで助けを得ることもできるかもしれません。

結局、原因が些細なことではない場合もあります。カスタムの CFLAGSLDFLAGSMAKEFLAGS フラグは失敗を引き起こす可能性があります。あなたのシステム構成によって引き起こされる問題を回避するには、パッケージをクリーンな 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 を見てください。

歴史

当初、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 リポジトリもあります。

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 を自分で編集してパッケージをアップデートしてみることもできます。アップデートにビルドプロセスの変更が必要ない場合もあり、この場合、pkgversource 配列を更新するだけで十分です。

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 アーカイブ を見てください。

ノート: 削除されたパッケージの git リポジトリは、通常、利用可能なままになります。詳細は AUR 投稿ガイドライン#リクエスト を見てください。

そのパッケージが AUR3 に存在していた場合、AUR4 に移行されなかったのかもしれません。そのようなパッケージが保存されている場所である #AUR3 パッケージの Git リポジトリ を見てください。

インストール済みのパッケージが AUR から消えてしまっているかどうかを確かめるには?

最もシンプルな方法は、そのパッケージの AUR ページの HTTP ステータスをチェックすることです:

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

全ての AUR パッケージのリストを入手するには?

参照

翻訳ステータス: このページは en:Arch User Repository の翻訳バージョンです。最後の翻訳日は 2023-06-14 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。