AUR 用户指南 (简体中文)
From ArchWiki
Article summary |
---|
解释如何访问和使用Arch软件仓库 |
可用语言 |
Česky |
Dansk |
English |
Español |
Italiano |
Русский |
简体中文 |
相关文档 |
AUR Trusted User Guidelines |
AUR |
AUR Q & A |
Aurbuild |
Contents |
用途简介
AUR的全称是"Arch Linux User-community Repository",即Arch Linux社区用户的软件仓库。它是依靠社区贡献软件包。这个文档告诉普通用户如何使用AUR。
AUR与用户
AUR中的软件是社区用户提供的,它们没有技术支持,也不保证其安全性(除非它们被TU标记上安全标志)。AUR软件包不一定会被一直维护也不一定会被及时更新。AUR完全依赖用户贡献,你可以以许多形式为AUR做贡献。
在UNSUPPORTED中共享你的PKGBUILD
用户可以将自己的PKGBUILD在AUR中共享。这些包会被标记为UNSUPPORTED。UNSUPPORTED的软件包是用户以PKGBUILD的形式上传提供的给其他用户下载的,不包含任何二进制文件。其他用户可以通过留言的方式提供关于这个软件包的反馈和改进建议。上传者需要注意你上传的包的信息页面上的留言。 TU们会在检测确定你上传的软件没有恶意代码后,会将这个包标记为"安全的"。但是,这些都是非官方的(TU也是非官方的)。所以,如果你要使用这些软件包,一切后果都由你自己负责。
到目前为止,还没有官方的下载编译UNSUPORTED中的软件包的工具,但是你可以在wiki或者community里面找到一些这方面的工具。
[community]
[community]仓库中的软件是作为官方的[core]和[extra]这两个仓库的一个补充。里面有许多很受欢迎的软件包。这些软件包都来自UNSUPPORTED并被TU们维护着。这个仓库里的软件包是提供二进制包的,可以直接被pacman安装。你也可以通过ABS获得这些包的源码。当中的一些软件包如果被开发人员认为对发行版很重要,最终会被加入到[core]或者[extra]仓库中去。
用户可以通过在pacman.conf中加入/注释以下语句来访问AUR的[community]仓库:
Include = /etc/pacman.d/community
如果/etc/pacman.d/community
不存在,那么就创建这个文件,文件内容如下:
[community] Server = ftp://ftp.archlinux.org/community/os/i686/
x86_64的用户,添加下面一行
[community] Server = ftp://ftp.archlinux.org/community/os/x86_64/
如果你想通过ABS下载community中的软件包源码,只需在/etc/abs.conf
文件中找到如下一行,将community前面的叹号"!"删除:
REPOS=(core extra community)
投票
所有Arch的用户都能为AUR做的一件最简单的事情就是"投票"。注册AUR用户后,你就可以为你喜欢的软件包投票了。具体方法是在你感兴趣的软件包信息web页面中找到"vote"按钮点击即可。所有包都有资格进入community仓库,投票数目是包选拔的一个标准。因此,大家积极投票吧!
如何使用AUR
使用UNSUPORTED中的软件包
要安装UNSUPPORTED中的软件包,你可以遵照如下步骤:
- 用AUR网站上的 搜索 功能找到你感兴趣的软件包。点击软件包的名字,会打开一个关于这个包的信息页面。在包简介下方你会发现这三个链接:
Tarball :: Files :: PKGBUILD
- 点击
Tarball
下载你构建二进制软件包所需要的文件。这个文件叫做foo.tar.gz
。其中foo是你需要的包的名称。 - 解压这个文件。它会创建一个新目录,如
foo
。里面包含了你编译二进制软件包所需的所有文件。 - 注意!!然后仔细检查PKGBUILD和所有的.install文件,看看里面是否有恶意代码。如果有,或者有"疑似"的,千万不要编译它。请在论坛或邮件列表中获得相关建议。
- 建议大家使用
fakeroot
来编译软件包(下面会介绍)。你可以作为普通用户在编译目录运行makepkg
来手动检查文件的完整性。源码文件会自动被下载,校验然后编译。 - makepkg会生成一个后缀名为
.pkg.tar.gz
的包。这个包可以用pacman直接安装。如运行:
pacman -U foo.pkg.tar.gz
"请注意":以上的方法只是一个编译软件包的流程概述。强烈建议阅读 ABS 文档了解更详细的内容,特别是第一次打包的用户。
使用 fakeroot
fakeroot
是一个让普通用户获得创建软件包所需的足够权限,而不会改变系统的其它部分。如果编译进程尝试访问编译环境以外的的目录会报错退出 - 这在检测PKGBUILD编写的质量、安全性、完整性十分有用。export USE_FAKEROOT="y"
是/etc/makepkg.conf
,中的默认配置。因此fakeroot默认是开启的,除非你改变这个配置。
向UNSUPPORTED提交软件包
在AUR网站登录后,用户可以提交一个打包成 tar.gz 格式的压缩包。这个包中需要包含一个目录,目录中有编译软件包需要的文件。这些文件必须包含一个PKGBUILD,任何.install文件,补丁等等(绝对不要包含任何二进制文件)。你可以到/var/abs目录下参看相关的软件包。
要注意这是一个gzip了的压缩包,换言之,假设你要上传一个名为'libfoo'的包,那么你应该象这个下面这样创建文件(请注意使用-zcvvf参数进行打包):
$ ls -a libfoo . .. PKGBUILD libfoo.install $ tar -zcvvf libfoo.tar.gz libfoo a libfoo a libfoo/PKGBUILD a libfoo/libfoo.install
当你准备要提交一个包时,请注意以下规定:
- 检查 [extra], [current], UNSUPPORTED, 和 [community] 中的已有的包。无论这个包以任何形式存在于这些仓库中,请不要提交此包(如果已有的包无法使用,或者缺少应该具备的功能,请在FlySpray提交BUG报告。
- 仔细检查以确保你上传的东西是正确的。所有贡献者在编写PKGBUILD时必须阅读并遵守Arch Packaging Standards中的规则。用户能够基本顺畅而成功的使用AUR是十分重要的。别指望用户在一个糟糕的PKGBUILD上浪费了他们的时间后,还能给你笑脸。
- 包含二进制文件或者写得很烂的包将会在没有任何警告的情况下删除。
- 如果你还不熟悉如何编译、打包、提交软件包,或者还有不其它不明白的地方。在提交到AUR之前,先将你的PKGBUILD提交到AUR邮件列表或者论坛中的AUR板块中。在那里,大家会帮你检查你的软件包。
- 请确认你的包是有用的。其他用户会不会想用这个包?它是不是非常冷门的?如果至少有一些用户发现你的包有用,提交上AUR就是正确的。
- 在提交包之前多多积累经验。自己编译一些包以学习整个流程,然后再提交。
- 如果你提交的package.tar.gz中包含了一个名为'package'的文件,将产生一个错误: 'Could not change to directory /home/aur/unsupported/package/package'。要解决它,可以将'package'文件重命名成其它名字如'package.rc',当它安装到pkg目录后你可以再将它重命名回'package'。
维护在UNSUPPORTED中的包
- 多看看其他用户的反馈,吸取他们的改进建议。把这当成是一个学习的过程!
- 请不要提交后就把它们忘了!在它处于UNSUPPORTED状态时,维护、更新和改进PKGBUILD是上传者的义务。
- 如果你由于种种原因不愿意再维护这个包了,在AUR信息页面中
disown
这个包,然后(或者)在AUR邮件列表中发消息。
AUR-DMS(下载和管理AUR的脚本)
AUR-DMS 列表
- aurbuild (Python) - 从AUR中创建和安装软件包
- aur-install (bash)
- aur-sync (Perl) - 下载所有的AUR包
- aurscripts (bash):
- aurcreate - 为上传AUR创建一个干净的包
- aurdownload - 下载然后解压一个AUR上的包
- aurupdate - 升级一个包的版本(如果指定)然后md5校验
- aurup (bash) - 向AUR上传包
- autarchy (bash) - 创建一个包含PKGBUILD所需的所有文件的包(比aurcreate更好)
- autoaur (bash) - 依赖aurscripts,自动升级你从AUR中安装的包
- qpkg (Python) - 也能用于非AUR软件,*已停止开发*
- yaourt (bash) - srcpac的一个封装器,支持AUR和更多功能
所有脚本可以在 UNSUPPORTED 中找到。