Ero sivun ”Ebuild” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Rivi 37: Rivi 37:
Tätä funktiota kutsutaan, mikäli RESTRICT="fetch" on asetettu ja ebuildin SRC_URI kohdetta ei kyetä noutamaan.
Tätä funktiota kutsutaan, mikäli RESTRICT="fetch" on asetettu ja ebuildin SRC_URI kohdetta ei kyetä noutamaan.
pkg_nofetchin jälkeen muita funktioita ei kutsuta vaan siirrytään ohjelman loppuun.
pkg_nofetchin jälkeen muita funktioita ei kutsuta vaan siirrytään ohjelman loppuun.
pkg_setup
====pkg_setup====
src_unpack
Ajetaan tarkistuksia asetusten suhteen.
src_compile
====src_unpack====
Puretaan SRC_URI-objekti $WORKDIR-muuttujan osoittamaan kansioon ja ajetaan epatch funktio patcheille tarpeen mukaan, tar.bz2 ja tar.gz -pakatuille ohjelmille riittää tässä oletusfunktio.
====src_compile====
Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa.
 
====src_test====
====src_test====
Funktiota kutsutaan src_compilen jälkeen, mikäli FEATURES="test" on määritelty, funktiossa tulee ajaa asennettavan ohjelman tarjoamat yksikkötestaus-rutiinit, oletustoteutuksessa nämä ovat <tt>make check<tt> ja <tt>make test<tt>
Funktiota kutsutaan src_compilen jälkeen, mikäli FEATURES="test" on määritelty, funktiossa tulee ajaa asennettavan ohjelman tarjoamat yksikkötestaus-rutiinit, oletustoteutuksessa nämä ovat <tt>make check<tt> ja <tt>make test<tt>

Versio 22. huhtikuuta 2007 kello 20.52

ebuild
Käyttöliittymä ei
Lisenssi GPL
Kotisivu gentoo.org

Ebuild on kieli jolla kuvaillaan, miten paketteja asennetaan sekä ohjelma, joka toteuttaa kyseisen kielen. Ebuild on käytössä erityisesti Gentoo-jakelussa paketinhallintajärjestelmän osana.

Kieli

ebuild epäilemättä on kielenä monipuolinen, jopa tietyllä tapaa täydellinen. On kuitenkin tärkeää muistaa noudattaa oikeita käytäntöjä tehtäessä paketteja Gentoo-järjestelmään. Esimerkiksi valmiiseen järjestelmään kirjoittaminen useimmissa funktioissa on huonoa tyyliä, ja aiheuttaakin tyypillisesti esimerkiksi portagessa sandbox-loukkauksen.

Muuttujat

Seuraavien tyypillisesti ebuildin alussa määriteltävien muuttujien käyttö on suositeltavaa:

#kuvaus
DESCRIPTION="tässä kerrot mitä ohjelma tekee"
#ohjelman kotisivu
HOMEPAGE="http://hyodyllinen.ohjelma.org"
#mistä ohjelman lähdekoodi haetaan
SRC_URI="ftp://hyodyllinen.ohjelma.org/pub/${P}.tar.bz2"
#ohjelman lisenssi
LICENCE="GPL-2"
#kertoo, mihin slottiin ebuild asentuu, Gentoossa samassa slotissa
#ei voi olla kahta samannimistä pakettia
SLOT="0"
#kertoo mihin avainsanoihin ebuild kuuluu
KEYWORDS="x86 -*"
#kertoo mitkä USE-muuttujat vaikuttavat ebuildiin 
IUSE=""

#kertoo mitkä paketit ovat paketin riippuvuuksia
DEPEND="dev-libs/hyodyllinen-kirjasto"
#kertoo ne ebuildit, jotka ovat ebuildin ajonaikaisia riippuvuuksia
#tyypillisesti dynaaminen kirjastolinkkaus voi hajota vain näihin.
RDEPEND="dev-libs/hyödyllinen-kirjasto"

Funktiot

ebuild-kielessä on otsikon jälkeen bash-syntaksin mukaisia funktioita, joilla on oma osansa paketin asennuksessa. Mitään näistä funktioista ei ole pakko määritellä. Funktioton ebuild toimiikin tyypillisesti autotools-ohjelmaa varten, jolle ei tarvitse määritellä käännösaikaisia valintoja.

pkg_nofetch

Tätä funktiota kutsutaan, mikäli RESTRICT="fetch" on asetettu ja ebuildin SRC_URI kohdetta ei kyetä noutamaan. pkg_nofetchin jälkeen muita funktioita ei kutsuta vaan siirrytään ohjelman loppuun.

pkg_setup

Ajetaan tarkistuksia asetusten suhteen.

src_unpack

Puretaan SRC_URI-objekti $WORKDIR-muuttujan osoittamaan kansioon ja ajetaan epatch funktio patcheille tarpeen mukaan, tar.bz2 ja tar.gz -pakatuille ohjelmille riittää tässä oletusfunktio.

src_compile

Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa.

src_test

Funktiota kutsutaan src_compilen jälkeen, mikäli FEATURES="test" on määritelty, funktiossa tulee ajaa asennettavan ohjelman tarjoamat yksikkötestaus-rutiinit, oletustoteutuksessa nämä ovat make check ja make test

src_install

pkg_preinst pkg_postinst pkg_prerm pkg_postrm pkg_config

Muut ominaisuudet

Import-lauseella voit sisällyttää ebuildiin .eclass-tiedostoja eclass-hakemistosta \#-merkillä alkavat rivit sivuutetaan kommentteina samalla tavalla kuin bashissa.