「AUR ヘルパー」の版間の差分
ナビゲーションに移動
検索に移動
(前文情報更新) |
(→ビルドと検索: 英語版に追従して内容と項目をを更新) |
||
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 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-pyalsaaudioAUR と python2-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-archlinux — Haskell 言語を使って AUR にアクセスしパッケージのメタデータを取得するためのライブラリ。
- python3-aur — AUR パッケージの情報にアクセスしたり AUR の操作を自動化するための Python 3 モジュール。
GUI
- Argon — Python で書かれた GTK3 pacman wrapper
- Cylon — Bash で書かれた TUI pacman wrapper
- Pamac — Vala で書かれた libalpm(3) を使用したスタンドアロン GTK3 パッケージマネージャ
- Pakku GUI — Python で書かれた pakku 用の GTK3 フロントエンド
- PkgBrowser — Python で書かれたリポジトリパッケージと AUR 用の Qt5 読み取り専用ブラウザ
- Octopi — Qt 5 pacman wrapper written in C++.
- Yup — Go で書かれた Curses TUI pacman wrapper
メンテナンス
- aur-out-of-date — ホストの API を使って AUR 上流の変更をチェック。
- pkgbuild-watch — 上流のウェブページに変化がないか確認。
- pkgoutofdate — PKGBUILD からソース URL を分析してバージョン番号を増やしてウェブサーバーにリクエストを送信、新しいバージョンが存在しないか確認。
アップロード
- aur4_import.sh — git リポジトリから複数のパッケージにパッケージを分割します (コミットするたびに
.SRCINFO
を追加・更新)。 - aur4_make_submodule.sh — AUR 4 サブモジュールによって巨大な git リポジトリのパッケージを置き換えます。
- aurpublish — git サブツリー として AUR パッケージを管理します。
.SRCINFO
ファイルの生成とPKGBUILD
のチェック、コミットメッセージの作成 は同じ リポジトリ にある git フックによって行うことができます。