Emerge en ebuild
De ebuild applicatie is een verbinding met het Portage systeem op een
lager niveau. Door deze applicatie te gebruiken, kun je op een bepaalde ebuild
specifieke acties uitvoeren. Je kunt bijvoorbeeld de individuele
installatiestappen zelf uitvoeren.
Het gebruik van ebuild is meer voor ontwikkel doeleinden; meer informatie
over ebuild kan dan ook worden gevonden in het
Ontwikkelaars Handboek
(Engelstalig). We zullen echter wel uitleggen welke ebuild stappen gebruikt
worden door Portage tijdens het installatieproces van een bepaalde applicatie
en hoe je de post-configuratie stappen die sommige ebuilds je toelaten te
gebruiken kunt toepassen.
Handmatig applicaties installeren
De bron downloaden & controleren
Wanneer je ebuild tegen een bepaald ebuild bestand gebruikt, zal het
controleren of de controle som gelijk is aan de controle som die gevonden kan
worden in het bijbehorende Manifest of
files/digest-<name>-<version> bestand. Dit gebeurt
nadat de bronbestanden gedownload zijn.
Om bronbestanden te downloaden met behulp van ebuild, start:
# ebuild pad/naar/ebuild fetch
Als de md5som van de ebuild niet gelijk is aan degene die genoemd wordt in het
Manifest bestand, of een van de gedownloade bronnen is anders dan
wat genoemd wordt in het files/digest-<package> bestand,
krijg je een foutmelding die vergelijkbaar is met deze:
!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>> your file's digest: f10392b7c0b2bbc463ad09642606a7d6
De volgende regel zal vermelden welke bestand de foute is.
Als je zeker weet dat de ebuild zelf en de door jou gedownloade bronnen correct
zijn, kun je het Manifest en het
digest-<package> bestand opnieuw aanmaken door gebruik te
maken van ebuild's digest functionaliteit:
# ebuild pad/naar/ebuild digest
Het uitpakken van de bronbestanden
Om de bron bestanden uit te pakken in /var/tmp/portage (of elke
andere map die je hebt ingesteld in /etc/make.conf), start
ebuild's uitpak functionaliteit:
# ebuild pad/naar/ebuild unpack
Dit zal ebuild's src_unpack() functie starten (welke standaard zal uitpakken als
geen src_unpack() functie gedefinieerd is). Tevens worden in deze stap alle
benodigde patches toegepast.
het compileren van de bronbestanden
De volgende stap in het installatie proces, is het compileren van de
bronbestanden. ebuild's compileer functionaliteit zorgt voor deze stap
door het starten van de src_compile() functie in de ebuild. Dit geldt tevens
voor de configuratie stappen indien van toepassing.
# ebuild pad/naar/ebuild compile
Je wordt geadviseerd om ebuild's src_compile() functie te wijzigen als je de
compileer instructies wilt wijzigen. Je kunt Portage ook voor de gek houden
zodat het denkt dat de ebuild applicatie de compilatie stappen afgerond
heeft. Start alle benodigde commando's zelf en creeer een leeg bestand met de
naam .compiled in the werkmap:
# touch .compiled
De bestanden installeren in een tijdelijke lokatie
Gedurende de volgende stap zal Portage alle benodigde bestanden in een
tijdelijke lokatie installeren. Deze map zal dan alle bestanden bevatten die
geinstalleerd zullen worden in het produktiebestandsysteem. Je kan dit bereiken
door ebuild's install functionaliteit, welke de ebuild's src_install()
functie start:
ebuild pad/naar/ebuild install
Het installeren van de bestanden op het produktiebestandsysteem
De laatste stap is het installeren van alle bestanden op het
produktiebestandsysteem en deze registreren in bij Portage. ebuild noemt
deze fase "qmerge" en het bevat de volgende stappen:
- Start de pkg_preinst() functie indien gespecificeerd
- Kopieer alle bestanden naar het produktie bestandsysteem
- Registreer the bestanden bij Portage
- Start de pkg_postinst() functie indien gespecificeerd
Start ebuild's qmerge functionaliteit om deze stappen uit te voeren:
# ebuild pad/naar/ebuild qmerge
het opschonen van de tijdelijke map
Als laatste stap kun je de tijdelijke map opschonen door gebruik te maken van
ebuild's clean functionaliteit:
# ebuild pad/naar/ebuild clean
Additionele Ebuild eigenschappen
Het draaien van alle installatie gerelateerde commnando's
Gebruik ebuild's installatie functionaliteit om het downloaden,
uitpakken, compileren, installeren en qmerge commando's in een keer uit te
voeren:
# ebuild pad/naar/ebuild merge
Het uitvoeren van configuratie stappen
Sommige applicaties bevatten instructies om een pakket verder af te configuren
op je systeem. Deze instructies kunnen interactief zijn en worden daarom niet
automatisch uitgevoerd. Om deze configuratie stappen uit te voeren, die genoemd
worden in de (optionele) config() functie van ebuild, gebruik ebuild's
config functionaliteit:
# ebuild pad/naar/ebuild config
Een (RPM) Pakket bouwen
Je kunt Portage instrueren om van een ebuild een binair pakket of zelfs een
RPM bestand te maken. Gebruik ebuild's package of rpm functionaliteit om
deze pakketten te maken. Er zijn echter een aantal verschillen tussen deze
functionaliteiten:
-
De package functionaliteit lijkt erg op de merge functionaliteit, in het
starten van alle benodigde stappen (fetch, unpack, compile, install) voordat
het pakket aangemaakt wordt
-
De rpm functionaliteit bouwt een RPM pakket van een bestand dat aangemaakt
is nadat ebuild's install functionaliteit gedraaid heeft.
(Voor een Portage-compatible binair pakket)
# ebuild pad/naar/ebuild package
(Voor een RPM pakket)
# ebuild pad/naar/ebuild rpm
Het aangemaakte RPM bestand bevat echter niet de afhankelijkheidsinformatie van
de ebuild.