LINUX.ORG.RU

Кто и куда устанавливает .eselect файлы-модули для одноимённой утилиты?

 , ,


1

2

Эти файлы уже в дереве должны быть, или их надо устанавливать? Если их устанавливают, то в какую директорию? И кто этим должен заниматься, если эти файлы общие, а слотовые билды будут выдавать на общие файлы «slot conflict».

Надо ли вызывать утилиту eselect из своего ebuild-а, на каком шаге билда это надо делать?

читал:
https://wiki.gentoo.org/wiki/Eselect
https://wiki.gentoo.org/wiki/Project:Eselect/User_guide
https://wiki.gentoo.org/wiki/Project:Eselect/Developer_guide

они считают, что мои вопросы - это и не вопросы вовсе, поэтому не отвечают на них.

★★☆

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

Если их устанавливают, то в какую директорию?

/usr/share/eselect/modules/

И кто этим должен заниматься

Если твой слотовый пакет называется foo, создай отдельный пакет app-eselect/eselect-foo и сделай, чтобы каждый из слотовых зависел от него.

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

сделай, чтобы каждый из слотовых зависел от него.

У меня была версия пакета foo-1.0.0, я выпустил 2.0.0, зависят они оба от одного и тогоже eselect-foo. Каким образом у пользователя заменится скрипт в /usr/bin/foo, который вызывает бинарный файл нужной версии?

В смысле как результат автоматизированного обновления, а не после того, как пользователь руками выполнит команды eselect foo set N

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

да, в большинстве случаев ебилды дёргают eselect foo update, иногда в своей скриптовой обвязке, на стадиях pkg_postinst и pkg_postrm

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

Допустим, что у моей софтины есть плагины. При установке плагина ему надо прописать симлинки в директории для каждой версии софтины.

Как ебилд плагина узнает о том, что установилась новая версия новый слот моей софтины и пропишет симлинк?

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

мм... никак? Может лучше пусть все версии софтины ищут плагины в одной и той же директории (до тех пор пока плагины совместимы)?

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

я сначала тоже думал, что сделать плагины тоже через eslect,
но вообще, плагину лучше знать, с какими версиями он совместим.

Кроме того, софтина не может содержать симлинк на известное место, так как по-идее она не знает, какие у неё есть плагины.

Поэтому вопрос остаётся открытым

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

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

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

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

А нет ли такого где-нибудь в руководствах? Ведь USE-флаги на разные версии часто применяются, например для питона.

Я бы хотел, чтобы в руководстве было написано, как сделать глобальную переменную в make.conf, и как вообще это всё должно работать.

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от eternal_sorrow

я такое слово вообще первый раз вижу
https://wiki.gentoo.org/wiki//etc/portage/make.conf#USE_EXPAND

мне кажется, что я имею в виду что-то другое

хотя не уверен:
https://devmanual.gentoo.org/general-concepts/use-flags/index.html#use_expand...

но про питон там ничего не сказано

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

Подписался на тред на всякий случай, самому интересно. Мне почему то кажется, что USE_EXPAND это то что тебе нужно, но ты еще не понял, как оно работает.

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

там страшные слова пишут:

This must not be modified without discussion on the gentoo-dev list, and it must not be modified in any subprofile.

Как-то это через-чур для типовой ситуации написания пакета для приложения.

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

Я так не умею. Мне туториал нужен: «Как опакетить слотовое приложение, и настраивать плагины к нему при помощи USE-флагов».

Можно на примере firefox. Но я просто к тому, что таких приложений миллионы.

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 2)
Ответ на: комментарий от eternal_sorrow

и не парься

что-то я сомневаюсь, что в генте вообще можно не париться.

надо подумать над сценариями использования.

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

# make.conf
USE_EXPAND=«${USE_EXPAND} FF_TARGETS»
FF_TARGETS=«59 63 64»

некий
plugin-1.0.0.ebuild
...
IUSE=«ff_targets_59 +ff_targets_63 +ff_targets_64»
...

Но почему тогда значения переменной PYTHON_TARGETS ~= python2_7
а не python_targets_2_7
?

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

это непонятное объяснение.

Мой вопрос про то, каким образом значение в переменной PYTHON_TARGETS в make.conf сопоставляется с тем, что написано в переменной IUSE в .ebuild-файле.

неужели они там внутри пишут python_targets_python2_7

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от eternal_sorrow

здесь всё ясно. Осталось понять, как с этим работать, из-за грозного запрета. Если я у себя впишу USE_EXPAND в make.conf, то у всех остальных эти ebuild-файлы устанавливаться не будут.

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

почему не будут? будут. если пользователь захочет, тоже пропишет USE_EXPAND, если не захочет, будет писать USE-флаги целиком (как python_targets_python2_7).

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

если пользователь захочет, тоже пропишет USE_EXPAND

неа, потому что он ниоткуда об этом не узнает, что надо прописывать. кроме того, ebuild-файлы будут показываться со страшными длинными use-флагами в выводе emerge.

Хорошо бы было где-то это прописать один раз на весь оверлей.

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от eternal_sorrow

не парься

https://devmanual.gentoo.org/ebuild-writing/variables/

If a USE_EXPAND variable is used to control whether certain optional components are installed, the correct thing to do if the variable is unset is generally to install all available components.

И если у меня 60 версий файрфокса, у меня будет 60 уровней вложенности скобочек...

невозможно

в 2008-м году тоже так думали:
https://forums.gentoo.org/viewtopic-t-703655-view-previous.html
10 лет, прогресса нет :)

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 3)
Ответ на: комментарий от eternal_sorrow

ты еще не понял, как оно работает.

И у меня вопрос. А зачем, собственно проводить разворачивание для этих USE-флагов, а при выводе проводить сворачивание?

Ладно, если бы путаница возникала. А так ведь все эти флаги итак имеют уникальный префикс (у питона по крайней мере).

Чем использование механизма USE_EXPAND лучше чем просто использование комплекта уникальных флагов?

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

Просто удобство. Не хочешь - не используй. ты задал вопрос

как сделать глобальную переменную в make.conf

я попытался ответить

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

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

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от eternal_sorrow

это только на первый взгляд, если не париться. Но интернет шепчет, что тут не всё так просто, и repoman будет варнинги выдавать и вообще

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.