若是你一直在使用 Arch Linux 或其餘基於 Arch 的發行版,如 Manjaro,那麼可能會遇到 AUR。你嘗試安裝新軟件,有人建議從 AUR 中安裝它。這讓你感到困惑。php
什麼是 AUR?爲何使用它?如何使用 AUR?我將在本文中回答這些問題。linux
AUR 表示Arch 用戶倉庫。它是針對基於 Arch 的 Linux 發行版用戶的社區驅動的倉庫。它包含名爲 PKGBUILD 的包描述,它可以讓你使用 makepkg 從源代碼編譯軟件包,而後經過 pacman(Arch Linux 中的軟件包管理器)安裝。ios
建立 AUR 的目的是組織和共享社區中的新軟件包,並幫助加速將流行的軟件包歸入社區倉庫。git
進入官方倉庫的大量新軟件包都從 AUR 開始。在 AUR 中,用戶能夠貢獻本身的軟件包構建(PKGBUILD 和相關文件)。github
AUR 社區能夠對 AUR 中的軟件包進行投票。若是一個軟件包變得足夠流行(假設它具備兼容的許可證和良好的打包技術),那麼能夠將其加入 pacman
直接訪問的社區倉庫中。安全
簡而言之,AUR 是開發人員在 Arch 倉庫中正式包含新軟件以前向 Arch Linux 用戶提供新軟件的一種方式。ruby
使用 AUR 就像過馬路同樣。若是你謹慎操做,應該就沒問題。bash
若是你剛接觸 Linux,建議你在創建有關 Arch/Manjaro 和 Linux 的基礎知識以前不要使用 AUR。svn
的確,任何人均可以將軟件包上傳到 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 助手 是一個命令行工具(有些還有 GUI),可以讓你搜索在 AUR 上發佈的軟件包並安裝。
假設你要使用 Yay AUR 助手。確保在 Linux 上安裝了 git。而後克隆倉庫,進入目錄並構建軟件包。
依次使用如下命令:
sudo pacman -S git
sudo git clone https://aur.archlinux.org/yay-git.git
cd yay
makepkg -si
複製代碼
安裝後,你可使用 yay
命令來安裝軟件包:
yay -S package_name
複製代碼
並不是必須使用 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.git
cd telegram-desktop-git
makepkg -si
複製代碼
它默認狀況下未啓用 AUR,你必須經過 pamac
啓用它。個人筆記本電腦運行 Manjaro Cinnamon,可是全部 Manjaro 變種的步驟都相同。
打開 Pamac(顯示爲 「Add/Remove Software」):
進入 Pamac 後,請進入以下所示的首選項。
在首選項對話框中,進入 「AUR」 選項卡,啓用 AUR 支持,啓用檢查更新,並關閉對話框。
如今,你能夠搜索軟件包,而且能夠經過軟件包描述下的標籤來識別屬於 AUR 的軟件包。
但願本文對你有用,並關注社交媒體上即將出現的與 Arch 相關的主題。
做者:Dimitrios Savvopoulos 選題:lujun9972 譯者:geekpi 校對:wxy