Я хотел бы установить две (или более) версии одного и того же пакета в моей системе Gentoo. Я точно знаю, что не будет никакого столкновения файлов, так как там очень мало установленных файлов, и каждый из них назван в соответствии с версией.
Я знаю о слотах, но они указаны в файлах ebuild, и давайте предположим, что я не хочу редактировать файлы ebuild по нескольким причинам.
Я бы хотел, чтобы установленные версии были частью пакета world, чтобы их можно было переустанавливать или удалять как обычно.
Есть ли способ установить несколько версий одного и того же пакета? Знаете ли вы о некоторых хитростях Portage для достижения этой цели?
package-management
gentoo
version
emerge
Лоран Пирейн
источник
источник
Ответы:
Это то, что слоты для. Если пакет не имеет слотов, то единственное, о чем я могу подумать, - это создать персональный оверлей и новый пакет / ebuild, который слотится.
источник
Я думаю, что в теории вы могли бы сделать что-то глупое, как:
Но в основном все не оверлейные материалы сильно подвержены некоторым дополнительным ограничениям и требованиям, о которых не так много информации.
источник
То, что вы можете попробовать (я не уверен, работает ли он так, как ожидалось), это использовать
/etc/portage/env
для установки SLOT для определенных версий пакета. Это может не работать из-за кэширования метаданных. Даже если это работает, это - комок и может привести к неожиданному поведению. Как всегда, если он сломается, вы можете сохранить куски.источник
Это старый вопрос, но он все еще актуален, и никто не предложил следующий простой подход:
Если вы не хотите создавать слоты и знаете, что файлы не сталкиваются, просто создайте новый ebuild в локальном оверлее (после настройки локального оверлея в make.conf) и назовите его по-другому. Возможно, что-то вроде «mypkg.ebuild». Нет закона, который бы указывал имя ebuild и файлы, которые он устанавливает, должны иметь одинаковые имена. Скопируйте файл pkg.ebuild для portage в /usr/local/portage/app-class/mypkg-newversion.ebuild, внесите необходимые изменения для новой версии, создайте ebuild и запустите его.
Имейте в виду, что вы не сможете использовать некоторые предопределенные имена переменных ($ {P} и др.) При извлечении источников.
источник
Еще одна потенциальная вещь для изучения - Gentoo Prefix
Это может быть жизнеспособной альтернативой, если вы не возражаете против поддержки двух экосистем Gentoo для предоставления «альтернативного» пакета.
По сути, это создает «подпространство» для заданной области проекта, а затем по-разному использует Gentoo в этой области проекта.
источник