Gentoo Logo

Kiistö: Tämä käsikirja on vanhentunut eikä sitä enää ylläpidetä.


[ << ] [ < ] [ Etusivu ] [ > ] [ >> ]


6. Ebuild-sovellus

Sisällysluettelo:

6.a. Emerge ja Ebuild

Ebuild-sovellus on alemman tason rajapinta Portageen. Sillä voi käyttää ebuild-tiedostojen yksittäisiä toimintoja. Mahdollista on vaikkapa asentaa koko sovellus askel askeleelta.

Ebuild-sovellus on ensisijaisesti järjestelmän kehittäjille; lisätietoja ebuildista löytyykin Developers Handbookista. Selvitämme tässä kuitenkin mitä ebuild-tomintoja Portage käyttää asennusprosessissa, ja miten käyttää jälkiasennustoiminnalisuuksia, joita joissain ebuildeissa saattaa olla.

6.b. Ohjelmiston asennus käsin

Lähdekoodin nouto ja oikeellisuustarkastus

Kun komennolle ebuild antaa jonkun .ebuild-tiedoston, se tarkastaa kaikkien liittyvien tiedostojen tarkastussummat, jotka on annettu Manifest- ja files/digest-<name>-<version>-tiedostoissa. Tämä tehdään lähdekoodien noutamisen jälkeen.

Ebuildilla voi noutaa lähdekoodit seuraavasti:

Koodilistaus 2.1: Lähteiden noutaminen

# ebuild path/to/ebuild fetch

Jos ebuildin md5-tarkistussumma ei täsmää Manifestissa ilmoitettuun tai ladattujen tiedostojen summat eivät täsmää files/digest-<paketti>-tiedoston sisältämiin, saat seuraavan virheilmoituksen:

Koodilistaus 2.2: Ebuildin tarkastussumman virheilmoitus

!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>>  your file's digest: f10392b7c0b2bbc463ad09642606a7d6

Seuraavat rivit kertovat ongelmallisen tiedoston.

Jos haettujen lähteiden ja ebuildin oikeellisuus on varmaan, uuden Manifestin ja digest-<paketti>-tiedoston voi tehdä ebuildilla:

Koodilistaus 2.3: Uuden manifestin ja digestin luonti

# ebuild path/to/ebuild digest

Lähdekoodin purkaminen

Lähdekoodien puretaan hakemistoon /var/tmp/portage (tai muuhun vastaavaan asetustiedostossa /etc/make.conf määriteltyyn) ebuildia käyttämällä:

Koodilistaus 2.4: Lähdekoodien purkaminen

# ebuild path/to/ebuild unpack

Tämä toiminto suorittaa ebuildin src_unpack()-funktion (joka oletusarvoisesti vain purkaa tiedostot, jollei sitä ole erikseen annettu). Tässä vaiheessa ebuild myös lisää kaikki tarvittavat pätsit.

Lähdekoodin kääntäminen

Seuraavassa vaiheessa käännetään koodia. Ebuildin kääntötoiminto käyttää tähän ebuildin src_compile()-funktiota. Tähän vaiheeseen liittyy myös configuren suoritus, jos aiheellista.

Koodilistaus 2.5: Lähdekoodien kääntäminen

# ebuild path/to/ebuild compile

Käännöstä muuttakseen ebuildien src_compile()-funktiota kannattaa muokata. Voit myös huijata Portagea luulemaan, että ebuild on kääntänyt jo lähdekoodit: suorita kaikki käännökset itse ja lisää hakemistoihin tyhjät tiedosto nimellä .compiled työhakemistoon:

Koodilistaus 2.6: Valmistuneiden käännösten kertominen Portagelle

# touch .compiled

Tiedostojen asennus väliaikaishakemistoon

Seuraavassa Portage asentaa kaiken väliaikaishakemistoon. Tämä hakemisto sisältää kaikki tiedostot, jotka siirretään oikeaan järjestelmään. Siirtäminen tapahtuu ebuildin asennustoiminnolla, joka suorittaa ebuildin src_install()-funktion.

Koodilistaus 2.7: Tiedostojen asennus

# ebuild path/to/ebuild install

Tiedostojen siirto oikeaan järjestelmään

Viimeisenä kaikki tiedostot siirretään käytössä olevaan tiedostojärjestelmään ja rekisteröidään ne Portagelle. Ebuildissa tämän toiminnon nimi on "qmerge" ja siihen liittyy seuravaa:

  • suorita pkg_preinst(), jos sellainen on
  • kopioi tiedosto järjestelmään
  • rekisteröi tiedostot Portagelle
  • suorita pkg_postinst(), jos sellainen on.

Suorittamalla ebuildin qmergen toteutat nämä:

