LINUX.ORG.RU

Установка отдельного пакета в кастомный корневой каталог

 , ,


3

2

Вот хочу я, например, поставить тот же firefox-20.0.1 параллельно с уже имеющимся 17.0.5. Вот я его размаскировал. Можно сделать так:

ROOT="/opt" emerge firefox
Тогда портаж предложит мне поставить полсистемы в /opt, всё, от чего зависит огнелис. Решение фиговое - при обновлениях, если я правильно понимаю, эти самые полсистемы будут оставаться в замороженном состоянии (так?).
Попробовал сделать так:
1) в /etc/portage/env создать файл opt_root_dir.conf следующего содержания:
ROOT="/opt"
2) /etc/portage/package.env/firefox
=www-client/firefox-20.0.1 opt_root_dir.conf
3) emerge firefox
После этого я получаю сообщение
!!! Illegal variable 'ROOT' assigned in '/etc/portage/env/opt_root_dir.conf'
и предложение поставить всё в обычный корень. Почему так?

cast megabaks, обычно выручал....

★★

Последнее исправление: CYB3R (всего исправлений: 2)
Ответ на: комментарий от templarrr

Это ещё хуже, чем первый вариант.

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

Хм. Не понимаю, почему пакет должен собраться корректно без всех зависимостей.

emerge --nodeps firefox даёт то же самое сообщение о том, что в /etc/portage/package.env/opt_root_dir.conf неправильно указана переменная ROOT.

yura_ts ★★
() автор топика
Последнее исправление: yura_ts (всего исправлений: 1)

элементарно, Ватсон!

вместо установки делаешь из firefox бинарный пакет (emerge -B или как-то так, в мане посмотри), потом просто распаковываешь этот бинарный пакет куда тебе нужно

ПРОФИТ!!

anonymous
()
Ответ на: комментарий от yura_ts

Дык судя по описанию зависимости для firefox'а уже на месте, ведь стоит в системе 17.0.5. Может только понадобится бампнуть nspr и nss.

Только что проверил, портаж послушно согласился собрать мне фаерфокс в отдельную директорию отличную от / без сборки зависимостей. Никаких opt_root_dir.conf

По поводу неправильной переменной: какое-то время назад также юзал package.env/package_name. А буквально вчера нужно было повторить для одного пакета - не срослось. Если делать как тут http://wiki.gentoo.org/wiki//etc/portage/env, то все нормально. Мб я чтото упустил, а мб чтото поменяли в портаже, не знаю, но сверься с вики на всякий случай. Подозреваю, что он хочет не package.env/firefox, а package.env/www-client/firefox.

cchr
()

у меня тоже такое не работает.
почему - я пока хз, я вообще только домой пришёл
Pinkbyte, qnikst, отвечайте ответы.
вы вроде вкурсе закулисных игр.

megabaks ★★★★
()

я пока могу только предположить, что это из-за кучи изменений в основных еклассах, в том числе из-за EAPI5 - сам вчера(или не вчера?) перепиливал пачку ебилдов из-за «добровольно-принудительного» переезда на python-r1.eclass и distutils-r1.eclass

megabaks ★★★★
()
Ответ на: комментарий от megabaks

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

qnikst ★★★★★
()

я сам не пробовал, но если система сборки - autotools или подобная, то можно, например, через EXTRA_ECONF передать что-то вроде --prefix=/opt

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от qnikst

А вменяемый способ в принципе существует? Кроме

ROOT="/opt" emerge frefox
при котором полсистемы ставится в /opt, а потом не обновляется при emerge -auvDN world?

yura_ts ★★
() автор топика
Последнее исправление: yura_ts (всего исправлений: 1)
Ответ на: комментарий от yura_ts

написал бы в gentoo-dev@ / gentoo-user@. Может подскажут чего, я не вижу адекватного варианта кроме создания под пакета, который будет ставиться в opt и при этом обладать требуемыми свойствами.

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