emerge schrittweise
Eigentlich funktioniert emerge
für sich genommen sehr gut, aber manchmal gibt es Gründe in die Sourcen zu gucken. Sei es weil:
- Man hat ein ebuild und möchte nur mal in die Sourcen gucken.
- Man arbeitet an einem eigenen Projekt und möchte was am ebuild analysieren.
- Das kompilieren will einfach nicht weil Compiler-Optionen nicht gehen.
- Man hat zu dem ebuild noch einen Patch und möchte den mal einspielen.
Das Format eines *.ebuild
Files ist bash-shell-like. Aber das bringt uns eigentlich nicht weiter, da es exakt beschreibt, was genau getan wird, wir wollen aber nur die Sourcen holen, auspacken, kompilieren, installieren oder nur genau einen Part davon. Und das geht mit ebuild
Dazu stelle man sich in das /usr/portage/kategorie/Programm
Verzeichnis also z.B. /usr/portage-overlay/app-misc/EBuildDemo
und kann dann folgendes machen. Das EBuildDemo-Projekt findet man hier.
Prüfsummen
Macht man an einer *.ebuild
Datei Änderungen, müssen die Prüfsummen erst wieder auf Stand gebracht werden, oder man hat eine ebuild Datei aus dem Internet bekommen und möchte diese installieren.
ebuild /usr/portage-overlay/app-misc/EBuildDemo-0.1.ebuild digest
sourcen downloaden
ebuild ...EBuildDemo-0.1.ebuild fetch
Holt die Sourcen aus dem Internet.
Man kann die Sourcen aber auch selbst holen und nach /usr/portage/distfiles
kopieren.
auspacken
ebuild ...EBuildDemo-0.1.ebuild unpack
packt die Daten aus.
Um jetzt in den Source zu gucken, in das Verzeichnis /var/tmp/portage/EBuildDemo-0.1/work/EBuildDemo-0.1/
wechseln.
[Optional] Patches einspielen
Hier kann man jetzt auch beliebige Patches einspielen. Oder die Sourcen selbst nachträglich ändern.
[Optional] Rest auf einen Schlag
Wer es leid ist, alle folgenden Schritte einzeln auszuführen, kann einfach ebuild ...EBuildDemo-0.1.ebuild merge ausführen, dann werden sämtliche folgenden Schritte auf einen Schlag ausgeführt.
kompilieren
ebuild ...EBuildDemo-0.1.ebuild compile
baut die Sourcen hier /var/tmp/portage/EBuildDemo-0.1/work/EBuildDemo-0.1
installieren
ebuild ...EBuildDemo-0.1.ebuild install
installiert die Executables in die sog. Sandbox
Wichtig: Die Sandbox ist nicht das Real-live System, Dateien sind noch nicht wirklich vorhanden.
nach der installation
ebuild ...EBuildDemo-0.1.ebuild postinst
Wird nicht wirklich gebraucht, meist werden nur ein paar Kommentare ausgegeben.
ins Real-live System bringen
ebuild ...EBuildDemo-0.1.ebuild merge
kopiert die alle benötigten Dateien (Executables|Dokumente|...) aus der Sandbox in das Real-live System.
Damit es schneller geht, kann man alle Parameter auch hintereinander weg schreiben z.B. ebuild ... digest unpack compile install merge
das ist fürs Testen ganz praktisch.
wieder entfernen
ebuild ...EBuildDemo-0.1.ebuild unmerge
löscht alle Dateien wieder aus dem Real-live System. Allerdings nur die Dateien, die mittels merge auch installiert wurden und nicht zwischenzeitlich geändert worden sind.
Vielleicht sind einige ebuilds
obsolete, oder es fehlen welche. Was solls, es läuft. Wer weiteres wissen möchte, sollte sich das Gentoo ebuild-HOWTO zur Brust nehmen, das IMHO leider sofort in absoluten untiefen von Gentoo abtaucht, ohne dem geneigten Leser erst mal oberflächlich auf die Materie vorzubereiten geschweige den ein paar Beispiele zu nennen.
Verwandte Themen