作为给出 django-9999 ebuild 的示例,为了匹配开发人员的环境,我需要从主干中签出 R12120。由于包管理的原因,手动安装 Django 不是一种选择。但是portage 中也没有ebuild 用于1.2 beta 版本。
所以我做了以下事情:
ESVN_OPTIONS="-r12120" emerge -1a django
从 svn 安装了所需的修订版。但这在某种程度上很麻烦。是否有某种方法可以为每个 ebuild 静态定义它,例如:
DJANGO_SVN_REV="12120"
在make.conf
. 这在我眼里会干净得多。
因为下次无论出于何种原因我需要重建 django 时,我都需要记住:“哦,我希望它坚持特定的修订版”,下一个问题将是“err, f&!#$?%, 又是什么?”
去这里的最佳方式是什么?
记住:
- 在没有包管理器知识的情况下手动安装包是不行的
- 无法使用手动emerge变量前缀
- 设置 /etc/portage/package.env 将是一种可行的方法(如此处所述),但这对我来说似乎不受支持且很笨拙,因此不受欢迎
- 修改 make.conf 将是一种方法
- 将 ebuild 保持在覆盖中是一种选择
我并不完全反对使用
package.env
. 如果您在您的环境中理解并记录它,它可能是一种有用的方法,可以使用 ebuild 挂钩应用细微更改,同时仍跟踪稳定的 ebuild。我不认为这是修复
-9999
ebuild 修订的合适方法 - 根据“最小惊讶原则”。make.conf
修复软件包版本似乎也不是一个非常明显的地方。一种更简洁的方法是使用 Layman 推出您自己的 ebuild。如果你命名它,
django-1.2_pre12120
那么一旦 Django 1.2 发布并在 Portage 中稳定,它应该更清楚它在做什么,并为你提供一个简单的退出路线。