[ << ]
[ < ]
[ Hauptseite ]
[ > ]
[ >> ]
3. Portage Features
Inhalt:
3.a. Portage Features
Portage hat einige zusätzliche Features, die das Gentoo Erlebnis noch ein wenig
besser machen. Viele dieser Features beruhen auf Software Tools um die
Performance, Funktionssicherheit, Sicherheit, etc. zu verbessern.
Um diese Portage Features zu aktivieren oder deaktivieren müssen Sie die
FEATURES Variable in /etc/portage/make.conf anpassen. Diese
Variable enthält verschiedene Feature Keywords, welche durch Leerzeichen
getrennt werden.In vielen Fällen müssen Sie ebenfalls zusätzliche Software
installieren.
Nicht alle Features, die Portage anbietet werden hier aufgelistet. Für einen
vollständigen Überblick schauen Sie in die make.conf Manpage:
Befehlsauflistung
1.1: Lesen der make.conf Manpage
$ man make.conf
Um herauszufinden, welche FEATURES per default aktiviert sind führen Sie
emerge --info aus und suchen Sie nach der FEATURES Variable, oder filtern
diese aus:
Befehlsauflistung
1.2: Herausfinden welche FEATURES bereits aktiv sind
$ emerge --info | grep FEATURES
3.b. Distributed Compiling
Benutzung von distcc
distcc ist ein Programm das "Kompilierungen" über mehrere, nicht
notwendigerweise identische Computer, über ein Netzwerk verteilt. Der
distcc - Client sendet alle notwendigen Informationen zu den
erreichbaren distcc - Servern (die den distccd laufen haben), so
dass diese Teile des Quellcodes vom Client kompilieren können. Als Resultat
wird Zeit beim Kompilieren eingespart.
Sie finden tiefer gehende Informationen über distcc (und wie Sie es bei
Gentoo zum Laufen bringen) in unserer Gentoo
distcc Dokumentation.
distcc installieren
Distcc bringt einen grafischen Monitor mit, der Sie über alle Aufgaben
informiert, die der Computer zum Kompilieren wegsendet. Falls Sie
Gnome benutzen, setzen Sie 'gnome' in Ihrer USE-Variable.
Wenn Sie nicht Gnome nutzen, den Monitor aber trotzdem haben
wollen, sollten Sie 'gtk' in Ihrer USE-Variable setzen.
Befehlsauflistung
2.3: distcc installieren
# emerge distcc
Unterstützung für Portage aktivieren
Fügen Sie distcc der FEATURES Variable in
/etc/portage/make.conf hinzu. Anschließen editieren Sie die
MAKEOPTS Variable entsprechend Ihren Wünschen. In den meisten Fällen ist es
hinreichend "-jX" anzugeben, wobei X der Nummer der CPUs die den distccd
ausführen entsprechen (inklusive dem aktuellen Host) plus eins, möglicherweise
haben Sie mit anderen Werten bessere Ergebnisse.
Nun rufen Sie distcc-config auf und tragen eine Liste der verfügbaren
Server ein. Als einfaches Beispiel nehmen wir einmal an, dass die verfügbaren
distcc Server 192.168.1.102 (der momentane Host),
192.168.1.103 und 192.168.1.104 (zwei "entfernte" Hosts) sind:
Befehlsauflistung
2.4: distcc für die Nutzung dreier verfügbarer distcc Server konfigurieren
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
Vergessen Sie bitte nicht, auch den distccd - Dämonen zu starten:
Befehlsauflistung
2.5: distcc Dämonen starten
# rc-update add distccd default
# /etc/init.d/distccd start
3.c. Caching Compilation
Über ccache
ccache ist ein schneller Compiler - Cache. Wenn Sie ein Programm
kompilieren, werden Zwischenresultate gecacht, so dass bei einer Rekompilierung
des Programms die Zeit zum Kompilieren viel kürzer ist. Wenn Sie ccache zum
ersten Mal verwenden, wird es viel langsamer sein als eine normale Kompilierung.
Darauffolgende Rekompilierungen sollten schneller sein. ccache ist nur
hilfreich, wenn Sie die gleiche Applikation sehr oft rekompilieren müssen; es
ist daher hauptsächlich nur für Softwareentwickler nützlich.
Falls Sie an den Vor- und Nachteilen von ccache interessiert sind,
besuchen Sie bitte die ccache
Homepage.
|
ccache ist bekannt dafür, zahlreiche Kompilierungsfehler zu verursachen.
Ab und zu behält ccache veraltete Codeobjekte oder korrupte Dateien bei, was
dazu führt, dass Pakete sich nicht emergen lassen. Falls das passiert (wenn Sie
Fehler wie z.B. "File not recognized: File truncated" erhalten), versuchen Sie
die Applikation mit deaktiviertem ccache (FEATURES="-ccache" in der
/etc/portage/make.conf) zu rekompilieren bevor Sie einen Bug
eröffnen. Falls Sie keine Softwareentwicklung betreiben, aktivieren Sie
ccache nicht.
|
ccache installieren
Zur Installation von ccache führen Sie emerge ccache aus:
Befehlsauflistung
3.6: ccache installieren
# emerge ccache
Unterstützung für Portage aktivieren
Öffnen Sie /etc/portage/make.conf und fügen Sie ccache zu
FEATURES hinzu. Anschließend erstellen Sie eine neue Variable namens
CCACHE_SIZE und setzen diese auf "2G":
Befehlsauflistung
3.7: CCACHE_SIZE in /etc/portage/make.conf editieren
CCACHE_SIZE="2G"
Um zu schauen ob ccache funktioniert, fragen Sie ccache nach seinen
Statistiken. Weil Portage ein anderes Home-Verzeichnis verwendet, müssen Sie
auch die CCACHE_DIR Variable setzen:
Befehlsauflistung
3.8: Ccache - Statistiken anschauen
# CCACHE_DIR="/var/tmp/ccache" ccache -s
Der /var/tmp/ccache Pfad ist das Standard ccache Home-Verzeichnis
von Portage. Wenn Sie diese Einstellungen ändern möchten, können Sie die
CCACHE_DIR Variable in /etc/portage/make.conf setzen.
Wenn Sie aber ccache ausführen würden, würde es den Standardpfad
${HOME}/.ccache verwenden. Deswegen mussten Sie auch die
CCACHE_DIR Variable setzen, als Sie nach den (Portage)
ccache-Statistiken fragten.
Nutzung von ccache außerhalb von Portage
Wenn Sie ccache für Kompilierungen außerhalb von Portage nutzen möchten fügen
Sie /usr/lib/ccache/bin dem Beginn der PATH Variable hinzu (vor
/usr/bin). Dies kann durch Editieren von
.bash_profile in Ihrem Home-Verzeichnis erreicht werden. Die
Verwendung von .bash_profile ist eine Möglichkeit Ihre
PATH-Variable zu definieren.
Befehlsauflistung
3.9: Editieren von .bash_profile
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
3.d. Binäre Pakete
Binärpakete erstellen
Portage unterstützt die Installation von vorkompilierten Paketen. Obwohl Gentoo
keine vorkompilierten Pakete anbietet (mit Ausnahme der GRP Schnappschüsse) ist
die Funktion vollständig implementiert.
Um ein vorkompiliertes Paket zu erstellen können Sie quickpg benutzen,
sofern das Programm bereits in Ihrem System installiert ist oder Sie benutzen
die --buildpkg oder --buildpkgonly Optionen.
Falls Sie wollen, dass Portage dies standardmäßig macht, sollten Sie das
Schlüsselword buildpkg in der FEATURES Variablen setzen.
Erweiterte Unterstützung zum Erstellen von vorkompilierten Paketen finden Sie in
catalyst. Für weitere Informationen zu catalyst lesen Sie bitte
die Catalyst
FAQ.
Vorkompilierte Pakete Installieren
Auch wenn Gentoo keine anbietet, Sie können ein zentrales Repository anlegen, in
dem Sie vorkompilierte Pakete ablegen. Wenn Sie dieses Repository nutzen möchten
müssen Sie Portage mit der PORTAGE_BINHOST Variable den Ort des Repository
bekannt machen. Wenn sich die Pakete zum Beispiel auf ftp://buildhost/gentoo
befinden:
Befehlsauflistung
4.10: Setzen der PORTAGE_BINHOST Variable in /etc/portage/make.conf
PORTAGE_BINHOST="ftp://buildhost/gentoo"
Wenn Sie vorkompilierte Pakete installieren wollen fügen Sie --getbinpkg
Option an das entsprechende emerge Kommando (welches ebenfalls --usepkg
enthalten muss) an. Die erste Option weist Portage an ein Binärpaket
herunterzuladen, die zweite zuerst zu versuchen ein Binärpaket zu installieren,
bevor Sourcen heruntergeladen und kompiliert werden.
Um zum Beispiel gnumeric mit vorkompilierten Paketen zu installieren:
Befehlsauflistung
4.11: Installation des vorkompilierten gnumeric Pakets
# emerge --usepkg --getbinpkg gnumeric
Weitere Informationen zur Binärpaket Funktionalität von emerge finden Sie
in der emerge Manpage:
Befehlsauflistung
4.12: Lesen der emerge Manpage
$ man emerge
3.e. Dateien abrufen
Paralleler Abruf
Wenn Sie eine Serie von Paketen mit emerge isntallieren kann Portage die
Quelldateien für das nächste Paket in der Liste schon herunterladen, während es
noch ein anderes Paket kompiliert, und dadurch die Kompilierzeit reduzieren. Um
von dieser Fähigkeit Gebrauch zu machen, fügen Sie "parallel-fetch" zu Ihren
FEATURES hinzu. Beachten Sie, dass diese mittlerweile standardmäßig aktiv ist
und Sie sie nicht ausdrücklich aktivieren müssen.
Userfetch
Wenn Portage als root ausgeführt wird, erlaubt FEATURES="userfetch" Portage das
Senken der root-Privilegien während es Paketquellen abruft. Dies verbessert die
Sicherheit ein wenig.
3.f. Beziehen von validierten Portage-Tree-Snapshots
Als Administrator können Sie sich dafür entscheiden, Ihren lokalen Portage-Tree
nur mit einem vom Gentoo Infrastruktur-Team veröffentlichten, kryptographisch
validierten Snapshot des Portage-Trees zu aktualisieren. Das stellt sicher, dass
kein böswilliger rsync-Mirror ungewollten Code oder ungewollte Pakete zu dem
Tree hinzufügt, den Sie herunterladen.
Um Portage zu konfigurieren, erstellen Sie zunächst einen Trust-Store, in den
Sie die Schlüssel der Gentoo-Infrastruktur, die für das Signieren des
Portage-Trees verantwortlich sind, herunterladen und akzeptieren. Wenn Sie
möchten, können Sie diesen GPG-Schlüssel mit den entsprechenden Richtlinien
validieren (z.B. durch Überprüfen des Schlüssel-Fingerabdrucks). Sie finden die
Liste der vom Release-Engineering-Team verwendetn GPG-Schlüssel auf ihrer Projektseite.
Befehlsauflistung
6.13: Erstellen eines Trust-Stores für Portage
# mkdir -p /etc/portage/gpg
# chmod 0700 /etc/portage/gpg
# gpg --homedir /etc/portage/gpg --keyserver subkeys.pgp.net --recv-keys 0x239C75C4 0x96D8BF6D
# gpg --homedir /etc/portage/gpg --edit-key 0x239C75C4 trust
# gpg --homedir /etc/portage/gpg --edit-key 0x96D8BF6D trust
Bearbeiten Sie nun /etc/portage/make.conf und aktivieren Sie die
Unterstützung für das Validieren der signierten Snapshots des Portage-Trees
(durch Verwendung von FEATURES="webrsync-gpg") und schalten Sie das
Aktualisieren des Portage-Trees mit der regulären emerge --sync Methode
ab.
Befehlsauflistung
6.14: Aktualisieren von Portage für Validierung signierter Trees
FEATURES="webrsync-gpg"
PORTAGE_GPG_DIR="/etc/portage/gpg"
SYNC=""
Das wär's. Das nächste Mal, wenn Sie emerge-webrsync verwenden, werden
nur die Snapshots mit einer gültigen Signatur auf Ihrem Dateisystem extrahiert.
[ << ]
[ < ]
[ Hauptseite ]
[ > ]
[ >> ]
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|