Ero sivun ”Ebuild” versioiden välillä

Siirry navigaatioon Siirry hakuun
2 005 merkkiä lisätty ,  31. maaliskuuta 2016
p
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
p ({{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}})
 
(15 välissä olevaa versiota 7 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{Ohjelma | nimi=ebuild  | kuva= | kuvateksti=  | lisenssi=[[GPL]]| käyttöliittymä=ei | kotisivu=[http://gentoo.org gentoo.org] }}
{{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.
'''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 7: Rivi 15:


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


  #kuvaus
  #kuvaus
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]], tai muun [[jakelu | jakelun]], tarjoama versiomuotoilu ei sovi määrittele vastavat sopivat muuttujat MY_ -etuliitteellä, esim MY_P. Älä muuta ebuildin nimeä.
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 20kiB.
*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 dynaamisestiladattavat kirjastot.
*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 kirjattulle versiolle pienempi, suurempi, yhtäsuuri kuin, suurempi tai yhtä suuri kuin tai pienempi tai yhtä suuri kuin.
*<, >, =, >= 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 76: Rivi 84:


====Muut muuttujat====
====Muut muuttujat====
*RESTRICT, rajoittaa portagen ominaisuuksia listan mukaan, listaerottimena toimii välilyönti
**binchecks, jätetään binäärien laadunvalvonta suorittamatta.
**confcache, ei käytetä confcachea
**fetch, SRC_URI-kohdetta ei yritetä hakea
**mirror, älä hae SRC_URI-kohdetta gentoon omilta palvelimilta
**primaryuri, hae ensisijaisesti SRC_URI-kohde suoraan SRC_URI:sta
**strip, ei poisteta debug-symboleja
**test, ei ajeta src_test-funktiota
**userpriv
*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_EXECSTACK
**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 86: 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 115: 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===
*Import-lauseella voit sisällyttää ebuildiin .eclass-tiedostoja eclass-hakemistosta  
*Import-lauseella voit sisällyttää ebuildiin .eclass-tiedostoja eclass-hakemistosta  
*#-merkillä alkavat rivit sivuutetaan kommentteina samalla tavalla kuin [[bash]]issa. Omia muuttujia voidaan määritellä bash-tyylisesti missä tahansa ebuidin kohdassa.
*'#'-merkillä alkavat rivit sivuutetaan kommentteina samalla tavalla kuin [[bash]]issa. Omia muuttujia voidaan määritellä bash-tyylisesti missä tahansa ebuidin kohdassa.


===Tyyli===
===Tyyli===
Rivi 158: 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:Ylläpitotyökalut]]
[[Luokka:Paketinhallinta]]
[[Luokka:Gentoo]]
10 147

muokkausta

Navigointivalikko