「轉載」Archlinux 的靈魂──PKGBUILD、AUR 和 ABS

文章轉載自:https://linuxtoy.org/archives/archlinux-pkgbuild-aur-and-abs.html

第一部分:PKGBUILD 和 makepkg

其實,我使用 Archlinux 的時間并不是很長。可是,就是在這半年的時間內,我感覺我學到了很多的東西,對 GNU/Linux 有了更多的了解,也在這個過程中深深地愛上了 Archlinux 這個發行版。

首先聲明一下,我不是一個程序員,從來沒有寫過真正的 Code,頂多是寫一點 scripts,或者做一些簡單的網頁什么的。和很多人一樣,我對計算機的接觸是從 DOS/Windows 開始的。Windows 的圖形界面很容易學。可是時間長了,Windows 就會運行的越來越慢,我的硬盤上也就會有很多我根本不知道是什么的東西。而且,在 Windows 上很多東西都是設定好的,改變起來非常不容易。不要跟我提注冊表,那個東西實在是讓我一頭霧水。還有,大部分 Windows 上的軟件都不是自由軟件。這意味著人們很難了解這些軟件內部的情況,你可能在毫無察覺的情況下就中了病毒或木馬。

所以,為了能夠完全了解和控制我每天工作生活要用的計算機,我開始學著使用 GNU/Linux。我一開始是用 Mandriva(那個時候還叫 Mandrake Linux)。后來是 Ubuntu(也包括其他一些 Debian 為基礎的發行版)。Wow!我一用上 Ubuntu 就有了完全不同的感覺。特別是非常好用的 apt-get,加上龐大的自由軟件庫,讓我大開眼界。可是在使用 Ubuntu 一段時間以后,我發現這個平臺實在和 Windows 非常相似。Gnome 和 KDE 的界面都是在模仿 Windows。更糟糕的是,Ubuntu 會在一開始安裝一些亂七八糟的東西,大大影響了我的電腦的運行速度。我需要一點一點把我不用的東西去掉,這個過程真的很不爽。我開始問自己為什么要放棄 Windows 呢?

Ubuntu 有一個很大很好的用戶社區,很多問題都可以在討論區得到解決。然而,Ubuntu 的用戶完全要依賴 Maintainer。我就有過這樣的經歷,在發現一個 Bug 后得到很多其他人的確定,可是 Maintainer 遲遲不作修改。還有,也許有很多人都很想用一個比較新的軟件,但是大家都要等到有人能夠而且愿意作 Maintainer 之后,這個軟件才會在 Repository 里出現。我或許能夠在調試后自己從源代碼編譯,可是我要如何和別人分享我的成果呢?

其實,各種 Linux 發行版在本質上沒有什么不一樣。大家使用的軟件都是要從源代碼編譯生成可以運行的二進制碼。如果沒有 rpm、apt-get 或者 pacman,我們也是可以快樂生活的。只不過,我們的生活會變得麻煩一些。如果要從源碼安裝一個軟件,我們通常是要做如下的步驟:

wget http://somewhere.org/source/package.tar.gz(下載源代碼) tar xvzf package.tar.gz (解壓縮) cd package (進入源代碼目錄) ./configure (設定) make (編譯) make install (安裝)

如果我們要像這樣安裝一個兩個軟件是沒有什么問題的。但是如果我們要對付成百上千的軟件/類庫的話,這樣的土辦法是行不通的。于是出現了不同的 Linux 發行版,他們之間的區別只是在于如何管理成百上千的軟件,特別是不同軟件/類庫之間互相依存的關系,也就是 dependency 的問題。

