Muokataan sivua Ebuild

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
{{Ohjelma | nimi=ebuild  | kuva= | kuvateksti=  | lisenssi=[[GPL]]| käyttöliittymä=ei | kotisivu=[http://gentoo.org gentoo.org] }}
{{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 15: Rivi 7:


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


  #kuvaus
  #kuvaus
Rivi 50: Rivi 42:
*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 vastaavat 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 vastavat sopivat muuttujat MY_ -etuliitteellä, esim MY_P. Älä muuta ebuildin nimeä.


====Hakemistomuuttujat====
====Hakemistomuuttujat====
Rivi 57: Rivi 49:
*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 20 KiB.
*FILESDIR="${PORTDIR}/${CATEGORY}/${PN}/files" files-kansio ebuidin hakemistosta tänne voit tallettaa esimerkiksi pienikokoisia patcheja, alle 20kiB.


*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 67: Rivi 59:
====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 dynaamisesti ladattavat kirjastot.
*RDEPEND Ebuildin ajonaikaiset riippuvuudet, esimerkiksi dynaamisestiladattavat 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 73: Rivi 65:
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 kirjatulle 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 kirjattulle 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 84: Rivi 76:


====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 [[sandbox|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 sandboxin sisällä, eikä niissä saisi kajota muuhun järjestelmään.


====pkg_nofetch====
====pkg_nofetch====
Rivi 108: Rivi 86:
Ajetaan tarkistuksia asetusten suhteen.
Ajetaan tarkistuksia asetusten suhteen.
====src_unpack====
====src_unpack====
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.
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====
====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 138: Rivi 115:
*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 189: Rivi 157:
*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 [[gentoo|gentoossa]] saat
Lisää man-sivuja aiheesta gentoossa saat
  [[emerge]] portage-manpages
  emerge portage-manpages


*<tt>[[man]] eutils.[[eclass]]</tt> ...
*<tt>man eutils.eclass</tt> ...


[[Luokka:Paketinhallinta]]
[[Luokka:Ylläpitotyökalut]]
[[Luokka:Gentoo]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetty malline:

Tämä sivu kuuluu seuraavaan piilotettuun luokkaan:

Noudettu kohteesta ”https://www.linux.fi/wiki/Ebuild