1.3 2004-10-24
Emerge en ebuild

De ebuild applicatie is een verbinding met het Portage systeem op een lager niveau. Door deze applicatie te gebruiken, kunt u op een bepaalde ebuild specifieke acties uitvoeren. U kunt bijvoorbeeld de individuele installatie stappen zelf uitvoeren.

Het gebruik van ebuild is bedoeld voor het ontwikkelen van nieuwe applicaties en 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 voorbeeld applicatie en hoe u de post-configuratie stappen die sommige ebuilds u toelaten te gebruiken kunt toepassen.

Handmatig applicaties installeren De bron downloaden & controleren

Wanneer u 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 het bestand files/digest-<name>-<version>. Dit gebeurt nadat de bronbestanden gedownload zijn.

Om bronbestanden te downloaden met behulp van ebuild, start:

# ebuild map/van/ebuild fetch

Als de md5som van de ebuild niet gelijk is aan degene die genoemd wordt in het bestand Manifest, of een van de gedownloade bronnen is anders dan wat genoemd wordt in het files/digest-<package> bestand, krijgt u 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 u zeker weet dat de ebuild zelf en de door u gedownloade bronnen correct zijn, kunt u de bestanden Manifest en digest-<package> opnieuw aanmaken door gebruik te maken van ebuild's digest functionaliteit:

# ebuild map/van/ebuild digest
Het uitpakken van de bronbestanden

Om de bron bestanden uit te pakken in /var/tmp/portage (of elke andere map die u hebt ingesteld in /etc/make.conf), start u de uitpak functie van ebuild:

# ebuild map/van/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 map/van/ebuild compile

U wordt geadviseerd om ebuild's src_compile() functie te wijzigen als u de compileer instructies wilt wijzigen. U 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 creëer een leeg bestand met de naam .compiled in de 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 geïnstalleerd zullen worden in het produktiebestandssysteem. U kan dit bereiken door ebuild's install functie, welke de ebuild's src_install() functie start:

# ebuild map/van/ebuild install
Het installeren van de bestanden op het produktiebestandssysteem

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 bestandssysteem
  • Registreer de bestanden bij Portage
  • Start de pkg_postinst() functie indien gespecificeerd

Start ebuild's qmerge functionaliteit om deze stappen uit te voeren:

# ebuild map/van/ebuild qmerge
Het opschonen van de tijdelijke map

Als laatste stap kunt u de tijdelijke map opschonen door gebruik te maken van ebuild's clean functionaliteit:

# ebuild map/van/ebuild clean
Extra Ebuild opties Het draaien van alle installatie gerelateerde commando's

Gebruik ebuild's installatie functies om het downloaden, uitpakken, compileren, installeren en qmerge commando's in één keer uit te voeren:

# ebuild map/naar/ebuild merge
Het uitvoeren van de configuratie stappen

Sommige applicaties bevatten instructies om een pakket verder te configureren op uw 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 map/van/ebuild config
Een (RPM) Pakket bouwen

U 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 functies:

  • De package functie lijkt erg op de merge functie, in het starten van alle benodigde stappen (fetch, unpack, compile, install) voordat het pakket aangemaakt wordt
  • De rpm functie bouwt een RPM pakket van een bestand dat aangemaakt is nadat ebuild's install functionaliteit gedraaid heeft.
(Voor een Portage-compatible binair pakket)
# ebuild map/van/ebuild package

(Voor een RPM pakket)
# ebuild map/van/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   (De ebuild bestand syntax)

U kunt tevens meer informatie over het ontwikkelen vinden in het ontwikkelaars Handboek (Engelstalig).