Feinabstimmung

Portage – das Paketsystem von Gentoo Linux

01.07.2006
Portage, das Paketsysteme von Gentoo Linux, erscheint auf den ersten Blick recht komplex. Bei genauerem Hinsehen erweist es sich aber als extrem vielseitig und einfach zu handhaben.

Das Gentoo-Paketsystem Portage [1] ähnelt den Ports der freien Unix-Variante FreeBSD. Als quellenbasierte Distribution lädt Gentoo vor dem Installieren die Quellcode-Pakete aus dem Internet. Das setzt natürlich einen permanenten Zugang zum weltweiten Netz voraus. Die Quellen eines zu installierenden Pakets stammen direkt von den Seiten der Programmentwickler. Dort liegen sie in aller Regel als Tarball vor.

Das System entpackt das Paket in einen temporären Pfad (voreingestellt ist /var/tmp) um es dort zu kompilieren und danach ins System zu installieren. Vereinfacht dargestellt läuft eine automatisierte Variante eines ./configure && make && make install ab.

Um aber eine gemeinsame Installationsbasis vieler verschiedener Pakete zu gewährleisten, sieht die Wirklichkeit natürlich etwas komplexer aus. So nimmt etwa das Configure-Skript verschiedene Parameter für das Übersetzen des jeweiligen Paketes entgegen. Ferner beeinflussen Compiler-spezifische Umgebungsvariablen das Übersetzen eines Pakets und passen es so an einen Prozessor an, etwa an eine 64-Bit-CPU.

Zentrale Konfiguration

Bei Binary-orientierten Distributionen, wie Novell/Suse, Red Hat/Fedora und den meisten anderen, stecken in den RPM-Paketen generisch vorkompilierte Pakete. Meist optimieren die Entwickler dabei auf i586-Architekturen: Das bedeutet, dass das Programm auf jedem Rechner ab einer Pentium-CPU oder einem AMD K6-2 läuft. Der Grund dafür liegt auf der Hand: Die Programme sollen möglichst auf jedem PC lauffähig sein. Im Fall von 32- und 64-Bit-Anwendungen treten aber erhebliche Unterschiede auf. Daher bieten die Distributoren für diese verschiedene Pakete an.

Gentoo überlässt hingegen das Anpassen der Pakete dem Anwender. Über die zentrale Konfigurationsdatei /etc/make.conf ist es möglich, das Installationsverhalten des Systems zu kontrollieren und die Software auf die Hardware zu optimieren (siehe Kasten Konfigurationsdatei). In der make.conf setzen Sie die Flags [2] für den C- und den C++-Compiler, die für beide meist identisch sind.

Das Verwenden von Compiler-Flags erlaubt es, ein Paket für eine bestimmte Rechnerarchitektur anzupassen und zu optimieren – seien es die 32- und 64-Bit-Varianten von Intel oder AMD, PowerPCs, Sparcs oder Alphas. Dieser Tatsache hat Gentoo den nicht unbegründeten und schon häufig unter Beweis gestellten Ruf eingetragen, auf jeder Architektur zu laufen.

Aber auch andere für das Übersetzen notwendige Umgebungsvariablen finden Platz in der Datei make.conf. Ein Beispiel ist die Umgebungsvariable LINGUAS="de" für das Paket kde-base/kde-i18n, welches die deutsche Sprache für KDE installiert.

Installieren mit Emerge

Der Befehl emerge leitet unter Gentoo eine Installation ein. Vorher sollte man sich die Man-Page genauer ansehen, da Emerge etliche Optionen bietet und die Ausgabe mitunter einige Fragen aufwirft. Ein einfaches emerge Programmname reicht zum Installieren eines Paketes. Wer mit der Kommandozeile auf dem Kriegsfuß steht, dem ermöglichen alternativ grafische Frontends, wie das KDE-Programm Kuroo (Abbildung 1), das installieren und konfigurieren von Software.

Abbildung 1: Ein grafisches Frontend wie Kuroo vereinfacht das Arbeiten mit dem Gentoo-Paketsystem Portage.

Vorher gilt es aber sicherheitshalber noch zu prüfen, welche Abhängigkeiten das Paket hat und vor allem welche USE-Flags noch gesetzt sein sollten (siehe Kasten "Konfigurationsdatei"). Das erledigt der Befehl emerge -pv Programmname. Dabei steht p für "pretend": Emerge simuliert die Installation lediglich und löst dabei die Abhängigkeiten auf. Für ausführliche Verlaufsmeldungen sorgt v wie "verbose".

Listing 1 zeigt die entsprechende Ausgabe bei der Einrichtung von Xfig auf einem Rechner mit bereits installiertem X.org. Das N hinter ebuild bedeutet hier, dass das Paket neu und noch nicht installiert ist. Stünde eine Position weiter ein R, wäre das Paket bereits eingerichtet.

Listing 1

# emerge -pv xfig
These are the packages that I would merge, in order:
Calculating dependencies …done!
[ebuild  N    ] media-libs/urt-3.1b-r1  +X +gif -gs +tiff 992 kB
[ebuild  N    ] media-libs/jbigkit-1.6-r1  396 kB
[ebuild  N    ] media-libs/jasper-1.701.0  +jpeg +opengl 1,329 kB
[ebuild  N    ] media-libs/netpbm-10.30-r1  +jpeg +png +svga +tiff +zlib 2,542 kB
[ebuild  N    ] x11-libs/Xaw3d-1.5-r1  277 kB
[ebuild  N    ] media-gfx/transfig-3.2.4-r1  318 kB
[ebuild  N    ] media-gfx/xfig-3.2.4-r1  5,043 kB
Total size of downloads: 10,901 kB

Bei vielen Abhängigkeiten des Paketes handelt es sich um Zusatzpakete oder gar Bibliotheken, die nicht zum Arbeitsalltag gehören. Um dahinter zu kommen, was sich beispielsweise hinter urt-3.1b-r1 verbirgt, genügt eine Suche mit emerge -s urt: Sie spuckt unter anderem das Paket media-libs/urt aus und beschreibt es als Bibliothek zum Behandeln von Rastergrafiken (Bitmaps).

Genauere Informationen liefert aber die Online-Suche in der Paketdatenbank im Internet [3]. Neben einem kurzem Text, der das Paket beschreibt, gibt die Seite auch Auskunft über die verwendbaren USE-Flags. Im Beispiel in Listing 1 nicht gesetzt ist das USE-Flag gs, angezeigt durch ein Minus davor. Bei gesetztem Flag übersetzt Emerge das Paket mit Ghostscript-Unterstützung.

Für den Einsatz des USE-Flags gibt es zwei Möglichkeiten: Auf der Kommandozeile übergeben Sie die Variable mit USE="gs"; emerge -pv xfig direkt an Emerge. Sicherer ist es, das Flag in der make.conf einzutragen. Das stellt sicher, dass auch ein späteres System-Update das Paket wieder mit Ghostscript-Unterstützung installiert.

Bei entsprechend gesetztem USE-Flag erscheint das Paket media-libs/urt mit +gs in der Pretend-Anfrage. Ist das Paket app-text/ghostscript noch nicht installiert, zeigt Emerge dieses als weitere Abhängigkeit an.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.