大多數 Linux 發行版都是以二進制包為基礎的,這其中又分 Redhat(還有 SUSE、Fedora 等)、Debian(還有 Ubuntu、PCLinux 等)和 Slackware 陣營。為了解決管理大量軟件包的問題,這些發行版采取了這樣一個辦法。他們找了一群大牛程序員來作 Maintainer,這些 Maintainer 負責把源代碼編譯成二進制碼,加上一些控制信息(比如如何安裝、dependency 等),然后一起打包放在服務器上。所以,最終用戶根本不用接觸源代碼。如果你有興趣的話,你可以抓一個 Debian 的 DEB 文件下來研究一下:
wget http://somewhare.org/package.deb ar vx package.deb

你會發現你多了三個文件:
debian-binary control.tar.gz data.tar.gz

然后再用 tar tzvf 命令看一看 control.tar.gz 和 data.tar.gz 里面有什么東東,你就明白神奇的 dpkg/apt-get 是怎么一回事情了。

二進制包固然是很方便,但是這種辦法有一個很大的問題。那就是最終用戶受到 Maintainer 很大的控制。比如說,我們并不知道 Maintainer 在編譯的過程中是如何設定的(./configure)。如果我們要用不同的設定,就要自己從源代碼從頭開始。另外,如果某一個 Maintainer 心術不正,在二進制包里面加了木馬程序,我們這些最終用戶是很難查覺的。還有,設想一下如果某一個 Maintainer 外出休假了,那么你的軟件也就不能及時更新了。

所以,也有一些發行版采取了完全不同的辦法,這些發行版是以源代碼為基礎的。Gentoo 就是其中的代表。如果你用過 Gentoo 你就會知道 ebuild 文件。你如果有興趣,可以從 http://gentoo-package.com 抓一個 ebuild 文件研究一下。你會明白 Gentoo 的用戶其實從 Gentoo 得到的只有這些 ebuild 文件,在每一個 ebuild 文件里包含了安裝使用一個軟件需要的所有信息(從哪里下載源代碼、如何編譯、如何安裝還有 Dependency 的問題等)。之后,Gentoo 的用戶用 emerge 命令按照 ebuild 文件的指示編譯、安裝一個軟件。這樣做的好處是,Gentoo 的用戶可以一目了然地了解每一個軟件的編譯、安裝的過程。如果需要的話,Gentoo 的用戶可以修改 ebuild,按照自己的需要編譯一個軟件。

我也用過 Gentoo。不過對于我這樣的初學者,Gentoo 實在是太復雜了,有太多的參數要設定,ebuild 的編寫也不是那么簡單。還有,Gentoo 幾乎不提供任何二進制包,所以絕大部分的軟件都要從源代碼編譯,這是一個非常慢的過程。其實在大部分情況下,用戶對一些軟件的設定都是差不多的,沒有必要讓每一個 Gentoo 的用戶都從頭編譯。所以,我需要找到一個發行版,既有 Debian 的易用性,又有 Gentoo 的靈活性。

我因此找到了 Archlinux。那么 Archlinux 又是如何解決從源代碼到二進制碼的問題呢?Archlinux 使用了 makepkg 這樣一個工具。makepkg 會按照 PKGBUILD 文件生成一個二進制包。有些時候,makepkg 還需要 install 文件(主要用來顯示提示信息、備份用戶設置等)和其他的配置文件。那么 PKGBUILD 是什么呢?PKGBUILD 和 Gentoo 的 ebuild 一樣,包含了安裝使用一個軟件需要的所有信息。下面是 dwm(一個非常非常簡捷、高效的窗口管理器)的 PKGBUILD 文件:

# Contributor: Dag Odenhall <dag.odenhall@gmail.com>
# Contributor: Grigorios Bouzakis <grbzks@gmail.com> 是誰寫了這個 PKGBUILD
pkgname=dwm 軟件名稱
pkgver=4.7                                  
pkgrel=1 版本信息
pkgdesc="A dynamic window manager for X"            
url="http://www.suckless.org/wiki/dwm" 軟件說明和網站
arch=('i686' 'x86_64') 適用平臺
license=('MIT') 版權
depends=('libx11') Dependency  
install=dwm.install install 文件
source=(http://www.suckless.org/download/$pkgname-$pkgver.tar.gz   
   config.h) 要下載的源文件