Koodilistaus 2.8: Tiedostojen siirto oikeaan järjestelmään

# ebuild path/to/ebuild qmerge

Väliaikaishakemiston siivous

Lopulta, väliaikaishakemiston voi siivota ebuildin puhdistustoiminnolla:

Koodilistaus 2.9: Väliaikaishakemiston siivoaminen

# ebuild path/to/ebuild clean

6.c. Muita ebuildin ominaisuuksia

Asennuskomentojen suoritus

Ebuildin asennustoiminnot, eli hakemisen, purkamisen, kääntämisen, asennuksen ja qmergen voi suorittaa myös yhdellä käskyllä:

Koodilistaus 3.1: Ohjelmiston asentaminen

# ebuild path/to/ebuild merge

Asetustoimintojen suorittaminen

Jotkin ohjelmat sisältävät ohjeet paketin tarkempaan säätämiseen järjestelmää varten. Nämä ohjeet voivat olla vuorovaikutteisia, jonka takia niitä ei suoriteta automaattisesti. Kaikki asetustoiminnot, jos sellaisia on, saa suoritettua ebuildin asetustoiminnolla:

Koodilistaus 3.2: Paketin asetusten säätäminen

# ebuild path/to/ebuild config

Pakettien tai RPM:ien tekeminen

Portagen saa tekemään binääripaketteja, tai jopa RPM-paketteja, ebuildeistaan. Ebuildin paketti- ja rpm-toiminnot kattavat tämän toiminnallisuuden. Niiden käytöksessä on kuitenki eroja:

  • Pakettitoiminto käyttäytyy pitkälti kuin asennustoimintokin: suorittaa tarpeelliset toiminnot (hakemisen, purkamisen, käännön, asennuksen) ennen paketin luontia.
  • Rpm-toiminto tekee RPM-paketin tiedostoista, jotka luodaan ebuildin asennustoiminnon jälkeen.

Koodilistaus 3.3: Pakettien luominen

(Portage-tyylisille binääripaketeille)
# ebuild path/to/ebuild package

(RPM-paketeille)
# ebuild path/to/ebuild rpm

RPM-paketti ei kuitenkaan sisällä niitä riippuvuustietoja, mitä ebuild sisältäisi.

6.d. Lisää tietoa!

Man-sivuilta löytyy paljon tietoa Portagesta, ebuild-sovelluksesta ja ebuild-tiedostoista:

Koodilistaus 4.1: Man-sivujen tarkastelu

$ man portage    (Portagen man-sivu)
$ man emerge     (Emerge-komennon man-sivu)
$ man ebuild     (Ebuild-komennon man-sivu)
$ man 5 ebuild   (Ebuild-tiedoston syntaksin man-sivu)

Tietenkin lisää Gentoon kehitystietoa on myös käsikirjassa Developers Handbook.


[ << ] [ < ] [ Etusivu ] [ > ] [ >> ]


Tulostettava muoto

Näytä kaikki

Tämä sivu on viimeksi päivitetty 9. kesäkuuta 2005

Tätä käännöstä ei enää ylläpidetä

Tiivistelmä: Tässä kappaleessa kerrotaan, mitä Portage tekee asentaessaan ohjelmia, ja kuinka tämän voi tehdä omin käsin ebuild-sovelluksen avulla.

Sven Vermeulen
Tekijä

Daniel Robbins
Tekijä

Chris Houser
Tekijä

Jerry Alexandratos
Tekijä

Seemant Kulleen
Gentoon x86-kehittäjä

Tavis Ormandy
Gentoon alpha-kehittäjä

Brad House
Gentoon AMD64-kehittäjä

Guy Martin
Gentoon HPPA-kehittäjä

Pieter Van den Abeele
Gentoon PPC-kehittäjä

Joe Kallar
Gentoon SPARC-kehittäjä

John P. Davis
Toimittaja

Pierre-Henri Jondot
Toimittaja

Eric Stockbridge
Toimittaja

Rajiv Manglani
Toimittaja

Jungmin Seo
Toimittaja

Stoyan Zhekov
Toimittaja

Jared Hudson
Toimittaja

Colin Morey
Toimittaja

Jorge Paulo
Toimittaja

Carl Anderson
Toimittaja

Jon Portnoy
Toimittaja

Zack Gilburd
Toimittaja

Jack Morgan
Toimittaja

Benny Chuang
Toimittaja

Erwin
Toimittaja

Joshua Kinard
Toimittaja

Grant Goodyear
Katselmoija

Gerald J. Normandin Jr.
Katselmoija

Donnie Berkholz
Katselmoija

Ken Nowack
Katselmoija

Lars Weiler
Contributor

Flammie Pirinen
Vastuullinen kääntäjä

Jouni Hätinen
Käännöksen laatutarkistaja

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.