「AUR ヘルパー」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(前文情報更新)
(→‎ビルドと検索: 英語版に追従して内容と項目をを更新)
19行目: 19行目:
 
[[Pacman]] はリポジトリにあるビルド済みのパッケージのアップデートだけを扱います。AUR パッケージは [[PKGBUILD]] の形で再配布され、再ビルドのプロセスを自動化するために AUR ヘルパーが必要です。しかし、パッケージ自体がアップデートされたときだけでなく、共有ライブラリの依存関係が更新されたときにもパッケージのリビルドが必要になることがあることを覚えておいてください。
 
[[Pacman]] はリポジトリにあるビルド済みのパッケージのアップデートだけを扱います。AUR パッケージは [[PKGBUILD]] の形で再配布され、再ビルドのプロセスを自動化するために AUR ヘルパーが必要です。しかし、パッケージ自体がアップデートされたときだけでなく、共有ライブラリの依存関係が更新されたときにもパッケージのリビルドが必要になることがあることを覚えておいてください。
   
== ビルドと検索 ==
+
== 用語集 ==
   
  +
[[比較表]] の列は、以下のような意味を持ちます。
凡例:
 
* ''セキュア'': デフォルトで PKGBUILD を source しない、または、source する前に警告を表示することを意味しています。ヘルパーによっては勝手に PKGBUILD を source してしまうので、問題のあるコードが実行されてしまう可能生があります。「任意」は自動 source をしないコマンドラインフラグまたは設定オプションが存在することを示しています。
 
* ''クリーンビルド'': 新しい変数がエクスポートされてビルドプロセスが失敗しないことを意味しています。
 
