Як встановити кілька версій одного пакету в Gentoo?


9

Я хотів би встановити дві (або більше) версії тих же пакетів у своїй системі Gentoo. Я точно знаю, що зіткнення файлів не буде, оскільки встановлено дуже мало файлів, і кожен з них названий на честь версії.

Я знаю про слоти, але вони вказані у файлах ebuild, і припустимо, що я не хочу редагувати жоден файл ebuild з кількох причин.

Я хотів би, щоб встановлені версії були частиною світового пакету, тому їх можна буде перевстановити або видалити як завжди.

Чи є спосіб встановити кілька версій одного пакета? Чи знаєте ви кілька хитрощів Portage для досягнення цього?


Ось для чого призначені слоти. Якщо пакет не прорізаний, то єдине, про що я можу придумати, - це створити особисту накладку та новий пакет / ebuild, який прорізається.
Кіт

@Keith - Це правильна відповідь, чому б не опублікувати це як відповідь?
HedgeMage

@Keith: Якщо це дійсно єдиний спосіб зробити це, тоді опублікуйте це як відповідь, і я з радістю прийму це.
Лоран Пірейн

Відповіді:


9

Ось для чого призначені слоти. Якщо пакет не прорізаний, то єдине, про що я можу придумати, - це створити особисту накладку та новий пакет / ebuild, який прорізається.


2
Трохи натяку на практичний спосіб використання слотів допоможе новачкам :)
Стефано

1

Я думаю, що теоретично ви можете зробити щось нерозумно, як:

$ ROOT=~/package-1.0 emerge =package-1

Але в основному всі матеріали, що не накладаються, накладаються на деякі додаткові обмеження та вимоги, щодо яких не так багато інформації.


1

Що ви можете спробувати (я не впевнений, чи працює він, як очікувалося) - це використовувати /etc/portage/envдля встановлення SLOT конкретних версій пакету. Це може не працювати через кешування метаданих. Навіть якщо це все працює, це загроза і може призвести до несподіваної поведінки. Як завжди, якщо вона зламається, ви можете зберегти шматки.


1

Це старе запитання, але все ще актуальне, і ніхто не запропонував такого простого підходу:

Якщо ви не хочете створювати слоти, і знаєте, що файли не стикаються, просто створіть нову версію в локальному накладенні (після встановлення локального накладання в make.conf) та назвіть її по-іншому. Можливо, щось на кшталт 'mypkg.ebuild'. Не існує закону, який визначає ім'я ebuild, а файли, які він встановлює, повинні мати однакові імена. Скопіюйте файл pkg.ebuild portage у /usr/local/portage/app-class/mypkg-newversion.ebuild, внесіть необхідні зміни до нової версії, побудуйте та запустіть її.

Майте на увазі, що ви не зможете використовувати деякі заздалегідь задані імена змінних ($ {P} та ін.) Під час отримання джерел.


0

Ще одна потенційна річ, яку слід вивчити - це префікс Gentoo

Що може бути життєздатною альтернативою, якщо ви не заперечуєте щодо підтримки 2 екосистем Gentoo для того, щоб надати "альтернативний" пакет.

Це по суті створює "підпростір" для заданого обсягу проекту, а потім використовувати Gentoo по-різному в межах проекту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.