LINUX.ORG.RU

[Gentoo][ebuild(5)][вопрос] Добавление в меню

 ,


0

0

Пощупал «simon tatham's puzzle collection». Понравилось. Решил наваять себе в оверлей ебилд. Всё вроде нормально выходит, но завис на последнем этапе. Как добавить ярлыки на эти самые пазлы в меню четверокед?

ЗЫ. Пробовал make_desktop_entry засовывать в pkg_postinst(), но почему-то не заработало

Зачем же его в postinst пихать? размести его в src_install()
Пример тута: /usr/portage/kde-misc/ksplasher/ksplasher-2.0_beta2.ebuild

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

Ну, судя по

All modifications required on the live-filesystem before and after the package is merged should be placed here. Also commentary for the user should be listed here as it will be displayed last.

Initial working directory of $PWD.

Подумалось, что оно мне и надо. Хорошо, попробую в src_install().

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

> All modifications required on the live-filesystem
Так это не нужно тут совсем.

В фазе src_install формируется дерево файлов и каталогов (image), которое будет потом установлено(скопировано) в систему.
make_desktop_entry генерирует desktop файл и размещает его в image, в ${PATH_TO_IMAGE}/usr/share/applications/
Тоже самое, например, делает make install - в этой фазе оно копирует файлы из временной директории в image директорию.

Фаза src_install выполняется в «песочнице», т.е. оперировать файлами вне этих временных директорий нельзя.

pkg_postinst нужен, если требуются модификации не пренадлежащих этому пакету файлов или выполнение каких-то внешних команд, которые меняют внешние файлы. Эта фаза работает без песочницы, т.е. потенциально в ней можно сделать всё что угодно с системой.

Если всё-таки проделать операции, подобные make_desktop_entry в фазе pkg_postinst, то новосозданный файл не зарегестрируется в /var/db/pkg/${CATEGORY}/${P}/CONTENTS и следовательно не будет находиться под контролем пакетного менеджера. (он не удалится при удалении пакета и т.д.)

По этому, по-возможности, фазой pkg_postinst нужно пользоваться только в крайних случаях. (ну или если надо просто вывести сообщение после инсталляции)

Nao ★★★★★
()

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

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