md5sums=('827b128514a3edb87e208e84fee0eb3f'
         '395e9a25f65605c4891e74c644b91530') md5 驗證碼

build() {
  cd $startdir/src/$pkgname-$pkgver

  cp ../config.h .

  make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 || return 1
  make PREFIX=/usr DESTDIR=$startdir/pkg install || return 1

  install -m644 -D LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE &&   
 install -m644 -D README $startdir/pkg/usr/share/doc/$pkgname/README
} 編譯的過程

我們可以注意到在“編譯的過程”這個部分,很多代碼都和我們在 shell 里編譯的命令一樣。對!Archlinux 不要求用戶學習太多新的東西,PKGBUILD 很容易理解,因為里面都是基本的 shell 命令。

好,我們把 PKGBUILD,dwm.install 和 config.h(dwm 比較特殊,config.h 包含所有的配置信息,所以要在編譯之前提供。其他的軟件大多依靠外部的配置文件,像是 .bashrc 等)放在一個新的目錄里之后。我們執行:

makepkg

之后,你會發現這個目錄里出現了一些新的東西,包括:
dwm-4.7-1-x86_64.pkg.tar.gz dwm-4.7.tar.gz

兩個文件,還有兩個目錄
src pkg

通過比較這些文件、目錄里的內容和 PKGBUILD,你就會明白 makepkg 到底做了些什么:

  1. 根據 source 里的內容下載了源代碼文件 dwm-4.7.tar.gz;
  2. 通過 md5 驗證碼確定下載的源代碼文件和 PKGBUILD 的作者使用的是一致的;
  3. 把源代碼文件解壓縮到 ./src/pkgname-pkgver (也就是 ./src/dwm-4.7);
  4. 按照 build() 里的內容編譯源代碼,并把編譯好的內容放在 ./pkg 里;
  5. 在 ./pkg 里加上其他的一些信息,包括 .PKGINFO 和 .INSTALL,也就是 dwm.install 的拷貝;
  6. 把 ./pkg 里面的內容打包形成 dwm-4.7-1-x86_64.pkg.tar.gz。

那么,我們有了一個 .pkg.tar.gz 這樣一個二進制包之后,我們要如何安裝呢?我們要使用這樣一個命令:

pacman -U dwm-4.7-1-x86_64.pkg.tar.gz

這個命令又完成了那些事情呢?

  1. 首先,二進制包被解壓縮;
  2. 按照 .INSTALL 的內容執行一定的命令;
  3. 二進制包里面的內容會被拷貝到相應的目錄(你注意到二進制包內的目錄結構了嗎?);
  4. 在 /var/lib/pacman/local 這個目錄中建立 dwm-4.7-1 這樣一個目錄;
  5. 這個目錄里包含了四個文件 depends、desc、files 和 install;
  6. depends 記錄了 dependency,desc 是軟件說明,files 記錄了每一個安裝到系統上的文件的路徑,install 就是 .INSTALL 的拷貝。

從這以后,pacman 正是通過檢查 /var/lib/pacman/local 里的內容來管理軟件包的。比如說,在執行 pacman -R dwm 的過程中,pacman 首先在 /var/lib/pacman/local 找到了 dwm-4.7-1 這個目錄,然后根據 files 的內容刪除已安裝的內容。Dependency 也是通過 depends 計算的。

OK!我已經解釋了 PKGBUILD 的基本結構和 makepkg 的過程。基本上是兩步:從 PKGBUILD 到 .pkg.tar.gz 包,再從二進制包安裝到系統。這樣一種辦法有很多好處。首先,PKGBUILD 非常方便用戶交流。我的一個 PKGBUILD 如果編譯成功了,就可以給別人用。PKGBUILD 的內容一目了然,不但有助于學習,也再不用擔心木馬的問題了。

