原文已經不知道在哪, 看到的也是轉發的, 轉自Archlinux 的靈魂──PKGBUILD、AUR 和 ABS
覺得看完對深入理解Arch很有幫助.文章很長, 耐心點看完, 肯定會有收獲
第一部分:PKGBUILD 和 makepkg
其實,我使用 Archlinux 的時間并不是很長。可是,就是在這半年的時間內,我感覺我學到了很多的東西,對 GNU/Linux 有了更多的了解,也在這個過程中深深地愛上了 Archlinux 這個發行版。
首先聲明一下,我不是一個程序員,從來沒有寫過真正的 Code,頂多是寫一點 scripts,或者做一些簡單的網頁什么的。和很多人一樣,我對計算機的接觸是從 DOS/Windows 開始的。
Windows 的圖形界面很容易學??墒菚r間長了,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.debar vx package.deb
你會發現你多了三個文件:debian-binarycontrol.tar.gzdata.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 文件:
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 兩個文件,還有兩個目錄srcpkg
通過比較這些文件、目錄里的內容和 PKGBUILD,你就會明白 makepkg 到底做了些什么:
- 根據 source 里的內容下載了源代碼文件 dwm-4.7.tar.gz;
- 通過 md5 驗證碼確定下載的源代碼文件和 PKGBUILD 的作者使用的是一致的;
- 把源代碼文件解壓縮到 ./src/
pkgver (也就是 ./src/dwm-4.7);
- 按照 build() 里的內容編譯源代碼,并把編譯好的內容放在 ./pkg 里;
- 在 ./pkg 里加上其他的一些信息,包括 .PKGINFO 和 .INSTALL,也就是 dwm.install 的拷貝;
- 把 ./pkg 里面的內容打包形成 dwm-4.7-1-x86_64.pkg.tar.gz。
那么,我們有了一個 .pkg.tar.gz 這樣一個二進制包之后,我們要如何安裝呢?我們要使用這樣一個命令:
$ pacman -U dwm-4.7-1-x86_64.pkg.tar.gz
這個命令又完成了那些事情呢?
- 首先,二進制包被解壓縮;
- 按照 .INSTALL 的內容執行一定的命令;
- 二進制包里面的內容會被拷貝到相應的目錄(你注意到二進制包內的目錄結構了嗎?);
- 在 /var/lib/pacman/local 這個目錄中建立 dwm-4.7-1 這樣一個目錄;
- 這個目錄里包含了四個文件 depends、desc、files 和 install;
- 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,那我應該怎么做呢?我會做如下的事情:
- 編輯 config.h,另存為 myconfig.h;
- 編輯 PKGBUILD,把所有的 config.h 替換為 myconfig.h;
- 把 pkgrel 變成 2。
之后通過 makepkg,我會得到一個文件 dwm-4.7-2-x8664.pkg.tar.gz,這個和原來的 dwm-4.7-1-x8664.pkg.tar.gz 可以區別開。我可以安裝 dwm-4.7-2-x8664.pkg.tar.gz,如果有問題我還可以通過 pacman -U dwm-4.7-1-x8664.pkg.tar.gz 來安裝原來的二進制包。我還可以用同樣的辦法生成一系列的 .pkg.tar.gz 包,這在軟件的安裝調試過程中非常有用。
好了,今天就講到這里。有些人也許變得更疑惑了,因為在 TOY 的“打造完美的 Linux 桌面 — Arch Linux 2007.08-2”系列中并沒有提到 PKGBUILD 的問題,所有的軟件都是通過 pacman -S 來安裝的。
沒關系,如果你理解了 makepkg 和 PKBGUILD,那么在我下一次談到 AUR 和 ABS 之后,你就能完全明白了。
實例:
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: jepaan <jepaan at hotmail dot com>
pkgname=client
pkgver=1.0
pkgrel=1
pkgdesc="tools"
arch=('i686' 'x86_64')
license=('MIT')
depends=('qt4' )
makedepends=('qt4')
install=${pkgname}.install
url=('')
source=("./${pkgname}-${pkgver}.tar.gz")
md5sums=('SKIP')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
qmake-qt4
make
}
package() {
cd ${srcdir}/${pkgname}-${pkgver}
#make PREFIX=/usr DESTDIR=$pkgdir install
mkdir -p ${DESTDIR}${PREFIX}/bin
mkdir -p ${pkgdir}/usr/share/icons
mkdir -p ${pkgdir}/usr/share/applications
install -Dm755 client ${pkgdir}/usr/bin/client
install -Dm755 ${srcdir}/client_logo.png ${pkgdir}/usr/share/icons/
install -Dm644 ${srcdir}/client.desktop ${pkgdir}/usr/share/applications/client.desktop
}
pre_remove() {
pid=`ps -ef | grep client | grep -v grep | grep -v pacman | awk '{print $2}'`
if [ -n "$pid" ]; then
kill -9 "$pid"
fi
}
$ makepkg -p PKGBUILD_client 或 makepkg -f -p PKGBUILD_client
第二部分: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 和其他的人分享你的成果了。具體的步驟是:
- tar -zcvf package.tar.gz package-dir 把 package-dir 中所有所需的文件打包(包括 PKGBUILD,.install,patch 和其他的 config 等)
- 前往 http://aur.archlinux.org 選擇"Submit”(參照下圖),并把你的 package.tar.gz 上傳
AUR 會自動根據你的 PKGBUILD 內容把你的 Package 加到 AUR 里來。就是這么簡單!那么有人會問:“別的用戶要如何使用 AUR 呢?”
這個就更簡單了,我們還是用一張截圖來解釋:
- 首先下載“Tarball”(紅色的圈圈),這個 Tarball 和你上傳的內容是一樣的,無非是 PKGBUILD 什么的;
- tar xvzf package.tar.gz 然后解壓縮;
- 然后的步驟你應該知道了,那就是 makepkg 還有 pacman -U。
之后又要如何使用 ABS 呢?ABS 所作的事情無非是把所有 Repo 里的軟件的 PKGBUILD 下載到你本地的硬盤中。這些 PKGBUILD 都放在了 /var/abs 中。你能通過 pacman 直接安裝的二進制包其實也都是按照 ABS 的內容編譯的。下面我還是用 dwm 的例子解釋 ABS 的使用:
su
$ cd /var/abs 你可以看到這個目錄里有 core,extra,community 三個子目錄,正如 abs.conf 中的設定;
$ mkdir local 建立一個 local 目錄,用來放你自己需要的軟件的 PKGBUILD
$ chown username:usergroup ./local makepkg 要以非 root 身份進行
$ exit 退出 su
$ cd local
$ cp -r ../community/x11/dwm ./ 從 ABS 中拷貝 dwm 的內容
$ 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,還方便了投票的過程。
如果大家對某些問題感興趣,可以留言告訴我,我會盡量把我了解的用這樣比較容易理解的文章與大家交流。
第三部分:Yaourt
在這一部分中,我們將簡單介紹 Yaourt 的安裝和使用。此部分上接 PKGBUILD 和 makepkg、AUR 和 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 中?,F在,我們只需按 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 statusYou have already voted for phatch inclusion/keeping in [community]
綜觀 Yaourt 的命令行選項,與 Pacman 非常相似。關于 Yaourt 的更加詳細的用法,通過 man yaourt 可以獲得參考。其實,除了從 AUR 安裝包外,Yaourt 也可以從 Archlinux 的源安裝包,此不贅述。
參考:
PKGUILD:https://wiki.archlinux.org/index.php/PKGBUILD_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
ABS:https://wiki.archlinux.org/index.php/Arch_Build_System_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
Archlinux:https://linuxtoy.org/archives/archlinux-pkgbuild-aur-and-abs.html
pkg.tar.xz包:http://ftp.isoft.zhcn.cc/