LINUX.ORG.RU

SLOT и установка одной версии одного пакета одновременно в разные места

 ,


1

2

Я хочу одновременно установить несколько образов программы в разные директории (пакеты из разных оверлеев, но с одинаковыми именами и номерами версий)

SLOT можно использовать, если разные версии программы сами встают в разные директории (или это ebuild так патчит программу, чтобы она встала в отдельную директорию), тогда SLOT просто описывает, от какой версии надо зависеть или проверять зависимости.

А если я хочу установить разные образы программы, которая вообще-то всегда встаёт в одно и то же место, причем не менять ebuild-ы
(разные переменные можно назначать разным пакетам так)
то что мне делать?

т.е. нужно что-то вроде MAKEOPTS="--prefix=/usr/local/v1", только для ./configure

тут есть такая штука как $EPREFIX (с припиской Do not modify this variable) и prefix.eclass

Ещё вспоминают такое (но что это и как им пользоваться?):
autoconf macros:
AC_PREFIX_DEFAULT
AC_PREFIX_PROGRAM

Может какую другую переменную надо назначать (которую я не знаю)?



Последнее исправление: Indaril_Shpritz (всего исправлений: 5)

пара ссылок по теме:
http://dev.gentoo.org/~zmedico/portage/doc/ch06s03s04.html
http://www.gossamer-threads.com/lists/gentoo/dev/199253

куда лучше разные версии складывать - в /usr/local, в /opt ?
мне ещё кроме префикса суффикс нужен, чтобы не только отличить от оснвоной версии, установленной в ${ROOT}, но и между собой...

Indaril_Shpritz
() автор топика
Ответ на: комментарий от Indaril_Shpritz

для размещения EPREFIX в произвольном месте билда есть функция eprefixify из prefix.eclass
но использования этого класса/функции нужны специально пропатченные билды

Indaril_Shpritz
() автор топика

Идея: пропихнуть в дерево генты новый esuffix.class

ESUFFIX=«SLOT_${SLOT//\//_}» [br $ echo ${ESUFFIX}
SLOT_7_5

ну и заменять @GENTOO_PORTAGE_ESUFFIX@ при помощи функции esuffixify

правда для этого понадобится новый EAPI=«6»...

Indaril_Shpritz
() автор топика

авторы ебилда для gcc ( megabaks) - враги народа, что не сделали такую штуку сразу. Как будто кроме gcc не бывает приложений, которые могут потребоваться в варианте side-by-side

Indaril_Shpritz
() автор топика

т.е. нужно что-то вроде MAKEOPTS="--prefix=/usr/local/v1", только для ./configure

Во-первых, EXTRA_ECONF. А во-вторых, вбрось идею о еклассе в мэйллист. Если приложишь реализацию - вообще зачёт.

Но на самом деле это редко бывает нужно, да и универсального решения здесь не будет - нужно будет пилить под каждую билд-систему. А кому надо - те и сейчас могут запилить подобное в локальных оверлеях

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.