Yaourt (简体中文)

警告: Yaourt是非官方、第三方的脚本,不受官方支持。
注意: 请在 archlinux.fr bugtracker 提交bug。

Yaourt (Yet AnOther User Repository Tool),是社区贡献的一个pacman的一个外壳。在pacman的基础上,它添加了AUR支持,帮助用户轻松从AUR的海量PKGBUILD中选择需要的软件进行编译安装。Yaourt的操作方式类似pacman,易于记忆使用。它提供诸如彩色输出、交互式搜索模式等一系列实用功能。

安装

Yaourt是archlinux方便使用的关键部件之一,但没有被整合到系统安装中的工具。建议在装完系统重启之后,更新完pacman和基本系统之后,就安装这个工具。

安装方法有下面两种:建议使用第一种,如果要体验AUR的操作过程和使用方法,建议使用第二种方法安装。

简便的安装

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

[archlinuxcn]
#The Chinese Arch Linux communities packages.
SigLevel = Optional TrustedOnly
Server   = http://repo.archlinuxcn.org/$arch

或者

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

或者

 [archlinuxfr]
 Server = http://repo-fr.archlinuxcn.org/$arch

同步并安装:

# pacman -Syu yaourt

PKGBUILD 安装

传统安装Yaourt的方式是通过AUR。

首先安装软件包组 base-devel, 以及 fakerootsudo 软件包,这样就不会在编译时缺少 gcc 或者 make 的问题。

安装 package-queryAUR

$ wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz
$ tar zxvf package-query.tar.gz
$ cd package-query
$ makepkg -si
$ cd ..

安装 yaourtAUR

$ wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
$ tar zxvf yaourt.tar.gz
$ cd yaourt
$ makepkg -si
$ cd ..

你也可以通过输入下面的命令安装 yaourt:

$ wget -O- bit.ly/installyaourt | sh -

源代码脚本的直接链接是 https://dl.dropbox.com/u/5225087/yaourt.sh

使用

Yaourt可用于查找软件包(包括[core] [extra] [community] AUR的软件包,pacman只能查找非AUR的软件包)。

你可以用下面的命令安装软件包 (包括 AUR 软件包),使用:

$ yaourt 软件包名称

下面这条命令将会检查升级包括AUR软件包在内的所有系统软件:

$ yaourt -Syua

请访问yaourt man page以获取更多信息。

使用举例

搜索并安装:

$ yaourt <search pattern>

同步数据库,升级软件包,搜索 AUR 和 devel (all packages based on cvs, svn, git, bzr(...)-version) 升级:

$ yaourt -Syu --devel --aur

从源代码编译软件包:

$ yaourt -Sb <package>

检查,编辑,合并或者移除 *.pac* 文件:

$ yaourt -C

获取 PKGBUILD (支持拆分的包):

$ yaourt -G <package>

编译和导出软件包,它的源代码到一个目录:

$ yaourt -Sb --export <dir> <package>

备份数据库:

$ yaourt -B

查询备份文件:

$ yaourt -Q --backupfile <file>

另见: Pacman (简体中文)Pacman tips (简体中文).

配置

代理设置

像通常的控制台软件一样,可以通过设置http_proxyhttps_proxy环境变量使Yaourt使用代理(仅仅设置HTTP代理是不够的),方法是添加如下内容至~/.bashrc(如果使用zsh,请添加到~/.zshrc):

export http_proxy='http://proxy.hostname.com:端口'
export https_proxy='https://proxy.hostname.com:端口'

当前用户的环境变量对sudo无效, 如果一定要在这种情况下使用代理,添加下面内容到/etc/sudoers(不要直接用编辑器编辑,使用visudo命令)

Defaults env_keep += "http_proxy"
Defaults env_keep += "https_proxy"

yaourtrc 配置文件

/etc/yaourtrc(全局)或者~/.yaourtrc(用户),是Yaourt的配置文件。Yaourt按照如下顺序获取程序配置: 1.命令行开关; 2.用户配置文件; 3.全局配置文件。

yaourtrc的详细介绍,可以参见:

$ man yaourtrc

以下是yaourtrc中的几个常用配置项目(在全局配置中默认都是注释掉的):

软件设置

EDITOR="$EDITOR"

该选项设置Yaourt默认调用的文本编辑器。以Vim为例:

EDITOR="vim"

如果没有设置,以系统EDITOR环境变量为默认值。

FORCEENGLISH=0

如果设置为1,相当于设置LC_ALL=C,Yaourt将强制使用英语。

TMPDIR="/tmp"

制定Yaourt存储临时文件的目录。

AUR设置

AURCOMMENT=5

安装AUR软件包时显示的评论数。

AURUPGRADE=0

如果设置为1,yaourt -Sy命令将总是检查升级AUR软件包。

AURVOTE=1

如果设置为0,不检查AUR软件包vote状态。

输出设置

USECOLOR=1

如果设置为0,将不提供彩色输出。

SHOWORPHANS=1

如果设置为0,搜索AUR时不搜索孤儿包。

外部命令设置

PACMAN="pacman"

指定Yaourt所使用的pacman命令。

疑难解答

错误的哈希值 Wrong hashes

当你遇到 yaourt 下载一个源代码然后抱怨错误的校验和 (但是你知道文件是正确的并且没有其他人升级软件包遇到同样的问题),做下面的操作: 检查 /tmp/yaourt-tmp-yourusername/nameofthepackage/src/,这是 /var/cache/yaourt/build 中的文件符号链接到的地方。 然后删除那个错误的文件 (因为它有可能损坏,并且 yaourt 看起来无法自己删除它),以及 yaourt 编译目录 /tmp/yaourt-tmp-yourusername,然后你就可以高高兴兴的去升级软件包了! 这个问题看起来和升级时系统崩溃和/或一个公开的 yaourt bug 有关。

Yaourt 请求密码两次

如果你禁用了 sudo 密码过期(添加

Defaults timestamp_timeout=0

/etc/sudoers),那么 yaourt 会在每次你进行需要root权限操作的时候请求两次密码。为了避免这个问题,添加:

SUDONOVERIF=1

/etc/yaourtrc 或者 ~/.yaourtrc