Disclaimer :
This handbook has been replaced by a newer version and is not maintained anymore.
|
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
6. Ebuild-sovellus
Content:
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:
Code Listing 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:
Code Listing 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:
Code Listing 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ä:
Code Listing 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.
Code Listing 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:
Code Listing 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.
Code Listing 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ä:
Code Listing 2.8: Tiedostojen siirto oikeaan järjestelmään |
# ebuild path/to/ebuild qmerge
|
Väliaikaishakemiston siivous
Lopulta, väliaikaishakemiston voi siivota ebuildin puhdistustoiminnolla:
Code Listing 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ä:
Code Listing 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:
Code Listing 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.
Code Listing 3.3: Pakettien luominen |
# ebuild path/to/ebuild package
# 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:
Code Listing 4.1: Man-sivujen tarkastelu |
$ man portage
$ man emerge
$ man ebuild
$ man 5 ebuild
|
Tietenkin lisää Gentoon kehitystietoa on myös käsikirjassa Developers Handbook.
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-2.5 license. The Gentoo Name and Logo Usage Guidelines apply.
|