移除 ebuild 和软件包
移除 ebuild
移除 ebuild 时,请确保 Portage 中没有任何依赖关系因移除而被破坏 - 此外,您的 Git 提交信息应清楚地解释为什么该 ebuild 正在从 Git 仓库中移除。
如果您需要移除 ebuild,请确保您不会意外移除任何架构的最新/唯一稳定 ebuild。如果您想将更新版本标记为稳定,请提交 Bug 或在 IRC 上询问。
移除 ebuild 时,也不应导致任何 ~arch
的不必要降级 - 相反,最好先将最新版本标记为 ~arch
,然后移除冗余版本的 ebuild。
移除软件包
移除软件包时,请遵循以下步骤
- 确保 Gentoo 仓库中没有任何依赖关系因移除而被破坏
- 向 gentoo-dev-announce 和 gentoo-dev 发送“最后致辞”
- 屏蔽该软件包
- 等待 30 天(或更长时间)
- 从 Git 树中移除,除非移除原因已修复
- 从其他 ebuild 中移除对该软件包的任何引用,例如,使用条件依赖关系。阻挡器是对此的唯一例外。
- 移除 package.mask 和任何 package.use.mask 条目
- 移除其他软件包的 metadata.xml 文件中引用此软件包的
<pkg>
标签。 - 将打开的 Bug 标记为 PKGREMOVED 并关闭
以下是一些将 dev-util/pmk
从树中删除的命令列表
# cd dev-qt # git rm -rf qtphonon # git commit --signoff --gpg-sign
下面显示了一个示例提交信息
commit b97eb6d43f45dfd5b739638928db22d3f3392685 Author: Michael Palimaka <[email protected]> Date: Tue Oct 3 21:43:03 2017 +1100 dev-qt/qtphonon: remove last rited package Closes: https://bugs.gentoo.org/629144
移除虚拟软件包
当虚拟软件包只剩下一个提供者时,通常会将其移除。移除之前,会更新剩余的 ebuild 以不再使用该虚拟软件包。由于虚拟软件包不安装任何文件,因此主动强制将其从用户系统中卸载或不必要地通知用户此事实意义不大。因此,建议使用另一种移除过程。
要移除虚拟软件包,请遵循以下步骤
- 如果虚拟软件包与其任何提供者一起被移除,请在“最后致辞”邮件中包含该虚拟软件包。但是,请不要将其包含在
package.mask
条目中,因为用户不需要被强制主动取消合并它。相反,将其添加到package.deprecated
中,以警告开发人员不要依赖它。等待“最后致辞”的适当时间。 - 更新所有 ebuild 以不再引用该虚拟软件包,遵循正常的 Ebuild 修订 策略
- 直接移除该软件包
- 执行移除后的清理,就像处理常规软件包一样