RkBlog

Hardware, programming and astronomy tutorials and reviews.

Ebuildy Gentoo

Przewodnik po ebuildach Gentoo - tworzenie, wykorzystanie i struktura plików definiujących instalację i sposób kompilacji oprogramowania w Gentoo

Gentoo używa ebuildów - skryptów basha do opisania sposobu kompilacji i instalacji danej aplikacji. Drzewo portage ulokowane w /usr/portage zawiera ebuildy aplikacji pogrupowane na kategorie. Tworzenie własnych ebuildów nie jest trudne i każdy może się tego nauczyć. Niniejszy przewodnik bazuje na devmanual.gentoo.org i przedstawia podstawowe informacje w nim zawarte.

Jak sprawnie tworzyć i testować własne ebuildy

Jeżeli jeszcze nie masz określonego w make.conf katalogu PORTDIR_OVERLAY to dodaj go teraz:
PORTDIR_OVERLAY="/usr/local/portage/"
Gdzie PORTDIR_OVERLAY określa dodatkowy katalog zawierający ebuildy dołączany do głównego drzewa w czasie używania emerge. Po dodaniu wpisu w make.conf stwórz wspomniany katalog, u nas "/usr/local/portage/". W tym katalogu ebuildy również muszą być pogrupowane na kategorie (te same jak w głównym drzewie).
emerge --sync nadpisze wszystkie zmiany wprowadzone w głównym drzewie portage. Ominie PORTDIR_OVERLAY


Jeżeli chcesz stworzyć ebuild ciekawej aplikacji nieobecnej w portage zacznij od sprawdzenia na bugs.gentoo.org czy ktoś już nie zgłosił ebuilda dla tej aplikacji. Jeżeli nie ma to możesz przystąpić do tworzenia ebuilda - stwórz podkatalog-kategorię, jak i katalog-nazwę aplikacji, np:
/usr/local/portage/kde-misc/kcośtam/kcośtam-1.0.0.ebuild


By szybko stworzyć ebuild specyficznej aplikacji skopiuj ebuild podobnej - np. dla aplikacji KDE skopiuj "standardowy" ebuild aplikacji z kde-misc czy kde-base, dla rozszerzenia PHP ebuild z dev-php5 czy dev-php4. Dla aplikacji o specyficznym sposobie instalacji jak wcześniej wspomniane istnieją specjalne funkcje obsługujące ich kompilację i instalację.
Gdy już mamy gotowy ebuild trzeba stworzyć manifest.
ebuild plik.ebuild digest
Wygenerowany zostanie manifest i będzie można emergować pakiet.
RkBlog

Gentoo, 14 July 2008,