AUR 助手
警告: Arch Linux 不對 AUR 助手相關問題提供支持。您應當熟悉手動構建過程,以準備好解決可能遇到的問題。
提示:優先使用討論頁而非編輯此文:Talk:AUR 助手。
使用 Arch 用戶倉庫時,AUR 助手可以自動完成以下任務:
- 查找 AUR 上發布的包;
- 解析 AUR 包之間的依賴關係;
- 獲取並構建 AUR 軟件包;
- 獲取在線內容,例如用戶評論;
- 提交 AUR 軟件包。
Pacman 只處理其倉庫內預構建的軟件包的更新。AUR 軟件包以 PKGBUILD 的形式分發,並需要 AUR 助手自動完成構建。然而切記:即使該包自身沒有更新,但其依賴的共享庫(shared library)有更新,您可能仍需重新構建該包。
說明[編輯 | 編輯原始碼]
#對比表各表頭釋義:
- 文件檢查
- 默認不 source PKGBUILD;或在此之前,提醒並允許用戶手動檢查 PKGBUILD。有些助手會在用戶能檢查 PKGBUILD 之前就執行了 source,給隱含的惡意代碼帶來可能性。
- 差異比較:有能力檢查包之間差異。除了 PKGBUILD,還要檢查對附加文件的改動,例如
.install
或.patch
文件。 - Git clone
- 默認使用 git-clone(1) 從 AUR 獲取構建文件。
- 可靠的解析器:能通過運用提供的元數據 (RPC/.SRCINFO) 而非解析 PKGBUILD 來處理複雜軟件包,例如 aws-cli-gitAUR。
- 可靠的求解器:有能力正確解決並構建複雜的依賴鏈,例如 ros-melodic-desktopAUR。
- 包拆分:有能力正確地構建並安裝:
-
- 對於有相同包基礎的多個軟件包,不重複構建和安裝其基礎,例如 clionAUR。
- 拆分依賴於同一基礎的多個軟件包,例如 samsung-unified-driverAUR。
- 獨立拆分軟件包,例如 nxproxyAUR 以及 nxagentAUR。
注意:
- 可選 意味着該功能可用,但是需要通過命令行參數或配置文件啟用。
- 部分 意味着該功能尚未完全實現,或與給定標準有部分差異。
對比表[編輯 | 編輯原始碼]
查找並下載[編輯 | 編輯原始碼]
名稱 | 編寫語言 | 文件檢查 | 差異比較 | Git clone | 可靠的解析器 | 可靠的求解器 | Shell 補全 | 特性 |
---|---|---|---|---|---|---|---|---|
auracle-gitAUR | C++ | 是 | 否 | 是 | 是 | 是 | bash | 顯示構建順序 |
pbgetAUR | Python | 是 | 否 | 是 | 是 | – | – | – |
repoctlAUR | Go | 是 | 否 | 否 | 是 | – | bash, zsh, fish | 本地倉庫 |
yaahAUR | Bash | 是 | 否 | 可選 | 是 | – | bash | – |
查找並構建[編輯 | 編輯原始碼]
名稱 | 編寫語言 | 文件檢查 | 差異比較 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | Shell 補全 | 特性 |
---|---|---|---|---|---|---|---|---|---|
aurutilsAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh | 本地倉庫,應用本地補丁,包簽名,乾淨的 chroot |
bauerbillAUR | Python | 是 | 否 | 是 | 是 | 是 | 是 | bash, zsh | bb-wrapper 用於 pacman 封裝和信任管理
|
PKGBUILDerAUR | Python | 否 | 否 | 是 | 是 | 是 | 部分 | – | pb 用於 pacman 封裝
|
ruaAUR | Rust | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh, fish | l應用本地補丁,bubblewrap, .pkg.tar 檢查
|
Pacman 封裝[編輯 | 編輯原始碼]
名稱 | 編寫語言 | 文件檢查 | 差異比較 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | 不安全標誌 | Shell 補全 | 特性 |
---|---|---|---|---|---|---|---|---|---|---|
auraAUR | Haskell | 否 | 部分 | 是 | 是 | 是 | 是 | – | bash, fish, zsh | – |
aurmanAUR | Python | 是 | 是 | 是 | 是 | 部分 | 是 | -Sy --ask |
bash, fish | 提取 PGP 密鑰 |
pacaurAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | --ask | bash, zsh | – |
pakkuAUR | Nim | 是 | 是 | 是 | 是 | 是 | 是 | -Sy | bash, zsh | – |
paruAUR | Rust | 是 | 是 | 是 | 是 | 是 | 是 | -Sy --ask |
bash, fish, zsh | 本地倉庫,乾淨的 chroot |
pikaurAUR | Python | 是 | 是 | 是 | 是 | 是 | 是 | -Sy | bash, fish, zsh | 動態用戶 |
trizenAUR | Perl | 是 | 是 | 是 | 是 | 是 | 部分 | – | bash, fish, zsh | – |
yayAUR | Go | 是 | 是 | 是 | 是 | 是 | 是 | --ask | bash, fish, zsh | – |
圖形化[編輯 | 編輯原始碼]
警告: 使用圖形化的 AUR 助手可能導致系統缺陷,例如執行無人值守的部分更新。
- Argon — 使用 python 編寫的 GTK 3 pacman 封裝。
- Cylon — 使用 Bash 編寫的 TUI(終端界面)pacman 封裝。
- Kalu — 系統托盤通知圖標,使用 libalpm 和 PolicyKit 編寫,有可選的更新器。
- Octopi — 使用 C++ 編寫的 Qt 5 pacman 封裝。
- Pacseek — 一個終端用戶界面封裝,可以查找並安裝 Arch Linux 軟件包。
- Pamac — 使用 libalpm(3)、為 Manjaro 編寫的、獨立的 GTK 4(或終端界面)包管理器。有托盤程序;也可在命令行界面中使用。
- Pakku GUI — 使用 python 編寫的 pakku 的 GTK 3 前端。
- PkgBrowser — 使用 python 編寫的 Qt 5 程序、查看官方倉庫/AUR 軟件包的只讀瀏覽器。
- Yup — 使用 Go 和 Ncurses 編寫的 TUI pacman 封裝。
維護[編輯 | 編輯原始碼]
- aur-out-of-date — 藉助主機服務提供者的 API,檢查 AUR 軟件包的上游更改。
- aurpublish — AUR 助手腳本:藉助 git-subtree(1) 管理和上傳 AUR 軟件包。會使用 githooks(5) 校驗 PKGBUILD,自動生成 .SRCINFO,以及創建需提交信息的模板。
- devtools — 在乾淨的環境(systemd-nspawn 容器)中構建軟件包,以確保正確性。被 aurutilsAUR,clean-chroot-managerAUR,和 paruAUR 封裝。
- pkgoutofdate — 解析 PKGBUILD 中的源 URL,並以發送遞增版本號的方式,嘗試尋找軟件包的較新版本。
- repman — 用於管理本地和遠程倉庫的命令行工具。
其他[編輯 | 編輯原始碼]
- aur-talk — 提取並顯示 AUR 評論。
- aurvote-utils — 一系列管理 AUR 投票的實用工具。
- haskell-aur — 用於訪問 Aurweb RPC 界面的 Haskell 庫。
- package-query — 用於查詢 libalpm(3) 和 AUR 的工具。
- python3-aur — 用於訪問 AUR 包信息、自動化 AUR 交互過程的 Python 3 模塊和 AUR 助手工具。
- raur — 用於訪問 Aurweb RPC 界面的 Rust 庫。