AUR 助手
警告:AUR 助手不受 Arch Linux 官方支持。您應當熟悉手動構建過程,以準備好解決可能遇到的問題。
提示:優先使用討論頁而非編輯此文:Talk:AUR 助手。
使用 Arch 用戶倉庫時,AUR 助手可以自動完成以下任務:
- 查找 AUR 上發布的包;
- 解析 AUR 包之間的依賴關係;
- 獲取並構建 AUR 軟體包;
- 獲取在線內容,例如用戶評論;
- 提交 AUR 軟體包。
Pacman 只處理其倉庫內預構建的軟體包的更新。AUR 軟體包以 PKGBUILD 的形式分發,並需要 AUR 助手自動完成構建。然而切記:即使該包自身沒有更新,但其依賴的共享庫(shared library)有更新,您可能仍需重新構建該包。
說明
#對比表各表頭釋義:
- 文件檢查
- 默認不 source PKGBUILD 文件;或在 source 之前,提醒並允許用戶手動檢查 PKGBUILD。有些助手會在用戶能夠檢查 PKGBUILD 之前就執行 source,為潛在的惡意代碼放行。
- 差異比較
- 有能力檢查包之間差異。不只是
PKGBUILD文件,還要堅持對其他文件的改動,例如.install或.patch文件。 - Git clone
- 默認使用 git-clone(1) 從 AUR 獲取構建文件。
- 可靠的解析器
- 能運用提供的元數據 (RPC/
.SRCINFO) 而非解析PKGBUILD文件來處理複雜軟體包,例如 aws-cli-gitAUR。 - 可靠的求解器
- 有能力正確解決並構建複雜的依賴鏈,例如 iri-git-metaAUR。
- 包拆分
- 有能力正確地構建並安裝:
- 對於有相同包基礎的多個軟體包,不重複構建和安裝其基礎,例如 clionAUR。
- 拆分依賴於同一基礎的多個軟體包,例如 samsung-unified-driverAUR。
- 獨立拆分軟體包,例如 nxproxyAUR 以及 nxagentAUR。
注意:
- 可選 意味著該功能可用,但是需要通過命令行參數或配置文件啟用。
- 部分 意味著該功能尚未完全實現,或與給定標準有部分差異。
對比表
查找並下載
| 名稱 | 編寫語言 | 文件檢查 | 差異比較 | Git clone | 可靠的解析器 | 可靠的求解器 | Shell 補全 | 特性 |
|---|---|---|---|---|---|---|---|---|
| auracle-gitAUR | C++ | 是 | 否 | 是 | 是 | 是 | bash | 顯示構建順序 |
| repoctlAUR | Go | 是 | 否 | 否 | 是 | – | bash, zsh, fish | 本地倉庫 |
查找並構建
| 名稱 | 編寫語言 | 文件檢查 | 差異比較 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | Shell 補全 | 特性 |
|---|---|---|---|---|---|---|---|---|---|
| aurutilsAUR | Bash | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh | 本地倉庫,應用本地補丁,包簽名,乾淨的 chroot |
|
pat-aur-host-gitAUR pat-aur-client-gitAUR |
Elvish | 是 | 是 | 是 | 是 | 是 | 是 | bash, zsh, elvish | 本地倉庫, 本地補丁應用程式,包簽名, 乾淨的 chroot(通過 bubblewrap),交叉編譯 |
Pacman 封裝
| 名稱 | 編寫語言 | 文件檢查 | 差異比較 | Git clone | 可靠的解析器 | 可靠的求解器 | 包拆分 | 不安全標誌 | Shell 補全 | 特性 |
|---|---|---|---|---|---|---|---|---|---|---|
| auraAUR | Rust | 否 | 部分 | 是 | 是 | 是 | 是 | – | bash, fish, zsh | 乾淨的 chroot |
| 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 封裝。
- Bauh — 使用 Python 編寫的 Qt 5 應用,支持 AppImage,Debian,Arch 軟體包(含 AUR),Flatpak,Snap 以及 原生 Web 應用。
- Cylon — 使用 Bash 編寫的 TUI(終端用戶界面)pacman 封裝。
- Kalu — 系統托盤通知圖標,使用 libalpm 和 PolicyKit 編寫,有可選的更新器。
- Octopi — 使用 C++ 編寫的 Qt 5 pacman 封裝。
- Pacsea — 快速、鍵盤友好型 TUI,可用於瀏覽、安裝 Arch 和 AUR 軟體包,使用 Rust 編寫。
- Pacseek — 一個終端用戶界面封裝,可以查找並安裝 Arch Linux 軟體包。
- Pamac — 使用 libalpm(3)、為 Manjaro 編寫的、獨立的 GTK 4(或終端界面)包管理器,有托盤集成。
- Pakku GUI — 使用 python 編寫的 pakku 的 GTK 3 前端。
- PkgBrowser — 使用 python 編寫的 Qt 5 程序、查看官方倉庫/AUR 軟體包的只讀瀏覽器。
- SPM — 一個 TUI pacman 和 yay 的封裝,視覺化、交互化包管理。
- Yup — 使用 Go 和 Ncurses 編寫的 TUI pacman 封裝。
維護
- aur-out-of-date — 藉助主機服務提供者的 API,檢查 AUR 軟體包的上游更改。
-
aurpublish — AUR 助手腳本:藉助 git-subtree(1) 管理和上傳 AUR 軟體包。會使用 githooks(5) 校驗
PKGBUILD文件,自動生成.SRCINFO文件,以及創建需提交信息的模板。
- devtools — 在乾淨的環境(systemd-nspawn 容器)中構建軟體包,以確保正確性。被 auraAUR,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 模塊和 AUR 助手工具。
- raur — 用於訪問 Aurweb RPC 界面的 Rust 庫。
參見
- 適用於 Arch Linux 的圖形化包管理器 (DebugPoint, 2023) 提供#圖形化中某些選項的截屏和簡單信息。