什麼是 Arch 使用者倉庫(AUR)以及如何使用?

2020-04-13 20:24:00

如果你一直在使用 Arch Linux 或其他基於 Arch 的發行版,如 Manjaro,那麼可能會遇到 AUR。你嘗試安裝新軟體,有人建議從 AUR 中安裝它。這讓你感到困惑。

什麼是 AUR?為什麼使用它?如何使用 AUR?我將在本文中回答這些問題。

什麼是 AUR?

AUR 表示Arch 使用者倉庫Arch User Repository。它是針對基於 Arch 的 Linux 發行版使用者的社群驅動的倉庫。它包含名為 PKGBUILD 的包描述,它可讓你使用 makepkg 從原始碼編譯軟體包,然後通過 pacman(Arch Linux 中的軟體包管理器)安裝。

建立 AUR 的目的是組織和共用社群中的新軟體包,並幫助加速將流行的軟體包納入社群倉庫

進入官方倉庫的大量新軟體包都從 AUR 開始。在 AUR 中,使用者可以貢獻自己的軟體包構建(PKGBUILD 和相關檔案)。

AUR 社群可以對 AUR 中的軟體包進行投票。如果一個軟體包變得足夠流行(假設它具有相容的許可證和良好的打包技術),那麼可以將其加入 pacman 直接存取的社群倉庫中。

簡而言之,AUR 是開發人員在 Arch 倉庫中正式包含新軟體之前向 Arch Linux 使用者提供新軟體的一種方式。

你應該使用 AUR 嗎?有什麼風險?

使用 AUR 就像過馬路一樣。如果你謹慎操作,應該就沒問題。

如果你剛接觸 Linux,建議你在建立有關 Arch/Manjaro 和 Linux 的基礎知識之前不要使用 AUR。

的確,任何人都可以將軟體包上傳到 AUR,但受信任使用者(TU)負責監視上傳的內容。儘管 TU 對上傳的軟體包執行品質控制,但不能保證 AUR 中的軟體包格式正確或沒有惡意。

在實踐中,AUR 似乎很安全,但理論上講它可以造成一定程度的損害,但前提是你不小心。從 AUR 構建軟體包時,聰明的 Arch 使用者總是檢查 PKGBUILD*.install 檔案。

此外,TU(受信任使用者)還會刪除 AUR 中包含在 core/extra/community 中的軟體包,因此它們之間不應存在命名衝突。AUR 通常會包含軟體包的開發版本(cvs/svn/git 等),但它們的名稱會被修改,例如 foo-git。

對於 AUR 軟體包,pacman 會處理依賴關係並檢測檔案衝突,因此,除非你預設使用 –force 選項,否則你不必擔心用另一個包中的檔案會覆蓋另一個包的檔案。如果這麼做了,你可能會遇到比檔案衝突更嚴重的問題。

如何使用 AUR?

使用 AUR 的最簡單方法是通過 AUR 助手。 AUR 助手 是一個命令列工具(有些還有 GUI),可讓你搜尋在 AUR 上發布的軟體包並安裝。

在 Arch Linux 上安裝 AUR 助手

假設你要使用 Yay AUR 助手。確保在 Linux 上安裝了 git。然後克隆倉庫,進入目錄並構建軟體包。

依次使用以下命令:

sudo pacman -S gitsudo git clone https://aur.archlinux.org/yay-git.gitcd yaymakepkg -si

安裝後,你可以使用 yay 命令來安裝軟體包:

yay -S package_name

並非必須使用 AUR 助手來從 AUR 安裝軟體包。從以下文章解如何在沒有 AUR 助手的情況下使用 AUR。

不使用 AUR 助手安裝 AUR 軟體包

如果你不想使用 AUR 助手,那麼也可以自行從 AUR 安裝軟體包。

AUR 頁面上找到要安裝的軟體包後,建議確認“許可證”、“流行程度”、“最新更新”、“依賴項”等,作為額外的品質控制步驟。

git clone [package URL]cd [package name]makepkg -si

例如。假設你要安裝 telegram 桌面包

git clone https://aur.archlinux.org/telegram-desktop-git.gitcd telegram-desktop-gitmakepkg -si

在 Manjaro Linux 中啟用 AUR 支援

它預設情況下未啟用 AUR,你必須通過 pamac 啟用它。我的筆記型電腦執行 Manjaro Cinnamon,但是所有 Manjaro 變種的步驟都相同。

開啟 Pamac(顯示為 “Add/Remove Software”):

進入 Pamac 後,請進入如下所示的偏好設定preferences

在偏好設定對話方塊中,進入 “AUR” 索引標籤,啟用 AUR 支援,啟用檢查更新,並關閉對話方塊。

現在,你可以搜尋軟體包,並且可以通過軟體包描述下的標籤來識別屬於 AUR 的軟體包。

希望本文對你有用,並關注社交媒體上即將出現的與 Arch 相關的主題。