UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

171 lines (112 loc) 14.6 kB
相关文章 * [AUR](/index.php/Arch_User_Repository_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Arch User Repository (简体中文)") **翻译状态:** 本文是英文页面 [AUR_Trusted_User_Guidelines](/index.php/AUR_Trusted_User_Guidelines "AUR Trusted User Guidelines") 的[翻译](/index.php/ArchWiki_Translation_Team_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ArchWiki Translation Team (简体中文)"),最后翻译时间:2017-09-13,点击[这里](https://wiki.archlinux.org/index.php?title=AUR_Trusted_User_Guidelines&diff=0&oldid=490048)可以查看翻译后英文页面的改动。 **Trusted User (TU)** 是负责使 AUR 正常工作的社区成员。他们维护热门的包([并在必要时与上游项目交涉或者向上游项目发送补丁](https://mailman.archlinux.org/pipermail/aur-general/2010-September/010649.html)),并且参与管理事务的表决。TU 由现任的 TU 从活跃的社区成员中民主选举产生。 TU 是唯一具有决定 AUR 发展方向的权利的社区成员群体。 TU们依靠[TU bylaws](https://aur.archlinux.org/trusted-user/TUbylaws.html)来管理社区。 ## Contents * [1 新 TU 的 TODO 列表](#.E6.96.B0_TU_.E7.9A.84_TODO_.E5.88.97.E8.A1.A8) * [2 TU 和 [unsupported]](#TU_.E5.92.8C_.5Bunsupported.5D) * [3 TU 和 [community], 包维护导引](#TU_.E5.92.8C_.5Bcommunity.5D.2C_.E5.8C.85.E7.BB.B4.E6.8A.A4.E5.AF.BC.E5.BC.95) * [3.1 软件包进入 [community] 仓库的规则](#.E8.BD.AF.E4.BB.B6.E5.8C.85.E8.BF.9B.E5.85.A5_.5Bcommunity.5D_.E4.BB.93.E5.BA.93.E7.9A.84.E8.A7.84.E5.88.99) * [3.2 访问并更新仓库](#.E8.AE.BF.E9.97.AE.E5.B9.B6.E6.9B.B4.E6.96.B0.E4.BB.93.E5.BA.93) * [3.3 停止维护软件包](#.E5.81.9C.E6.AD.A2.E7.BB.B4.E6.8A.A4.E8.BD.AF.E4.BB.B6.E5.8C.85) * [3.4 将软件包从 unsupported 移到 [community]](#.E5.B0.86.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BB.8E_unsupported_.E7.A7.BB.E5.88.B0_.5Bcommunity.5D) * [3.5 将软件包从 [community] 移至 unsupported](#.E5.B0.86.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BB.8E_.5Bcommunity.5D_.E7.A7.BB.E8.87.B3_unsupported) * [3.6 将软件包从 [community-testing] 移至 [community]](#.E5.B0.86.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BB.8E_.5Bcommunity-testing.5D_.E7.A7.BB.E8.87.B3_.5Bcommunity.5D) * [3.7 从 unsupported 删除软件包](#.E4.BB.8E_unsupported_.E5.88.A0.E9.99.A4.E8.BD.AF.E4.BB.B6.E5.8C.85) * [4 TU 辞职需要完成的事项](#TU_.E8.BE.9E.E8.81.8C.E9.9C.80.E8.A6.81.E5.AE.8C.E6.88.90.E7.9A.84.E4.BA.8B.E9.A1.B9) * [5 另见](#.E5.8F.A6.E8.A7.81) ## 新 TU 的 TODO 列表 1. 仔细阅读本页面 2. 阅读 [TU Bylaws](https://aur.archlinux.org/trusted-user/TUbylaws.html) 3. 确认自己在 [AUR](/index.php/AUR "AUR") 的账户详细信息是最新的 4. 将你自己添加到 [Trusted Users](/index.php/Trusted_Users "Trusted Users") 页面 5. 订阅 Arch Linux 开发邮件列表 [arch-dev-public](https://lists.archlinux.org/listinfo/arch-dev-public). 6. 提醒 [BBS admin](https://bbs.archlinux.org/userlist.php?username=&show_group=1&sort_by=username&sort_dir=ASC&search=Submit) 更改你在论坛上的账户 7. 向先辈 TU 索要 #archlinux-tu@freenode 的密码并挂在上面。这不是必须的,但是这样会更方便。因为那儿是黑历史曝光和新想法提出的地方。 1. 为[软件包签名](/index.php/Package_signing "Package signing")创建 PGP key 或者使用已有的key,请确保 key 包含加密的 subkey,这样才能收到加密的验证令牌。 2. 按照此 [模板](https://www.archlinux.org/people/trusted-users/) 向 Ionuț Bîru (ibiru@archlinux.org) 或 Florian Pritz (bluewind@xinu.at)发邮件,包含所有信息以获得 dev 接口的访问权限 3. 给 Florian 发一封加密邮件: * 包含一个 SSH 公钥,如果还没有,使用 `ssh-keygen` 生成。[Using SSH Keys](/index.php/Using_SSH_Keys "Using SSH Keys") 包含更多信息。 * 要求将你加入 arch-dev-public 白名单. * 告诉他你需要一个 @archlinux.org 电子邮箱. 4. 要求你的赞助者: * 在 AUR 赋予你 TU 状态. * 在 bug 管理系统的 "Keyring" 项目中提交任务,步骤参考 [这里](https://lists.archlinux.org/pipermail/arch-dev-public/2013-September/025456.html),三个主密钥持有者会签名您的 PGP 密钥。 5. 给 Lukas Fleischer 发送一封附有 ssh 公钥的邮件。如果你没有一个公钥,使用`ssh-keygen`来生成一个。更多关于 ssh 密钥的信息请查看 [Using SSH Keys](/index.php/Using_SSH_Keys "Using SSH Keys") 页面 6. 安装 [devtools](https://www.archlinux.org/packages/?name=devtools) 软件包 7. 为主机 `orion.archlinux.org``repos.archlinux.org` 上配置[ssh 私钥](/index.php/Arch_User_Repository#Authentication "Arch User Repository") 8. Ssh 到 yourname@orion.archlinux.org (得到权限之后). 9. 如果你在两天内没有在 bugtracker 被升级到 TU 组,在 arch-dev-public 发邮件询问 10. 开始你的贡献吧! ## TU 和 [unsupported] TU 应该仔细检查那些被提交到 UNSUPPORTED 分类中的软件是否含有恶意代码,以及PKGBUILD包是否符合标准。在UNSUPPORTED 中,大约 80% 的 PKGBUILD 都非常简单,TU 团队可以很快的检查其可用性以及安全性。 TU 也应该检查 PKGBUILD 的一些小错误,提出修改以及改进建议。TU 应该努力确认所有的软件包遵循了Arch Packging Guidelines/Standards 并与其他打包者分享他们的技能和经验来提升 archlinux 的软件包发行版本的质量。 TU 也很适合撰写文档来记录一些值得推荐的行为。 ## TU 和 [community], 包维护导引 ### 软件包进入 [community] 仓库的规则 * 软件包还没有加入其它任何仓库,确保其它打包者没有同时提交软件包。阅读 AUR 中的评论,阅读 [aur-general](https://mailman.archlinux.org/mailman/listinfo/aur-general) 中文章的标题,在 [bugtracker 的全部项目](https://bugs.archlinux.org/index.php?project=0&do=index&switch=1)中搜索, [grep](https://en.wikipedia.org/wiki/Grep "wikipedia:Grep") [Subversion 日志](http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.log.html),然后向私有 TU [IRC channel](/index.php/IRC_channel "IRC channel") 发送消息. * 只有“流行”的软件包才能进入仓库,如 [pkgstats](https://www.archlinux.de/?page=PackageStatistics) 规定的 1% 使用数或者 AUR 中 10 票以上 * 自动属于此规则的例外的软件包包括: * i18n 包 * 辅助功能软件包 * 驱动程序 * 满足“流行”定义的软件包所依赖的包,包括 makedeps 和 optdeps * 属于同一集合并一起发布的软件包,前提是这一集合的某些软件包满足“流行”定义 * 任何其他不属于上述例外的软件包想要进入仓库都需首先在 aur-general 邮件列表中提出申请,并解释成为例外的原因(例如重命名的软件包、新软件包等)。软件包进入仓库需要其他三名 TU 同意。维护大量的“不流行”软件包的 TU 的申请更有可能被拒绝。 * 强烈建议 TU 移除 [community] 仓库中他们正在维护的低使用率的软件包。尽管离职的 TU 的软件包在被采用之前会被过滤的情况会发生,移除的行为不会被强制要求 * 软件包从 AUR 提升到其它仓库时,应该将 **pkgrel** 的数值加 *1*,这样已经安装了软件包的用户还可以继续收到软件自动更新。还有一个好处就是避免 **pkgrel** 重置为 *1* 时用户收到本地软件包更新的警告. ### 访问并更新仓库 [community] 仓库现在使用和 [core] 和 [extra] 仓库相同的工具 **devtools** 来上传软件包。唯一的不同在于 [core] 和 [extra] 使用服务器 [https://archlinux.org](https://archlinux.org) 而 [community] 仓库使用服务器`orion.archlinux.org`。因此 [Packager Guide](/index.php/DeveloperWiki:HOWTO_Be_A_Packager "DeveloperWiki:HOWTO Be A Packager") 页面中大多数指令都能在不用改动的情况下使用。这里介绍关于 [community] 仓库的一些特殊的信息。devtools 需要软件打包人员 [设置 makepkg.conf 中的 PACKAGER 变量](/index.php/Makepkg#Packager_information "Makepkg"). 首先,你应该做一个 [community] 软件仓库的 **非递归签出**``` svn checkout -N svn+ssh://svn-community@repos.archlinux.org/srv/repos/svn-community/svn svn-community ``` 这一步骤将会创建一个名为 svn-community 的目录,里面只有包含 svn 信息的 .svn 目录。 关于 **签出****更新**所有软件包或**添加**一个软件包,请参见 [Packager Guide](/index.php/DeveloperWiki:HOWTO_Be_A_Packager "DeveloperWiki:HOWTO Be A Packager") 。 要**移除**一个软件包: ``` ssh orion.archlinux.org /community/db-remove community arch pkgname ``` 在此以及接下来的文中,arch 可以是 Arch Linux 支持两个平台 i686 或 x86_64。 **Note:** 如果编辑的是 *any* 架构的软件包,可以按 x64 执行,一般都能正常使用。 当你完成了 PKGBUILD 等之后,你应该 **提交** 你的更改(`svn commit`)。 用 `mkarchroot` 或帮助脚本 `extra-i686-build`/`extra-x86_64-build` 编译软件包. 如该要上传到 testing,也需要 `testing-i686-build` 和 `testing-x86_64-build`. 用 `gpg --detach-sign *.pkg.tar.xz` 签署软件包. 如果使用不同密钥进行签名,可以在 `~/.makepkg.conf` 中设置 `GPGKEY=<identifier>`. 如果你想要**发布**一个软件包,首先将软件包和签名用 scp 拷贝到 orion.archlinux.org 的 *staging/community* 目录下,然后通过进入 *pkgname/trunk* 目录并运行 `archrelease community-arch` 来为 **标识** 该软件包。这将在 *community-i686* 或 *community-x86_64* 目录下创建一份 trunk 条目的 svn 拷贝。这也表示这一软件包已经在所在平台的 [community] 仓库中了。注意 staging 目录与 staging 仓库不一样,所有软件包都需要上传到 staging 目录。可以使用 `communitypkg` 脚本自动执行这个过程。 ***注意:** 在有些情况下,特别是对于 community 软件包来说,x86_64 的 TU 也许会在 pkgrel 后加上 .1 (不是 +1)。这表示对于 PKGBUILD 的改动是仅限于 x86_64 平台的并且 i686 平台的维护者 **不应该** 为 i686 平台重建此软件包。如果 TU 想要提升 pkgrel ,那就应该按照通常的方法 +1 。然而,TU 在提升 pkgrel 时,pkgrel=2.1 不应该变为 pkgrel=3.1 而必须应变为 pkgrel=3 。简单的说,就是将 带有点(.) 发行的版本只留给维护 x86_64 平台的 TU 来避免混乱。* 软件包更新汇总: * **更新** 软件包目录 (`svn update some-package`) * **改变当前目录** 到软件包的 trunk 目录 (`cd some-package/trunk`) * **编辑** PKGBUILD,做出必要的更改,用 `updpkgsums` 更新校验和. * **编译** 软件包:使用 `makechrootpkg` 或 `extra-i686-build`/`extra-x86_64-build`. **必须**在 [干净的chroot环境](/index.php/DeveloperWiki:Building_in_a_Clean_Chroot "DeveloperWiki:Building in a Clean Chroot") 中构建软件包。 * **[Namcap](/index.php/Namcap "Namcap")** PKGBUILD 文件和 pkg.tar.gz 二进制包 * 使用 `communitypkg "commit message"` **提交****签名****拷贝****标识** 此软件包。这将自动进行下面步骤 * 将改变 **提交** 至 trunk (`svn commit`) * **签署** 软件包: `gpg --detach-sign *.pkg.tar.xz`. * 将软件包和签名拷贝到 orion.archlinux.org (`scp pkgname-ver-rel-arch.pkg.tar.xz *.pkg.tar.xz.sig orion.archlinux.org:staging/community/`) * **标识** 此软件包 (`archrelease community-{i686,x86_64`}) * **更新** 软件仓库(`ssh orion.archlinux.org /community/db-update`) 另外请阅读 [Packager Guide](/index.php/DeveloperWiki:HOWTO_Be_A_Packager "DeveloperWiki:HOWTO Be A Packager") 页面的 *Miscellaneours* 部分和 [SSH keys#ssh-agent](/index.php/SSH_keys#ssh-agent "SSH keys")。对于 *Avoid having to enter your password all the time* 部分,使用 orion.archlinux.org 而不要使用 gerolde.archlinux.org。 ### 停止维护软件包 如果一个 TU 不想再维护一个软件包了,他应该在 AUR 邮件列表中发出一个通知,以便其他的 TU 可以继续维护该软件包。一个软件包即是在没有其他 TU 维护的情况下仍然能够被一个 TU 停止维护。但是 TU 应该尽量不要放弃放弃很多软件包(他们不应该负责超过他们时间允许的工作)。如果一个软件包已经过时或者不再被使用,那么也应该被完全移除。 如果一个软件包已经被完全移除,它也可以重新上传到 UNSUPPORTED,使得普通用户可以替 TU 维护它。 ### 将软件包从 unsupported 移到 [community] 按照普通的向 community 仓库添加软件包的步骤即可,但是记得将相应的软件包从 unsupported 中移除。 ### 将软件包从 [community] 移至 unsupported 按照上面提到的方法移除软件包,并将你的源代码上传到 AUR 即可。 ### 将软件包从 [community-testing] 移至 [community] ``` ssh nymeria.archlinux.org /srv/repos/svn-community/dbscripts/db-move community-testing community package ``` ### 从 unsupported 删除软件包 没必要移除虚设的软件包,因为他们会在试图跟踪依赖关系时被重新创建。如果有人上传了一个实际的软件包,那么所有依赖的软件包都会指向正确的位置。 例如,一个虚设的软件包可以见 [https://aur.archlinux.org/packages.php?ID=23600](https://aur.archlinux.org/packages.php?ID=23600) ## TU 辞职需要完成的事项 当一个 TU 辞去自己的职务,而且不再是一个开发者时,需要执行如下操作: 1. 此 TU 的所有软件包需要被重新签名(重新打包). TU 编译的软件包可以通过下面 URL 从 Archweb 查询 [https://www.archlinux.org/packages/?sort=&q=&packager=$packager&flagged=](https://www.archlinux.org/packages/?sort=&q=&packager=$packager&flagged=) where packager 替换成 TU 在 Archweb 的用户名. 2. Archweb 需要禁用此 TU 帐号,并添加到 'Retired Trusted users' 组. 从 'Trusted Users' 移除此 TU,软件仓库权限收回。 3. 从服务器上禁用此帐号的 shell 访问权限(尤其是 repos.archlinux.org, pkgbuild.com) 4. 移除此用户的 GPG key,仓库中提交新的 archlinux-keyring 软件包。 ## 另见 * [DeveloperWiki#Packaging Guidelines](/index.php/DeveloperWiki#Packaging_Guidelines "DeveloperWiki")