「Arch User Repository」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎はじめに: 修正)
52行目: 52行目:
 
=== AUR3 パッケージの Git リポジトリ ===
 
=== AUR3 パッケージの Git リポジトリ ===
   
GitHub の [https://github.com/aur-archive AUR Archive] には2015年8月に AUR4 に移行する前の AUR3 に存在してのパッケージが保存されていす。
+
GitHub の [https://github.com/aur-archive AUR Archive] には移行時に AUR3 あっすべてのパッケージが保存されているリポジトリです。
  +
あるいは、同じものを提供する [https://github.com/felixonmars/aur3-mirror/ aur3-mirror] リポジトリもあります。
   
 
== パッケージをインストール・アップグレードする ==
 
== パッケージをインストール・アップグレードする ==

2022年11月2日 (水) 13:26時点における版

関連記事

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

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

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

目次

はじめに

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

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

また、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 には、移行時に AUR3 内にあったすべてのパッケージが保存されているリポジトリです。 あるいは、同じものを提供する aur3-mirror リポジトリもあります。

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

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

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

要件

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

ヒント: base-devel パッケージグループをインストールする際に、すでにインストール済みのパッケージをスキップするには、--needed フラグを使用してください。
ノート: 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 --depth=1 https://github.com/archlinux/aur; 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

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

アカウントステータス

休止 (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 によってcommunity リポジトリに取り込まれる可能性があり、得票数はその過程で考慮されます。また、投票数はみんなが気にしていることでもあります。

パッケージのブラウジングで「このパッケージに投票する」オプションを利用できるようにするには、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 を見てください。

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 パッケージのリストを入手するには?

参照