Использование overlay в Gentoo
Overlay (оверлей) используется для добавления или замены ебилдов в дереве пакетов. Каталог оверлея имеет структуру, аналогичную дереву пакетов. При работе emerge содержимое оверлеев виртуально накладывается поверх основного дерева пакетов, заменяя существующие файлы или дополняя новыми файлами.
Рассмотрим простой случай - вы желаете добавить в дерево пакетов свой ебилд. Необходимо создать каталог, в котором будет находиться оверлей: mkdir /usr/local/portage. В этом каталоге следует использовать такую же иерархию, как и в основном дереве пакетов (категория/программа/версия_программы.ebuild). Допустим, мы хотим добавить в оверлей ebuild для PECL-расширения PHP bcompiler. Определяем, что PECL-расширения лежат в каталоге dev-php5 и называются pecl-extname. Будем придерживаться схемы именования основного дерева. Значит, в /usr/local/portage нам нужно создать каталог dev-php5, а в нем создать каталог pecl-bcompiler. В каталог pecl-bcompiler уже кладем свой ебилд, называя его примерно так: pecl-bcompiler-0.9.3.ebuild.
После этого необходимо создать digest-файл. Digest-файл содержит RMD160, SHA1 и SHA256 хэш-суммы для самого ебилда, архива исходных кодов и дополнительных файлов, скачивание которых задается в ебилде. Создается digest-файл командой:
ebuild /usr/local/portage/category/program/program-ver.ebuild digest
Digest-файл будет создан в каталоге /usr/local/portage/category/program/, и будет называться Manifest. В нашем случае необходимо выполнить команду:
ebuild /usr/local/portage/dev-php5/pecl-bcompiler/pecl-bcompiler-0.9.3.ebuild digest
После этого можно просто установить пакет при помощи emerge.
2 комментариев
Комментарий от: Peter
Да, действительно. Спасибо за комментарий, не знал про этот момент.
Идет загрузка формы...
Комментарий от: Alex
digest
, насколько мне известно, объявлен deprecated, и следует использоватьmanifest
, т.е.ebuild <ebuild> manifest