另外,我通過一個小例子展現 Archlinux 的靈活性在哪里。比如,我要對 dwm 有自己的設置,也就是自己的 config.h,那我應該怎么做呢?我會做如下的事情:

  1. 編輯 config.h,另存為 myconfig.h;
  2. 編輯 PKGBUILD,把所有的 config.h 替換為 myconfig.h;
  3. 把 pkgrel 變成 2。

之后通過 makepkg,我會得到一個文件 dwm-4.7-2-x86_64.pkg.tar.gz,這個和原來的 dwm-4.7-1-x86_64.pkg.tar.gz 可以區別開。我可以安裝 dwm-4.7-2-x86_64.pkg.tar.gz,如果有問題我還可以通過 pacman -U dwm-4.7-1-x86_64.pkg.tar.gz 來安裝原來的二進制包。我還可以用同樣的辦法生成一系列的 .pkg.tar.gz 包,這在軟件的安裝調試過程中非常有用。

好了,今天就講到這里。有些人也許變得更疑惑了,因為在 TOY 的“打造完美的 Linux 桌面 — Arch Linux 2007.08-2”系列中并沒有提到 PKGBUILD 的問題,所有的軟件都是通過 pacman -S 來安裝的。

沒關系,如果你理解了 makepkg 和 PKBGUILD,那么在我下一次談到 AUR 和 ABS 之后,你就能完全明白了。

Title: Archlinux 的靈魂──PKGBUILD、AUR 和 ABS (2) Date: 2008-02-29 09:29 Author: Ning Bao Category: Featured Slug: archlinux-pkgbuild-aur-and-abs-2

這是《Archlinux 的靈魂──PKGBUILD、AUR 和 ABS》一文的第二部分,主要介紹 AUR 和 ABS。上接第一部分:PKGBUILD 和 makepkg

作者 / Ning Bao

第二部分:AUR 和 ABS

我非常高興看到我關于 PKGBUILD 和 Makepkg 的文章在 LinuxTOY 受到了歡迎。我想先針對一些讀者的回復談一點題外話。我先聲明我一點也沒有要詆毀 Debian 或 Gentoo 的意思,他們都是非常偉大的發行版,都有自己的特色。其實大多數的發行版都可以自己去定制,從而達到類似的目的。比如說,有的人提到 Gentoo 也有二進制包,比如像 Openoffice 這樣的怪物。然而,我個人以為比較不同的發行版關鍵是要看它最核心的設計思想。比如說,Gentoo 根本就不是為了使用二進制包設計的。你要是都想用二進制包,就別費勁用 Gentoo 了。關于 Debian 陣營的發行版,我也想講幾句。正如一些朋友的回復所講,DEB/apt-get 是非常好的管理工具,軟件庫也非常的大。我的筆記本現在還在用 elive,也是 Debian 的分支。我不喜歡 Debian 系列的發行版的原因不是它不能定制,而是他們非常依靠 Maintainer。我們可以自己做 DEB 包,然后呢?你的 DEB 包什么時候才能進入軟件庫呢?還有,只有你自己知道你的 DEB 是怎么做的,別人不能了解你編譯打包的過程。Debian 本身打包的過程沒有 Archlinux 的 PKGBUILD 來的簡單明了。只要比較 Debian 的 Maintainer 手冊和 Archlinux 的 Wiki 就可以看出這一點。

選擇什么樣的發行版完全是要看個人需要。我選擇 Archlinux,是因為它當初設計的時候就是要滿足“KISS Rule”,也就是“Keep It Simple, Stupid”。或者說像愛因斯坦講得:“Everything should be made as simple as possible, but no simpler”。Archlinux 的所有配置基本都是非常相似的腳本,加上簡單靈活的 PKGBUILD 和 pacman,其實關于 Archlinux 本身真的沒有太多新的東西要學習。大家有興趣可以看看“Arch Compared To Other Distros”。Archlinux 實際上是強迫用戶從零開始自己定制自己的系統,在這個過程中也就真正了解了 Linux 本身。

