Ero sivun ”Ebuild” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
p ({{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}) |
|||
(12 välissä olevaa versiota 7 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
{{Ohjelma | nimi=ebuild | kuva= | | {{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | ||
{{Ohjelma | |||
| nimi=ebuild | |||
| kuva= | |||
| kuvateksti= | |||
| lisenssi=[[GPL]] | |||
| käyttöliittymä=ei | |||
| kotisivu=[http://gentoo.org gentoo.org] | |||
}} | |||
'''ebuild''' on kieli jolla kuvaillaan, miten paketteja asennetaan sekä ohjelma, joka toteuttaa kyseisen kielen. Ebuild on käytössä erityisesti [[Gentoo]]-[[jakelu|jakelussa]] [[paketinhallintajärjestelmä| paketinhallintajärjestelmän]] osana. | |||
==Kieli== | ==Kieli== | ||
Rivi 42: | Rivi 50: | ||
*CATEGORY=kategoria | *CATEGORY=kategoria | ||
Näitä on hyvä käyttää SRC_URI:n ja muun tarvittavan kanssa. Mikäli [[gentoo| gentoon]] | Näitä on hyvä käyttää SRC_URI:n ja muun tarvittavan kanssa. Mikäli [[gentoo|gentoon]] tai muun [[jakelu|jakelun]] tarjoama versiomuotoilu ei sovi, määrittele vastaavat sopivat muuttujat MY_ -etuliitteellä, esim. MY_P. Älä muuta ebuildin nimeä. | ||
====Hakemistomuuttujat==== | ====Hakemistomuuttujat==== | ||
Rivi 49: | Rivi 57: | ||
*WORKDIR="${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work" kertoo mihin hakemistoon ohjelman SRC_URI-objektit puretaan tai siirretään kääntämistä, tai muuta, varten. | *WORKDIR="${PORTAGE_TMPDIR}/portage/${CATEGORY}/${PF}/work" kertoo mihin hakemistoon ohjelman SRC_URI-objektit puretaan tai siirretään kääntämistä, tai muuta, varten. | ||
*FILESDIR="${PORTDIR}/${CATEGORY}/${PN}/files" files-kansio ebuidin hakemistosta tänne voit tallettaa esimerkiksi pienikokoisia patcheja, alle | *FILESDIR="${PORTDIR}/${CATEGORY}/${PN}/files" files-kansio ebuidin hakemistosta tänne voit tallettaa esimerkiksi pienikokoisia patcheja, alle 20 KiB. | ||
*S="${WORKDIR}/${P}" Tämä kertoo pääasiallisen kansion, jossa työ tehdään oletusasetusta voi muokata tarpeen mukaan, yleensä suhteessa WORKDIR:iin. | *S="${WORKDIR}/${P}" Tämä kertoo pääasiallisen kansion, jossa työ tehdään oletusasetusta voi muokata tarpeen mukaan, yleensä suhteessa WORKDIR:iin. | ||
Rivi 59: | Rivi 67: | ||
====Riippuvuusmuuttujat==== | ====Riippuvuusmuuttujat==== | ||
*DEPEND Ebuildin riippuvuudet, näiden tulee olla asennettuina, ennen kuin ebuild ajetaan. | *DEPEND Ebuildin riippuvuudet, näiden tulee olla asennettuina, ennen kuin ebuild ajetaan. | ||
*RDEPEND Ebuildin ajonaikaiset riippuvuudet, esimerkiksi | *RDEPEND Ebuildin ajonaikaiset riippuvuudet, esimerkiksi dynaamisesti ladattavat kirjastot. | ||
*PDEPEND Ebuildin jälkeisriippuvuudet, nämä tulee asentaa ebuildin ajon jälkeen. | *PDEPEND Ebuildin jälkeisriippuvuudet, nämä tulee asentaa ebuildin ajon jälkeen. | ||
*PROVIDE Kuvailee paketin tarjoaman virtuaalipaketin, älä käytä, jos et tiedä, mitä olet tekemässä. | *PROVIDE Kuvailee paketin tarjoaman virtuaalipaketin, älä käytä, jos et tiedä, mitä olet tekemässä. | ||
Rivi 65: | Rivi 73: | ||
Dynaamisten riippuvuuksien määrittely seuraavia yhdistelemällä loogisina lausekkeina. riippuvuudet ilmaistaan pitkässä muodossa kategoria/paketti-(versio) | Dynaamisten riippuvuuksien määrittely seuraavia yhdistelemällä loogisina lausekkeina. riippuvuudet ilmaistaan pitkässä muodossa kategoria/paketti-(versio) | ||
*<, >, =, >= ja <= nämä kuvaavat, että riippuvuuden version tulee olla | *<, >, =, >= ja <= nämä kuvaavat, että riippuvuuden version tulee olla kirjatulle versiolle pienempi, suurempi, yhtäsuuri kuin, suurempi tai yhtä suuri kuin tai pienempi tai yhtä suuri kuin. | ||
*use? riippuvuus on voimassa, mikäli USE-muuttuja use on asetettu. Vastaavasti ei voimassa kun !use?. | *use? riippuvuus on voimassa, mikäli USE-muuttuja use on asetettu. Vastaavasti ei voimassa kun !use?. | ||
Rivi 86: | Rivi 94: | ||
**userpriv | **userpriv | ||
QA-muuttujat | *QA-muuttujat Nämä muuttujat vaientavat portagen laadunvalvontavaroituksia. Muuttujien tarkoitus on lähinnä estää varoitukset suljetun lähdekoodin binääreistä, joita ei voida käytännössä korjata. | ||
*QA_TEXTRELS | **QA_TEXTRELS | ||
*QA_EXECSTACK | **QA_EXECSTACK | ||
*QA_WX_LOAD | **QA_WX_LOAD | ||
===Funktiot=== | ===Funktiot=== | ||
ebuild-kielessä on otsikon jälkeen [[Bash-skriptaus|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. src-alkuiset funktiot ajetaan tyypillisesti sandboxin sisällä, eikä niissä saisi kajota muuhun järjestelmään. | ebuild-kielessä on otsikon jälkeen [[Bash-skriptaus|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. src-alkuiset funktiot ajetaan tyypillisesti [[sandbox|sandboxin]] sisällä, eikä niissä saisi kajota muuhun järjestelmään. | ||
====pkg_nofetch==== | ====pkg_nofetch==== | ||
Rivi 100: | Rivi 108: | ||
Ajetaan tarkistuksia asetusten suhteen. | Ajetaan tarkistuksia asetusten suhteen. | ||
====src_unpack==== | ====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. | Puretaan SRC_URI-objekti $WORKDIR-muuttujan osoittamaan kansioon ja ajetaan eutils.eclassin epatch-funktio patcheille tarpeen mukaan, tar.bz2 ja tar.gz -pakatuille ohjelmille riittää tässä oletusfunktio. | ||
====src_compile==== | ====src_compile==== | ||
Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa. | Tässä funktiossa käännetään lähdekoodi tai tehdään muuta vastaavaa. | ||
Rivi 129: | Rivi 138: | ||
*use_enable valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa | *use_enable valinta [configure-valitsin=valinta] [configure-valitsinasetus], palauttaa | ||
<tt>--enable-configure-valitsin=configure-valitsinasetus</tt> tai disable, mikäli muuttujaa ei ole määritelty. | <tt>--enable-configure-valitsin=configure-valitsinasetus</tt> tai disable, mikäli muuttujaa ei ole määritelty. | ||
====Tulostusfunktiot==== | |||
*einfo "viesti", merkityksetön tuloste esimerkiksi asennuksen edistymisestä | |||
*elog "viesti", tuloste, joka on tarkoitettu huomioitavaksi ja joka tulostetaan myös logeihin | |||
*ewarn "varoitusviesti", varoitustuloste | |||
*eerror "virheilmoitus", virhetuloste | |||
*ebegin "tapahtumailmoitus", tulostaa ilmoituksen tapahtumasta, jonka onnistumisesta voidaan ilmoittaa funktiolla eend. | |||
*eend <onnistuma> "virheilmoitus" jos onnistuma ei ole 0 tulostetaan virheilmoitus, muuten ilmoitetaan onnistumisesta. | |||
===Muut ominaisuudet=== | ===Muut ominaisuudet=== | ||
Rivi 172: | Rivi 189: | ||
*clean, siistii ebuildin luoman hakemistopuun $PORTAGE_TMPDIR:stä | *clean, siistii ebuildin luoman hakemistopuun $PORTAGE_TMPDIR:stä | ||
*package, luo binääripaketin tar.bz2-muodossa $D:n hakemistopuusta ja asettaa sen PGKDIR="${PORTDIR}/packages"-muuttujan osoittamaan hakemistoon | *package, luo binääripaketin tar.bz2-muodossa $D:n hakemistopuusta ja asettaa sen PGKDIR="${PORTDIR}/packages"-muuttujan osoittamaan hakemistoon | ||
*rpm, luo package-toimintoa vastaavasti [[rpm|rpm-paketin]], tämä paketti ei välttämättä toimi kuitenkaan kaikissa [[jakelu| jakeluissa]] ja sen ominaisuudet saattavat olla vajavaiset. | *rpm, luo package-toimintoa vastaavasti [[rpm|rpm-paketin]], tämä paketti ei välttämättä toimi kuitenkaan kaikissa [[jakelu|jakeluissa]] ja sen ominaisuudet saattavat olla vajavaiset. | ||
==Lähdekoodin muokkaus- ja uudelleenasennusesimerkki== | |||
Esimerkki squidin ohjelmakoodin muuttamisesta ja uudelleenasennuksesta. Squid on aiemmin jo asennettu järjestelmään. | |||
$ sudo su | |||
# cd /usr/portage/net-proxy/squid | |||
# ebuild squid-3.4.5.ebuild digest | |||
# ebuild squid-3.4.5.ebuild fetch | |||
# ebuild squid-3.4.5.ebuild unpack | |||
# cd /var/tmp/portage/net-proxy/squid-3.4.5/work/squid-3.4.5/src/ | |||
# $EDITOR <tiedosto> tai aja omat patch-tiedostot | |||
# cd /usr/portage/net-proxy/squid | |||
# ebuild squid-3.4.5.ebuild compile | |||
# ebuild squid-3.4.5.ebuild install | |||
# ebuild squid-3.4.5.ebuild qmerge | |||
==Muuta luettavaa== | ==Muuta luettavaa== | ||
*[[portage]] | |||
*[[emerge]] | |||
*[[eclass]] | |||
===Man-sivut=== | ===Man-sivut=== | ||
*<tt>man 1 ebuild</tt> ebuild-ohjelman man-sivu | *<tt>[[man]] 1 ebuild</tt> ebuild-ohjelman man-sivu | ||
*<tt>man 5 ebuild</tt> ebuild-tiedostorakenteen, tai kielen, man-sivu | *<tt>[[man]] 5 ebuild</tt> ebuild-tiedostorakenteen, tai kielen, man-sivu | ||
Lisää man-sivuja aiheesta gentoossa saat | Lisää man-sivuja aiheesta [[gentoo|gentoossa]] saat | ||
emerge portage-manpages | [[emerge]] portage-manpages | ||
*<tt>man eutils.eclass</tt> ... | *<tt>[[man]] eutils.[[eclass]]</tt> ... | ||
[[Luokka: | [[Luokka:Paketinhallinta]] | ||
[[Luokka:Gentoo]] |