使用 gentoo,如何将 -9999 ebuild 粘贴到特定的 svn 修订版?

使用 gentoo,如何将 -9999 ebuild 粘贴到特定的 svn 修订版?

以 django-9999 ebuild 为例,为了匹配开发人员的环境,我需要从主干中签出 R12120。由于包管理的原因,无法手动安装 Django。但是 portage 中也没有 1.2 beta 版本的 ebuild。

所以我做了以下事情:

ESVN_OPTIONS="-r12120" emerge -1a django

它从 svn 安装了所需的修订版本。但这在某种程度上很麻烦。有没有办法在每个 ebuild 中静态定义这一点,例如:

DJANGO_SVN_REV="12120"

make.conf。在我看来这会干净得多。

因为下次无论出于什么原因我需要重建 django 时,我需要记住:“哦,我希望它坚持特定的修订版”,下一个问题将是“呃,f&!#$?%,它是什么?”

去这里最好的路线是什么?

记住:

  • 在没有包管理器知识的情况下手动安装包是不可能的
  • 使用手动 emerge 变量前缀来解决是不行的
  • 设置 /etc/portage/package.env 是一种方法(如这里所述)但在我看来,这似乎缺乏支持,而且很笨拙,因此不可取
  • 修改 make.conf 是一种方法
  • 将 ebuild 保留在覆盖层中是一种选择

答案1

我并不完全反对使用package.env。如果您理解并在您的环境中记录它,那么它可以成为一种有用的方法,使用 ebuild 钩子应用细微的更改,同时仍然跟踪稳定的 ebuild。

-9999不过,根据“最小惊讶原则”,我认为这不是修复 ebuild 修订版的合适方法。make.conf修复软件包版本似乎也不是很明显的地方。

更简洁的方法是使用 Layman 来构建您自己的 ebuild。如果您命名它,django-1.2_pre12120那么它的作用应该更加明显,并且一旦 Django 1.2 在 Portage 中发布并稳定下来,您就会获得一条简单的退出路线。

相关内容