Linux┊一个好用的AUR工具yaourt http://www.mike.org.cn/blog/index.php?load=read&id=644

作者: easylife   日期: 2009-04-09 22:17字体大小: hn2_ptcl.gif hn2_t_ptcl.gif

  想必你已经对Archlinux的软件包管理工具Pacman很熟悉了。今天我要为大家介绍AUR和yaourt,只需要简单几个命令,它就可以为你安装很多额外的(Archlinux官方不支持的)软件。

  1、什么是AUR?

  AUR表示Archlinux User-Community Repository。翻译成中文就是Archlinux社区软件仓库。它是Archlinux的用户自行编写的PKGBUILDs的集合。我将会在随后为大家解释什么是PKGBUILD。

  简单来说,AUR是一些官方软件仓库不支持的社区软件包的组合(当然这里的包也可能作为官方软件包的候选者)。AUR用户只需要对这些软件包进行投票,得票超过一定数目并经过官方包维护人员审批通过既可以进入官方的软件仓库。

你可以通过这个站点进行投票:http://aur.archlinux.org/

  2、如何使用AUR?

  要使用AUR,你需要选择一个合适的包管理工具。这里你有如下一些选择:

  aur-sync - 非常简单的工具(用Perl编写);它可以下载
aurbuild - 用Python编写的非常流行的工具;它有很多功能,可惜的是目前它已经没有人来维护了
aur-get - 超级简单的、精炼的工具;它只能下载
yaourt - 可能是最成熟的也是最流行的工具,它有很强大的功能;它是一个很好的Pamcan的前端;你可以从Archlinux法国社区仓库获取它。

  3、安装 Yaourt

  PKGBUILD 安装

  传统安装Yaourt的方式是通过AUR,用这种方式安装Yaourt,你就有机会了解到 AUR(和PKGBUILD)是如何工作的。

  打开网页浏览器并访问yaourt AUR page,下载Yaourt的tarball包。

  解压tarball

  tar zxvf yaourt.tar.gz

  切换至新的目录

  cd yaourt

  这时候;确认您已经检查了PKGBUILD和yaourt.intall 的内容! 别担心,它们并不是很复杂,仅仅是看一下而已。如果你觉得某些可疑的东西,到irc上或者论坛上询问一下。

  more yaourt.install
more PKGBUILD

  如果一切正常,我们已经准备好来构建软件包了。

  makepkg PKGBUILD

  这一过程结束后,您讲会看到一些新的文件和目录。您应该对那些以*.pkg.tar.gz的后缀名的文件感兴趣(在这特定的情况下;yaourt-0.9.2-i686.pkg.tar.gz)

  现在是时候用pacman来安装yaourt了。一定要用实际的软件包名字,而不是 拷贝这如下一行“

  pacman -U yaourt-0.9.2-i686.pkg.tar.gz

  恭喜!您已经成功的安装了Yaourt!请记住,对于大多数的AUR里面的PKGBUILDS,您都可以用类似上面的方式来安装。

  简便的安装

最简单安装Yaourt的方式是添加Yaourt源至您的 /etc/pacman.conf:

  i686架构:

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

x86-64架构:


[archlinuxfr]
Server = http://repo.archlinux.fr/x86_64

同步并安装:

  pacman -Sy yaourt

如果您乐意,您可以创建自己的命令的别名通过添加至~/.bashrc: 用nano打开~/.bashrc(或者用其他编辑器)。添加如下别名:

  alias p="pacman"
alias y="yaourt"

保存并使用source命令

  source ~/.bashrc

  4、如何使用yaourt?

  yaourt用起来很简单,而且类似于Pacman的命令,下面是常用的一些命令:

  yaourt -S package_name - 从AUR安装软件包
yaourt -Ss password - 使用关键字搜索软件包
yaourt -Syu --aur - 从AUR升级本地软件数据库并安装更新
yaourt -Si package_name - 列出软件包信息
yaourt -Sc - 从缓存中清楚旧的软件包
yaourt -Su - 安装AUR中的更新软件包
yaourt -Sy - 获取最新的AUR软件包数据库
yaourt -Cd - 清楚AUR软件包数据库
yaourt -R package_name - 删除软件包

  你可以通过yaourt --help命令获得更多信息。

  Search and install

  yaourt [keywords]: quick search + install
yaourt -S [packages] : install package, Compile it from AUR if needed
yaourt -Ss [keywords] : search on repos and on AUR (with notice for already installed packages)
yaourt -Sb [packages] : install a packages by compilation from sources (abs)
yaourt -Sl [repos] : prompt for packages of the selected repos (emphasize those already installed)
yaourt -Qs [keywords] : colorized ouput of installed packages and the repos where they come from
yaourt -Qo [progname] or [filename] : shows the package which provides the program or the file

  Updgrade:

  yaourt -Syu : complete update and upgrade of the system (onlys from repos)
yaourt -Syu –aur : complete update and upgrade, even for packages coming from AUR
yaourt -Sybu –aur : complete update and upgrade by compilation of all packages (repos and AUR)
yaourt -Su –devel : update and upgrade of cvs/svn/mercurial/git packages

  Cleaning:

  yaourt -C : editing and merging of .pacnew/.pacsave
yaourt -Cc : removal of all .pacnew/.pacsave
yaourt -Qt : search for orphaned packages
yaourt -Cd : search for obsolete repos

  Other options:

  –export [directory] : exports compiled packages for gensync
yaourt -S –aur [packages] : forces compilation from AUR for a packages which is also in repos
yaourt -G [packages] : retrive PKGBUILD and local sources in current directory.
yaourt -B : backup the pacman database

  5、ABS和AUR的区别

  ABS只含有Arch开发者创建的软件包。而AUR正相反,它包含用户(社区成员)的PKGBUILDs。你无须太担心,每一个软件包,即使可能会有很多用户的个人风格,但它在发布之前是经过了信任用户(Trusted User)的检查的。

  6、PKGBUILD是什么?

前面多次提到了PKGBUILD这个概念,让我们来看看它究竟是什么。PKGBUILD是一个简单的文本文件,它包含如何创建一个软件包的相关描述和该软件包的一些其他信息。

  这是一个PKGBUILD文件的例子:

# $Id: PKGBUILD,v 1.12 2003/11/06 08:26:13 dorphell Exp $
# Maintainer: judd
# Contributor: Judd Vinet
pkgname=foo
pkgver=0.99 # note: if the program version is '0.99-10' you should \
write '0.99_10'
pkgrel=1
pkgdesc="short description foo"
arch=(i686 x86_64)
url="http://www.foo.org"
groups=
provides=
depends=('qt' 'python')
makedepends=('guile')
conflicts=('yafoo')
replaces=('mffoo')
backup=('etc/foo/foo.conf')
install=('foo.install')
source=(http://www.foo.org/download/$pkgname-$pk...
md5sums=('2c0cca3ef6330a187c6ef4fe41ecaa4d35175bee593a7cc7d6205584a94d8625')

  build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make prefix=$startdir/pkg/usr install
}

标签的含义:

  Maintainer - 软件包的维护者
Contributor - 第一次发布这个软件包的人
pkgname - 软件包名字
pkgver - 包版本
pkgdesc - 包描述
arch - 该软件包适用的机器架构,如i686或x86_url - 软件包的主页
md5sums - md5计算值,用于包源代码完整性的检测

  7、参考文章

  http://wiki.archlinux.org/
http://blog.sina.com.cn/s/blog_3fc8570201007y2f.html