好了,現在言歸正傳談一談 AUR 和 ABS。

AUR 是指 Archlinux User-community Repository,也就是 Archlinux 用戶社區的軟件庫。我們現在回憶一下在 Archlinux 中我們把源代碼變成可以運行的二進制碼需要哪些文件。我們需要:PKGBUILD,可能還有 .install 文件,加上一些補丁和必要的配置文件(像 dwm 的 config.h)。這樣就足夠了!當你成功使用 PKGBUILD 編譯安裝了一個新軟件之后就可以通過 AUR 和其他的人分享你的成果了。具體的步驟是:

  1. tar -zcvf package.tar.gz package-dir 把 package-dir 中所有所需的文件打包(包括 PKGBUILD,.install,patch 和其他的 config 等)
  2. 前往 http://aur.archlinux.org 選擇"Submit”(參照下圖),并把你的 package.tar.gz 上傳

AUR 會自動根據你的 PKGBUILD 內容把你的 Package 加到 AUR 里來。就是這么簡單!那么有人會問:“別的用戶要如何使用 AUR 呢?”

這個就更簡單了,我們還是用一張截圖來解釋:

  1. 首先下載“Tarball”(紅色的圈圈),這個 Tarball 和你上傳的內容是一樣的,無非是 PKGBUILD 什么的;
  2. tar xvzf package.tar.gz 然后解壓縮;
  3. 然后的步驟你應該知道了,那就是 makepkg 還有 pacman -U。

不過需要提醒的是,為了對自己負責,你應該在編譯之前讀一下 PKGBUILD 和 .install 的內容,確定里面沒有惡意的代碼。另外,我建議你一般不要以 root 的身份進行 makepkg。其實,makepkg 本身也做了這樣的限制,你不加— asroot 的選項是不能 makepkg 的。這是因為,makepkg 會執行 PKGBUILD 里 build() 部分的代碼。想一想,如果有人在 build() 這部分加了這么一句“rm -r /home”,你就死定了!

如果你注意到,在每個 AUR Package 的網頁上都有投票(綠色的圈圈)和回復的功能(藍色的圈圈)。這些是幫助用戶反饋意見的。

有些性急的朋友可能要問這個 AUR 和 pacman 取得的二進制包有什么聯系?你應該記住,只要是 Archlinux,所有的東西一定是從 PKGBUILD 開始的。你通過 pacman 得到的二進制包也是從 PKGBUILD 編譯而成的。在你的 /etc/pacman.conf 有很多 Repository 的設置,其中的 [core] 和 [extra] 是由 Archlinux 的核心成員維護的,這些軟件庫里的軟件由于特別重要,每個人都要用,所以 Archlinux 的開發人員把二進制包提前做好,你就可以通過 pacman 取得了。然而,和 Debian 的 Maintainer 機制不一樣,最終的用戶可以很容易的了解這些軟件的編譯過程。如果需要的話,最終用戶可以改變設置,重新編譯這些軟件。最典型的情形就是自己編譯 kernel 的時候。這要通過 ABS 來解釋清楚。ABS,也就是 Archlinux Build System。首先我們要安裝 ABS:

  1. pacman -S abs
  2. vi /etc/abs/abs.conf 編輯 ABS 的配置文件;
  3. 你會看到這樣一行 SUPFILES=(core extra !unstable community !testing),把你需要的 Repo 之前的 ! 去掉;
  4. 然后以 root 身份執行 abs

