「Arch User Repository」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
128行目: 128行目:
   
 
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] を見てください。
 
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] を見てください。
 
== AUR メタデータ ==
 
 
[[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}} という形式をとります。イコール記号の前後には半角スペースが必要で、値をクォートで囲ってはいけません。
 
 
{{ic|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|pacman/libalpm]] のバイナリパッケージで使われている {{ic|.PKGINFO}} フォーマットとほぼ一致します。
 
 
{{AUR|pkgbuild-introspection}} の {{ic|mksrcinfo}} によって {{ic|PKGBUILD}} から {{ic|.SRCINFO}} を作成することもできます。
 
   
 
== パッケージを投稿する ==
 
== パッケージを投稿する ==

2022年10月29日 (土) 17:50時点における版

関連記事

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

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

目次

はじめに

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

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

SSH 経由で AUR を使うこともできます: 利用可能なコマンドは ssh aur@aur.archlinux.org help で確認できます。

歴史

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

当初、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 には2015年8月に AUR4 に移行する前の AUR3 に存在した全てのパッケージが保存されています。

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

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

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

  1. PKGBUILD と systemd のユニットやパッチなど他の必要なファイル (ソースコードではない場合が多い) が含まれた tarball を取得します。
  2. tar -xvf pkgname.tar.gz で tarball を解凍します (なるべく AUR 用に作ったフォルダで行ってください)。
  3. PKGBUILD ファイルが入ったディレクトリの中で makepkg -si を実行します。自動でソースコードをダウンロード、pacman で依存関係を解決、コンパイルしてパッケージ化し、パッケージをインストールします。

必須要件

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

警告: AUR のパッケージは base-devel グループがインストールされているのを前提としているので、ビルドするにはこのグループのインストールが不可欠な場合でも、AUR パッケージはこのグループを依存のリストに挙げません。ビルドが失敗したら、このグループがインストールされているか確認しましょう。
# pacman -S --needed base-devel

次に適当なビルドディレクトリを選択します。ビルドディレクトリは単純にパッケージが作られる (または"ビルド"される) ディレクトリというだけで、どのディレクトリでもかまいません。

ビルドファイルを獲得

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

ビルドファイルをダウンロードする方法は複数存在します:

  • "Package Details" の "Git Clone URL" に書かれている git リポジトリを複製する:
$ git clone https://aur.archlinux.org/package_name.git
リポジトリを複製する場合、git pull で簡単にパッケージを更新することができます。
  • パッケージ情報のページから、右にある "パッケージアクション" 下の "スナップショットのダウンロード" リンクをクリックしてダウンロードする。圧縮ファイルがダウンロードされるので、ファイルをビルドディレクトリに移して展開してください:
$ tar -xvf package_name.tar.gz
  • また、ターミナルから tarball をダウンロードすることもできます:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz

パッケージのビルド

まずは PKGBUILD が含まれているディレクトリに移動してください:

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

移動したらファイルが正しいか確認してください。例:

$ nano PKGBUILD
$ nano hoge.install

確認できたら通常ユーザーで makepkg を実行します:

$ makepkg -si
  • -s/--syncdeps スイッチはビルドする前に pacman によって依存関係を自動的に解決・インストールします。
  • -i/--install は作成したパッケージをインストールします。

他の便利なフラグ:

  • -r/--rmdeps はビルド後に不要になった依存パッケージを削除します。ただし、パッケージを更新するときは再度依存パッケージをインストールする必要があります。
  • -c/--clean はビルド時に一時的に作成されたビルドファイルを消去します。パッケージのビルドをデバッグしたい場合に有用なフラグです。
ノート: 以上の例はパッケージをビルドする手順の簡単な概略です。makepkgABS のページにはもっと詳しい解説が載っています、初めて使うユーザーはぜひ読んで下さい。

フィードバック

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

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

コメント構文

AUR v4.6.0 から Python-Markdown ライブラリがサポートされています。Markdown との違いについては [1] を見てください。

パッケージを投稿する

ユーザは、Arch User Repository を使って PKGBUILD を共有できます。詳細は AUR 投稿ガイドライン を見てください。

ウェブインターフェイスの翻訳

AUR ウェブインターフェイスの翻訳の作成とメンテナンスについては AUR ソースツリーの i18n.txt を見てください。

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 によってインストールできるようになります。

AUR のパッケージに投票するにはどうすればいいですか?

AUR のウェブサイト で登録して、パッケージのページを開いて「このパッケージに投票する」を押してください。サイトに一度登録すれば aurvoteAUR, aurvote-gitAUR, aur-auto-vote-gitAUR などを使ってコマンドラインから投票することもできます。

もしくは ssh 認証を設定して、ssh 鍵を使ってコマンドラインから直接投票することも可能です。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" したのですがインストールされません

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

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

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

ノート: 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 でコンパイルすることができません。どうしたらいいですか?

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

  1. makepkg でコンパイルする前に pacman -Syyu をしてみてください。あなたのシステムが最新でないことが問題かもしれません。
  2. basebase-devel グループがインストール済みか確認してください。
  3. ビルドプロセスをはじめる前に makepkg に "-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" などが末尾に付きます。開発版のパッケージは通常の使用には適してしませんが、新しい機能やバグフィックスが含まれていることがあります。makepkg を実行した時 -git, -svn, -hg, -bzr パッケージは最新のソースをダウンロードするので、パッケージのバージョンは必ずしも上流と合っていません。同じく、チェックサムの確認が出来ないので、git リポジトリのメンテナを信用することになります。

Arch Linux の安定化#開発中のパッケージを使わないも参照してください。

foo パッケージが AUR から消えているのはなぜですか?

ルール違反によってパッケージが削除された可能性があります。削除理由は aur-requests アーカイブ を見てください。

AUR3 に存在していたパッケージの場合、AUR4 に移行 したときにパッケージが移行されなかった可能性があります。#AUR3 パッケージの Git リポジトリを見てください。

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

参照