1.3 2004-10-28
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.

Meer Informatie

Voor meer informatie over Portage, de ebuild applicatie en ebuild bestanden, raadpleeg de volgende man pagina's:

$ man portage    (Portage zelf)
$ man emerge     (Het emerge commando)
$ man ebuild     (Het ebuild commando)
$ man 5 ebuild   (Het ebuild bestand syntax)

Je kan tevens meer informatie over het ontwikkelen vinden in het ontwikkelaars Handboek (Engelstalig).