之后又要如何使用 ABS 呢?ABS 所作的事情無非是把所有 Repo 里的軟件的 PKGBUILD 下載到你本地的硬盤中。這些 PKGBUILD 都放在了 /var/abs 中。你能通過 pacman 直接安裝的二進制包其實也都是按照 ABS 的內容編譯的。下面我還是用 dwm 的例子解釋 ABS 的使用:

  1. su
  2. cd /var/abs 你可以看到這個目錄里有 core,extra,community 三個子目錄,正如 abs.conf 中的設定;
  3. mkdir local 建立一個 local 目錄,用來放你自己需要的軟件的 PKGBUILD
  4. chown username:usergroup ./local makepkg 要以非 root 身份進行
  5. exit 退出 su
  6. cd local
  7. cp -r ../community/x11/dwm ./ 從 ABS 中拷貝 dwm 的內容
  8. cd dwm

下面不用我說了,你在這個目錄里可以看到三個文件 PKGBUILD、dwm.install、config.h。你于是可以用 makepkg 和 pacman -U 來按照自己喜歡的方式安裝 dwm。

OK,你實際已經清楚了解了 ABS 和 pacman 的關系,那么 AUR 又和 ABS 還有 pacman 有什么聯系呢?說的直白一點,你上傳到 AUR 的 PKGBUILD 要足夠“有品”才能直接通過 pacman 使用。對于“有品”,我是這樣定義的。你的 PKGBUILD 要有很多人用(很多人投票),沒有惡意代碼,沒有太多的 Bug……而判定你的 PKGBUILD 夠不夠“有品”的人是一些叫作 TU(Trusted User)的人。這些人的工作是檢查 AUR,關注那些特別受歡迎的 PKGBUILD。之后,他會仔細檢查,確定這些 PKGBUILD 是不是安全。然后,他們會給這些 PKGBUILD 打上安全的標簽,并且把這些 PKGBUILD 從 unsupported(我們上傳的 PKGBUILD 一開始都是在 unsupported 中)移到 community 的 Repo 中。

在 community repo 里面的 PKGBUILD 會提前編譯好,如果你在 /etc/pacman.conf 中開了 community repo,你就可以直接使用這些軟件的二進制包了。也許有一天,你當初上傳的 PKGBUILD 變得特別重要,這個軟件可能被移到 testing,extra 或者 core 的 repo 中。補充一點,testing repo 里面一般是需要測試,又準備放到 core 或者 extra 中的軟件。

Archlinux 就是這樣,非常靈活。既有 pacman 這樣好的二進制包管理工具,又有 ABS 和 AUR 這樣方便的源代碼服務。通過 ABS,你可以完全控制你自己的系統到底是如何建立的。如果在 pacman -Ss 的時候找不到一個軟件,你可以到 AUR 去找,如果還是找不到,為什么不自己試著從源代碼開始,寫一個 PKGBUILD 然后放到 AUR 中和別人分享呢?

說到這里,我希望我已經把 Archlinux 最核心的東西講明白了。有些人說我的文章寫得比 wiki 里的文章清楚。其實,我寫的東西只是在順序上不一樣。我是從 PKGBUILD 開始講到 AUR 和 ABS,再到 pacman。這個順序和 Archlinux 實際的開發過程是一致的,所以邏輯上容易理解很多。如果你從 pacman 入手反過來讀,你可能就完全錯過了理解 Archlinux 核心概念的機會。

TOY 會很快再寫一篇關于 yaourt 的文章,yaourt 是一個把 pacman 和 AUR 結合起來的很好用的工具。有了 yaourt,你不需要去 AUR 網站也能在 shell 下直接取得 AUR 的 package,還方便了投票的過程。

如果大家對某些問題感興趣,可以留言告訴我,我會盡量把我了解的用這樣比較容易理解的文章與大家交流。

Title: Archlinux 的靈魂──PKGBUILD、AUR 和 ABS (3) Date: 2008-03-01 11:14 Author: toy Category: Featured Slug: archlinux-pkgbuild-aur-and-abs-3

在這一部分中,我們將簡單介紹 Yaourt 的安裝和使用。此部分上接 PKGBUILD 和 makepkgAUR 和 ABS

