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

hur*_*n77 4 linux package-management django gentoo

以 django-9999 ebuild 为例,为了匹配开发人员的环境,我需要从主干中检出 R12120。由于包管理的原因,手动安装 Django 不是一个选项。但是对于 1.2 测试版,portage 中也没有 ebuild。

所以我做了以下事情:

ESVN_OPTIONS="-r12120" emerge -1a django
Run Code Online (Sandbox Code Playgroud)

其中从 svn 安装了所需的修订版。但这在某种程度上很麻烦。是否有某种方法可以为每个 ebuild 静态定义它,例如:

DJANGO_SVN_REV="12120"
Run Code Online (Sandbox Code Playgroud)

make.conf。这在我眼里会干净得多。

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

去这里的最佳方式是什么?

记住:

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

Dan*_*ley 5

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

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

更简洁的方法是使用 Layman 推出您自己的 ebuild。如果你给它命名,django-1.2_pre12120那么它在做什么应该更明显,并且一旦 Django 1.2 发布并在 Portage 中稳定下来,它会给你一个简单的退出路线。