В качестве примера, приведенного для ebuild django-9999, для соответствия среде разработчика мне нужно получить R12120 из магистрали. Установка Django вручную невозможна по причинам, связанным с управлением пакетами. Но для бета-версий 1.2 в portage также нет ебилда.
Итак, я сделал следующее:
ESVN_OPTIONS="-r12120" emerge -1a django
Которая установила нужную ревизию из svn. Но это в некотором смысле громоздко. Есть ли способ определить это статически для каждой сборки, например, что-то вроде:
DJANGO_SVN_REV="12120"
в make.conf
. В моих глазах это было бы намного чище.
Потому что в следующий раз, когда мне понадобится пересобрать django по какой-либо причине, я должен помнить: «О, я хотел, чтобы это придерживалось определенной ревизии», и следующий вопрос будет «эээ, f &! # $?%, Что это было снова?»
Какой лучший способ пойти сюда?
Иметь ввиду:
Я не совсем против использования package.env
. Если вы понимаете и документируете это в своей среде, это может быть полезным методом внесения тонких изменений с помощью перехватчиков ebuild, при этом отслеживая стабильные ebuild-файлы.
Я не думаю, что это подходящий способ исправить ревизию -9999
ебилд правда - по "принципу наименьшего удивления". И не make.conf
кажется очевидным местом для исправления версий пакетов.
Более чистый подход - создать собственный ебилд с помощью Layman. Если вы назовете это django-1.2_pre12120
тогда должно быть более очевидно, что он делает, и вам будет проще выйти после того, как Django 1.2 будет выпущен и стабилизирован в Portage.