移除 ebuild 和软件包

移除 ebuild

移除 ebuild 时,请确保 Portage 中没有任何依赖关系因移除而被破坏 - 此外,您的 Git 提交信息应清楚地解释为什么该 ebuild 正在从 Git 仓库中移除。

如果您需要移除 ebuild,请确保您不会意外移除任何架构的最新/唯一稳定 ebuild。如果您想将更新版本标记为稳定,请提交 Bug 或在 IRC 上询问。

移除 ebuild 时,也不应导致任何 ~arch 的不必要降级 - 相反,最好先将最新版本标记为 ~arch,然后移除冗余版本的 ebuild。

移除软件包

移除软件包时,请遵循以下步骤

  1. 确保 Gentoo 仓库中没有任何依赖关系因移除而被破坏
  2. 向 gentoo-dev-announce 和 gentoo-dev 发送“最后致辞”
  3. 屏蔽该软件包
  4. 等待 30 天(或更长时间)
  5. 从 Git 树中移除,除非移除原因已修复
  6. 从其他 ebuild 中移除对该软件包的任何引用,例如,使用条件依赖关系。阻挡器是对此的唯一例外。
  7. 移除 package.mask 和任何 package.use.mask 条目
  8. 移除其他软件包的 metadata.xml 文件中引用此软件包的 <pkg> 标签。
  9. 将打开的 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 以不再使用该虚拟软件包。由于虚拟软件包不安装任何文件,因此主动强制将其从用户系统中卸载或不必要地通知用户此事实意义不大。因此,建议使用另一种移除过程。

要移除虚拟软件包,请遵循以下步骤

  1. 如果虚拟软件包与其任何提供者一起被移除,请在“最后致辞”邮件中包含该虚拟软件包。但是,请不要将其包含在 package.mask 条目中,因为用户不需要被强制主动取消合并它。相反,将其添加到 package.deprecated 中,以警告开发人员不要依赖它。等待“最后致辞”的适当时间。
  2. 更新所有 ebuild 以不再引用该虚拟软件包,遵循正常的 Ebuild 修订 策略
  3. 直接移除该软件包
  4. 执行移除后的清理,就像处理常规软件包一样