* ''pacman ネイティブ'': {{ic|pacman -Syu}} など {{man|8|pacman}} コマンドの代わりとして使ったときに、デフォルトで以下のことを行いません [https://wiki.archlinux.org/index.php?title=Talk:AUR_helpers&oldid=515160#Add_.22pacman_wrap.22_column]:
 
:– コマンドを分割しません。例えば {{ic|pacman -Syu}} が {{ic|pacman -Sy}} と {{ic|pacman -S ''packages''}} に分けられることがありません。
 
:– データベースを手動で操作したり {{man|3|libalpm}} を使うのではなく ''pacman'' を直接使用します。
 
:さらに {{ic|pacman -Ud}}, {{ic|pacman -Rdd}}, {{ic|pacman --ask}}, {{ic|pacman --force}} などの[[Arch Linux の安定化#特定の pacman コマンドを使わない|危険なコマンド]]を勝手に使用しません。
 
:{{Warning|上記の基準から外れる AUR ヘルパーは[[公式リポジトリ]]のパッケージのインストールなどで {{man|8|pacman}} を正しく使用しない場合がありますが、そのような使用方法はサポート・推奨されません。}}
 
* ''高機能パーサー'': PKGBUILD を解析する代わりにメタデータ (RPC/.SRCINFO) を使用して複雑なパッケージ (例: {{AUR|aws-cli-git}}) でも管理できることを示しています。
 
* ''高機能ソルバー'': 複雑な依存関係 (例: {{AUR|ros-lunar-desktop}}) も解決してビルドすることができることを示しています。
 
* ''分割パッケージ'': 以下のような分割パッケージを正しくビルド・インストールできることを示しています:
 
:– {{AUR|clion}} など、複数回ビルド・インストールする必要がない同一のパッケージベースを持つパッケージ。
 
:– {{Pkg|libc++}} や {{Pkg|libc++abi}} など同一のパッケージベースに依存する分割パッケージ。
 
:– {{AUR|python-pyalsaaudio}} や {{AUR|python2-pyalsaaudio}} など個別にインストールすることができる分割パッケージ。
 
* ''Git クローン'': tarball ではなく {{man|1|git-clone}} を使って AUR からビルドファイルを取得することを意味しています。
 
* ''差分表示'': パッケージの差分を表示することができる機能。PKGBUILD だけでなく、{{ic|.install}} や {{ic|.patch}} などのファイルの変更も含みます。
 
* ''バッチ操作'': 以下の作業を直接行うことができるかどうか:
 
# PKGBUILD の調査。
 
# パッケージアップグレードの合併。
 
# パッケージ衝突の解決とインストール。
 
:アスタリスクはユーザーが有効にできる機能であることを示しています。
 
* ''シェル補完'': [[w:Command-line_completion|タブ補完]]が特定の[[シェル]]で使用できる。
 
   
  +
;File review:デフォルトでは ''PKGBUILD をソースしない'' か、ユーザーに警告を出しソースされる前に PKGBUILD を手動で検査する機会を提供します。ヘルパーの中にはユーザーが検査する前に PKGBUILD をソースして、'''悪意のあるコードを実行させる''' ものがあることが知られています。
{{Note|
 
  +
;Diff view:パッケージの差分を閲覧する機能です。PKGBUILD の他に、{{ic|.install}} や {{ic|.patch}} ファイルなどのファイルの変更も含まれます。
* ''オプション'' は、機能が利用可能であることを意味しますが、コマンドライン引数または構成オプションを介してのみ使用できます。
 
  +
;Git clone:AUR からビルドファイルを取得するためにデフォルトで {{man|1|git-clone}} を使います。
* ''部分的'' とは、機能が完全に実装されていないか、指定された基準から部分的に逸脱していることを意味します。}}
 
  +
;Reliable parser:{{AUR|aws-cli-git}} のような PKGBUILD [[w:Parsing#Parser|parsing]] の代わりに提供されるメタデータ ([[Aurweb RPC インターフェース|RPC]]/.SRCINFO) を使って複雑なパッケージを扱うことができるようになりました。
=== 開発中 ===
 
  +
;Reliable solver:{{AUR|ros-melodic-desktop}} のような、複雑な依存関係を正しく解決して構築する機能。
  +
;Split packages:正しくビルドしてインストールする機能
  +
:*同じパッケージベースから複数のパッケージを、何度もリビルドや再インストールすることなく、インストールできます。
  +
:*{{Pkg|libc++}} と {{Pkg|libc++abi}} のように、同じパッケージベースのパッケージに依存しているパッケージを分割することができます。
  +
:*{{AUR|python-pyalsaaudio}} と {{AUR|python2-pyalsaaudio}} のように、独立してパッケージを分割することができます。
  +
;シェルによる補完:[https://en.wikipedia.org/wiki/Command-line_completion Tab completion] はリストアップされた [[コマンドラインシェル]] で利用可能です。
  +
  +
=== 比較表 ===
   
 
{| class="wikitable sortable" width="100%"
 
{| class="wikitable sortable" width="100%"

2022年2月9日 (水) 03:28時点における版

警告: AUR ヘルパーは Arch Linux では サポートされていません 問題のトラブルシューティングに備えるために、手動ビルドプロセス に慣れる必要があります

AUR ヘルパーは Arch User Repository の利用を自動化するものです。特に、以下のタスクを自動化することができます。

  • AUR で公開されているパッケージの検索。
  • AUR パッケージ間の依存関係を解決する。
  • AUR パッケージの取得とビルド
  • ユーザーコメントのようなウェブコンテンツの取得
  • AUR パッケージの投稿

Pacman はリポジトリにあるビルド済みのパッケージのアップデートだけを扱います。AUR パッケージは PKGBUILD の形で再配布され、再ビルドのプロセスを自動化するために AUR ヘルパーが必要です。しかし、パッケージ自体がアップデートされたときだけでなく、共有ライブラリの依存関係が更新されたときにもパッケージのリビルドが必要になることがあることを覚えておいてください。

用語集

比較表 の列は、以下のような意味を持ちます。

File review
デフォルトでは PKGBUILD をソースしない か、ユーザーに警告を出しソースされる前に PKGBUILD を手動で検査する機会を提供します。ヘルパーの中にはユーザーが検査する前に PKGBUILD をソースして、悪意のあるコードを実行させる ものがあることが知られています。
Diff view
パッケージの差分を閲覧する機能です。PKGBUILD の他に、.install.patch ファイルなどのファイルの変更も含まれます。
Git clone
AUR からビルドファイルを取得するためにデフォルトで git-clone(1) を使います。
Reliable parser
aws-cli-gitAUR のような PKGBUILD parsing の代わりに提供されるメタデータ (RPC/.SRCINFO) を使って複雑なパッケージを扱うことができるようになりました。
Reliable solver
ros-melodic-desktopAUR のような、複雑な依存関係を正しく解決して構築する機能。
Split packages
正しくビルドしてインストールする機能
  • 同じパッケージベースから複数のパッケージを、何度もリビルドや再インストールすることなく、インストールできます。
  • libc++libc++abi のように、同じパッケージベースのパッケージに依存しているパッケージを分割することができます。
  • python-pyalsaaudioAURpython2-pyalsaaudioAUR のように、独立してパッケージを分割することができます。
シェルによる補完
Tab completion はリストアップされた コマンドラインシェル で利用可能です。

比較表

名前 言語 セキュア クリーンビルド pacman ネイティブ 高機能パーサー 高機能ソルバー 分割パッケージ Git クローン 差分表示 バッチ操作 シェル補完 特記事項
aurmanAUR Python Yes Yes Yes Yes Yes Yes Yes Yes 1, 2*, 3* bash, fish pgp 鍵の取得、投票・人気度でソート、ニュースの出力。
aurutilsAUR Bash/C Yes Yes N/A Yes Yes Yes Yes Yes 1 zsh vifmローカルリポジトリパッケージ署名clean chroot のサポート、投票・人気度でソート。
pakkuAUR Nim Yes Yes 部分的 Yes Yes Yes Yes Yes 1 bash, zsh ABS のサポート、AUR コメント、PGP 鍵の取得。
pikaurAUR Python Yes Yes 部分的 Yes Yes Yes Yes Yes 1, 2, 3 bash, fish, zsh 動的ユーザー多言語対応、投票・人気度でソート、ニュースの出力
trizenAUR Perl Yes Yes Yes Yes Yes 部分的 Yes Yes 1* bash, zsh, fish デフォルトで自動ビルド (-G で無効化)、AUR コメント。
yayAUR Go Yes Yes 部分的 Yes Yes Yes Yes Yes 1, 2, 3 bash, fish, zsh 投票でソート、PGP 鍵の取得、アーキテクチャの確認
paruAUR Rust Yes Yes 部分的 Yes Yes Yes Yes Yes 1, 2, 3 bash, fish, zsh 投票でソート、PGP 鍵の取得、アーキテクチャの確認。
bauerbillAUR Python Yes Yes Yes Yes Yes Yes Yes No 1 bash, zsh 信頼管理、ABS サポート、Powerpill の拡張。
PKGBUILDerAUR Python 任意 Yes Yes Yes Yes 部分的 Yes No 1* - デフォルトで自動ビルド (-F で無効化)、多言語対応。
auraAUR Haskell 任意 Yes Yes Yes No No No 部分的 1* bash, zsh デフォルトで自動ビルド (--dryrun で無効化)。ダウングレードのサポート、多言語対応。
repofishAUR Bash 任意 Yes N/A No No No Yes Yes 1* - デフォルトで自動ビルド (check または update で無効化)、ローカルリポジトリのサポート。
wrapaurAUR[リンク切れ: パッケージが存在しません] Bash Yes Yes Yes No No No Yes No - - ミラーの更新、ニュース・AUR コメントの出力。
aurgetAUR Bash 任意 Yes N/A No No No No No - bash, zsh 投票でソート。

検索のみ

名前 言語 セキュア 高機能パーサー 高機能ソルバー Git クローン シェル補完 特記事項
pbgetAUR Python Yes Yes N/A Yes - -
yaahAUR Bash Yes Yes N/A 任意 bash -
auracle-gitAUR C++ Yes Yes Yes No - ビルドの順序を表示。
package-queryAUR C Yes No [1] N/A N/A - -
repoctlAUR Go Yes Yes [2] N/A No zsh ローカルリポジトリのサポート。

開発終了または問題あり

以下の表では作者によって開発中止とされたプロジェクトや、セキュア, クリーンビルド, pacman ネイティブ (#ビルドと検索を参照) のどれかに問題を抱えているツールを記載しています。

名前 言語 セキュア クリーンビルド pacman ネイティブ 高機能パーサー 高機能ソルバー 分割パッケージ Git クローン 差分表示 バッチ操作 シェル補完 特記事項
aurelAUR[リンク切れ: パッケージが存在しません] [3] Emacs Lisp Yes N/A N/A N/A N/A N/A No N/A N/A N/A Emacs 統合、自動ビルドなし。
pacaurAUR [4] Bash/C Yes Yes No Yes Yes Yes Yes Yes 1, 3 bash, zsh 多言語対応、投票・人気度でソート。
spinachAUR[リンク切れ: パッケージが存在しません] [5] Bash Yes Yes N/A No No No No No - - -
burgaurAUR[リンク切れ: パッケージが存在しません] [6] Python/C 任意 Yes N/A No No No No No - - cower のラッパー。
packer Bash No Yes Yes No No No No No - - -
yaourtAUR[リンク切れ: パッケージが存在しません] Bash/C No [7] [8] No No No No No 任意 任意 2 bash, zsh, fish バックアップ、ABS のサポート、AUR コメントの表示、多言語対応。

ライブラリ

  • haskell-archlinuxHaskell 言語を使って AUR にアクセスしパッケージのメタデータを取得するためのライブラリ。
https://hackage.haskell.org/package/archlinux || haskell-archlinuxAUR
  • python3-aur — AUR パッケージの情報にアクセスしたり AUR の操作を自動化するための Python 3 モジュール。
https://xyne.archlinux.ca/projects/python3-aur || python3-aurAUR

GUI

警告: グラフィカルなAURヘルパーを使用すると、システムに欠陥が生じる可能性があります。 partial upgrades.
  • Argon — Python で書かれた GTK3 pacman wrapper
https://github.com/14mRh4X0r/arch-argon || argonAUR
  • Cylon — Bash で書かれた TUI pacman wrapper
https://github.com/gavinlyonsrepo/cylon || cylonAUR
  • Pamac — Vala で書かれた libalpm(3) を使用したスタンドアロン GTK3 パッケージマネージャ
https://gitlab.manjaro.org/applications/pamac || pamac-aurAUR
  • Pakku GUI — Python で書かれた pakku 用の GTK3 フロントエンド
pakku-guiAUR || パッケージが存在しないか AUR で検索
  • PkgBrowser — Python で書かれたリポジトリパッケージと AUR 用の Qt5 読み取り専用ブラウザ
https://osdn.net/projects/pkgbrowser/ || pkgbrowserAUR
  • Octopi — Qt 5 pacman wrapper written in C++.
https://tintaescura.com/projects/octopi || octopiAUR
  • Yup — Go で書かれた Curses TUI pacman wrapper
https://github.com/ericm/yup || yupAUR

メンテナンス

  • aur-out-of-date — ホストの API を使って AUR 上流の変更をチェック。
https://github.com/simon04/aur-out-of-date || aur-out-of-dateAUR
  • pkgbuild-watch — 上流のウェブページに変化がないか確認。
http://kmkeen.com/pkgbuild-watch || pkgbuild-watchAUR
  • pkgoutofdate — PKGBUILD からソース URL を分析してバージョン番号を増やしてウェブサーバーにリクエストを送信、新しいバージョンが存在しないか確認。
https://github.com/anatol/pkgoutofdate || pkgoutofdate-gitAUR

アップロード