Ero sivun ”Ebuild” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
p ({{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}) |
|||
(10 välissä olevaa versiota 6 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 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 181: | Rivi 190: | ||
*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]] |