就一般情況而言,當 Archlinux 用戶需要使用 AUR 中的包時,往往會執行到 AUR 官方網站查找所需的包、下載該包的 Tarball 文件、在命令行下對 Tarball 文件解壓、通過 makepkg 編譯打包、最后使用 pacman 安裝這樣一個過程。仔細打量這個過程,你是否覺得稍微有些繁瑣呢?有解決的方案嗎?回答是肯定的。這就是我們今天將要介紹的主角──Yaourt

Yaourt 簡介

Yaourt 是一個由 Julien Mischkowitz 所編寫的 Bash 腳本,它是將 Pacman 與 AUR 這兩者相結合的絕佳工具。通過 Yaourt 安裝 AUR 中的包十分方便,它不僅簡化了上述繁瑣的過程,而且把這一過程半自動化,使用者只需在它的交互模式中簡單的回答幾個問題即可。此外,Yaourt 支持將結果以鮮亮的顏色輸出,非常搶眼。

安裝 Yaourt

除了在 Archlinux 的 AUR 中可以找到 Yaourt 外,archlinuxfr 這個源中也包含 Yaourt。我們采用后者來安裝 Yaourt。首先,將下列內容添加到 /etc/pacman.conf 文件:
[archlinuxfr] Server = http://repo.archlinux.fr/i686

如果你的系統是 64 位,那么可以使用:
[archlinuxfr] Server = http://repo.archlinux.fr/x86_64

接著,我們可以執行下面的命令來安裝 Yaourt:

pacman -Sy yaourt

另外,我們將 aurvote 和 customizepkg 這兩個包也裝上,前者用于對喜歡的包投票,而后者是定制 PKGBUILD 所需的:

pacman -S aurvote customizepkg

同時,你需要為 aurvote 建立一個配置文件 .aurvote (位于 ~/ 目錄下):
user=你的 AUR 帳號 pass=該帳號的密碼

如果你沒有 AUR 帳號,可到 http://aur.archlinux.org/account.php 注冊一個。

Yaourt 實戰

為了說明 Yaourt 的使用,我們以一個實例來進行。譬如,我對 Phatch 這個批量圖片處理程序非常喜歡,我希望在 Archlinux 中安裝它。首先,我們來看一下,在 Archlinux 中是否存在 Phatch:

yaourt phatch

Yaourt 在搜索后返回如下結果:

1 aur/phatch 0.1.bzr435-1 Phatch is a simple to use cross-platform GUI Photo Batch Processor. ==> Enter n° (separated by blanks, or a range) of packages to be installed Example: '1 6 7 8 9' or '1 6-9' ==> ----------------------------------------------

從該結果我們可以斷定,Phatch 在 Archlinux 的 AUR 中。現在,我們只需按 1 就可以安裝它了。

在顯示一些輸出信息后,Yaourt 會讓你作出第一個選擇:是否編輯 PKGBUILD 文件。按 Y 回答并輸入你喜歡的文本編輯器后,你可以針對 PKGBUILD 的內容進行修改。

==> Edit the PKGBUILD (recommended) ? [Y/n] ("A" to abort) ==> ----------------------------------------------

然后,Yaourt 會詢問是否繼續編譯。我們的回答當然是 Y。

==> Continue the building of 'phatch'? [Y/n] ==> ----------------------------------------------

接著,Yaourt 詢問是否安裝已編譯好的包,同樣回答 Y 即可。

==> Continue installing 'phatch'? [Y/n] ==> [v]iew package contents [c]heck package with namcap ==> ----------------------------------------------

最后,Yaourt 將檢查投票情況,并問你是否要投票,按 Y 選擇投票,按 n 表示不投票。

==> Checking for phatch's vote status You have already voted for phatch inclusion/keeping in [community]

綜觀 Yaourt 的命令行選項,與 Pacman 非常相似。關于 Yaourt 的更加詳細的用法,通過 man yaourt 可以獲得參考。其實,除了從 AUR 安裝包外,Yaourt 也可以從 Archlinux 的源安裝包,此不贅述。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容