RkBlog

Hardware, programming and astronomy tutorials and reviews.

Opis elementów ebuildów

Zależności

Składnia dla DEPEND czy RDEPEND jest identyczna i wygląda mniej więcej ta:
DEPEND="dev-lang/ruby
    dev-ruby/ruby-gtk2
    dev-ruby/mysql-ruby"
Każda zależność oddzielana jest spacją, lecz zaleca się umieszczanie jeden zależności w linii ze względu na czytelność. Można też podać zależność do konkretnej wersji:
DEPEND=">=dev-libs/openssl-0.9.7d"
>=app-misc/foo-1.23  Wersja 1.23 lub nowsza wymagana (wyższy numer wersji)
>app-misc/foo-1.23  Tylko wersja nowsza od 1.23 jest wymagana
~app-misc/foo-1.23  Wersja 1.23 lub każda 1.23-r* wymagana
=app-misc/foo-1.23   Tylko wersja 1.23 wymagana. Zaleca się stosowanie ~
<=app-misc/foo-1.23  Wersja 1.23 lub starsza wymagana
<app-misc/foo-1.23  Wersja starsza od 1.23 wymagana

Kolizje pakietów (nie można zainstalować dwóch konfliktujących pakietów) określa się za pomocą znaku !
RDEPEND="!app-misc/foo"

By określić zależność jedną z kilku wystarczy użyć konstrukcji:
DEPEND="|| ( app-misc/foo app-misc/bar )"
Powyższy przykład oznacza że dana aplikacja wymaga foo lub bar.


Slotowanie

Sloty używane są do instalowania w systemie różnych wersji tej samej aplikacji - np. GTK+ 1 i 2 czy QT 3 i 4. SLOT="0" oznacza brak slotu. By umożliwić instalację różnych wersji obok siebie wystarczy podać numery slotów (od 1 w górę) w ebuildach.

Wiadomości

Do wyświetlania wiadomości różnego typu służą funkcje elog,einfo, ewarn i eerror. elog wyświetla wiadomość, która również jest logowana przez portage i paludisa. einfo wyświetla tekst, który nie jest logowany. ewarn służy do wyświetlania ostrzeżeń, a eerror służy do wyświetlania dodatkowych komunikatów błędów i zazwyczaj zawsze powinno po niej występować die. Przykłady:
pkg_postinst() {
    elog "You will need to set up your /etc/foo/foo.conf file before"
    elog "running foo for the first time. For details, please see the"
    elog "foo.conf(5) manual page."
}

src_compile() {
    einfo "Starting a silent compile that takes hours."
    ./build
}


Zmienne

  • P - Nazwa pakietu i numer wersji, bez rewizji (r-*)
  • PN - Nazwa pakietu
  • PV - Wersja pakietu bez rewizji
  • PR - Rewizja pakietu lub r0 jeżeli nie istnieje
  • PVR - Wersja pakietu i rewizja, np. 6.3-r0, 6.3-r1
  • PF - Nazwa, wersja i rewizja pakietu
  • A - Wszystkie pliki źródłowe
  • CATEGORY - Kategoria pakietu, np. app-editors
  • FILESDIR - Ścieżka do folderu files/ ebuildu używanego do przechowywania małych łat i plików (równoznaczne z "${PORTDIR}/${CATEGORY}/${PN}/files")
  • WORKDIR - Ścieżka do głównego katalogu budowania pakietu (równoznaczne z "${PORTAGE_TMPDIR}/portage/${PF}/work")
  • T - Ścieżka do katalogu tymczasowego do wykorzystania przez ebuild ("${PORTAGE_TMPDIR}/portage/${PF}/temp")
  • D - Ścieżka do tymczasowego katalogu instalacji ("${PORTAGE_TMPDIR}/portage/${PF}/image)
  • ROOT - Ścieżka do głównego katalogu (gdy nie używasz ${D} dodawaj ${ROOT} do ścieżek)
RkBlog

Ebuildy Gentoo, 14 July 2008, Piotr Maliński

Comment article