Handbuch:IA64/Arbeiten/Features

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:IA64/Working/Features and the translation is 100% complete.
IA64 Handbuch
Installation
Über die Installation
Auswahl des Mediums
Konfiguration des Netzwerks
Vorbereiten der Festplatte(n)
Installation des Stage Archivs
Installation des Basissystems
Konfiguration des Kernels
Konfiguration des Systems
Installation der Tools
Konfiguration des Bootloaders
Abschluss
Arbeiten mit Gentoo
Portage-Einführung
USE-Flags
Portage-Features
Initskript-System
Umgebungsvariablen
Arbeiten mit Portage
Dateien und Verzeichnisse
Variablen
Mischen von Softwarezweigen
Zusätzliche Tools
Eigener Portage-Tree
Erweiterte Portage-Features
Netzwerk-Konfiguration
Zu Beginn
Fortgeschrittene Konfiguration
Modulare Vernetzung
Drahtlose Netzwerke
Funktionalität hinzufügen
Dynamisches Management


Portage hat einige zusätzliche Funktionen, die das Gentoo-Erlebnis noch besser machen. Viele dieser Funktionen basieren auf bestimmten Software-Tools, die die Leistung, Zuverlässigkeit, Sicherheit, ... verbessern

Um bestimmte Portage-Funktionen zu aktivieren oder zu deaktivieren, editieren Sie /etc/portage/make.conf und aktualisieren oder setzen Sie die FEATURES-Variable, die die verschiedenen Funktionsschlüsselwörter, getrennt durch Leerzeichen, enthält. In einigen Fällen wird es auch notwendig sein, das zusätzliche Werkzeug zu installieren, auf dem die Funktion beruht.

Nicht alle Funktionen, die Portage unterstützt, sind hier aufgeführt. Für einen vollständigen Überblick konsultieren Sie bitte die make.conf Manpage:

user $man make.conf

Um herauszufinden, welche FEATURES standardmäßig gesetzt sind, führen Sie emerge --info aus und suchen Sie nach der Variable FEATURES oder grepen Sie sie heraus:

user $emerge --info | grep ^FEATURES=

Verteilte Kompilierung

Verwendung von distcc

distcc ist ein Programm zur Verteilung von Kompilierungen auf mehrere, nicht notwendigerweise identische, Rechner in einen Netzwerk. Der distcc-Client sendet alle notwendigen Informationen an die verfügbaren distcc-Server (auf denen distccd läuft), damit diese Teile des Quellcodes für den Client kompilieren können. Das Nettoergebnis ist eine schnellere Kompilierungszeit.

Mehr Informationen über distcc (und wie man es mit Gentoo zum Laufen bringt) finden Sie im Distcc-Artikel.

Installation von distcc

Distcc wird mit einem grafischen Monitor ausgeliefert, um Aufgaben zu überwachen, die der Computer zur Kompilierung wegschickt. Dieses Tool wird automatisch installiert, wenn gtk eingestellt ist.

root #emerge --ask sys-devel/distcc

Aktivieren der Portage distcc Unterstützung

Fügen Sie distcc zur FEATURES-Variable in /etc/portage/make.conf hinzu. Als nächstes bearbeiten Sie die Variable MAKEOPTS und erhöhen die Anzahl der parallelen Build-Jobs, die das System erlaubt. Eine bekannte Richtlinie ist es, -jN einzugeben, wobei N die Anzahl der CPUs ist, auf denen distccd läuft (einschließlich des aktuellen Hosts) plus eins, aber das ist nur eine Richtlinie.

Führen Sie nun distcc-config aus und geben Sie die Liste der verfügbaren distcc-Server ein. Für ein einfaches Beispiel nehmen wir an, dass die verfügbaren distcc-Server 192.168.1.102 (der aktuelle Host), 192.168.1.03 und 192.168.1.104 (zwei "entfernte" Hosts) sind:

root #distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Vergessen Sie nicht, auch den Daemon distccd zu starten:

root #rc-update add distccd default
root #/etc/init.d/distccd start

Zwischenspeicherung von Kompilierungsobjekten

Über ccache

ccache ist eine schneller Compiler-Cache. Immer wenn eine Anwendung kompiliert wird, werden Zwischenergebnisse zwischengespeichert, so dass die Kompilierungszeit bei jeder Neukompilierung desselben Programms und derselben Version stark reduziert wird. Das erste Mal, wenn ccache ausgeführt wird, ist es viel langsamer als eine normale Kompilierung. Nachfolgende Neukompilierungen sollten jedoch schneller sein. ccache ist nur hilfreich, wenn dieselbe Anwendungsversion viele Male neukompiliert wird; daher ist es meist nur für Softwareentwickler nützlich.

Für weitere Informationen über ccache besuchen Sie bitte die Homepage.

Warnung
ccache ist dafür bekannt, dass es zahlreiche Kompilierungsfehler verursacht. Manchmal behält ccache veraltete Codeobjekte oder beschädigte Dateien zurück, was dazu führen kann, dass Pakete nicht emerged werden können. Wenn dies passiert (Fehler wie "File not recognized: File truncated" erscheinen in den Build-Logs), versuchen Sie, die Anwendung mit deaktivierter ccache neu zu kompilieren (FEATURES="-ccache" in /etc/portage/make.conf oder einmalig von der Befehlszeile mit dem folgenden Befehl), bevor Sie einen Fehler melden:


root #FEATURES="-ccache" emerge --oneshot <kategorie/paket>

ccache Installieren

Um ccache zu installieren, führen Sie den folgenden Befehl aus:

root #emerge --ask dev-util/ccache

Aktivieren der Portage ccache Unterstützung

Öffnen Sie /etc/portage/make.conf und fügen Sie ccache zu allen Werten hinzu, die in der Variable FEATURES definiert sind. Wenn FEATURES nicht vorhanden ist, erstellen Sie sie. Als nächstes fügen Sie eine neue Variable namens CCACHE_SIZE hinzu und setzen sie auf 2G:

DATEI /etc/portage/make.confAktivieren der Portage ccache Unterstützung
FEATURES="ccache"
CCACHE_SIZE="2G"

Um zu überprüfen, ob ccache funktioniert, fordern Sie ccache auf, seine Statistiken bereitzustellen. Da Portage ein anderes ccache-Home-Verzeichnis verwendet, ist es notwendig, die Variable CCACHE_DIR vorübergehend zu setzen:

root #CCACHE_DIR="/var/tmp/ccache" ccache -s

Der Speicherort /var/tmp/portage ist das Standard-ccache-Home-Verzeichnis von Portage; es kann durch Setzen der Variable CCACHE_DIR in /etc/portage/make.conf geändert werden.

Wenn ccache eigenständig läuft, würde es den Standardspeicherort ${HOME}/.ccache/ verwenden, weshalb die CCACHE_DIR Variable gesetzt werden muss, wenn die (Portage) ccache Statistiken abgefragt werden.

Verwendung von ccache außerhalb von Portage

Um ccache für Nicht-Portage-Kompilierungen zu verwenden, fügen Sie /usr/lib/ccache/bin an den Anfang der PATH-Variable (vor /usr/bin). Dies kann durch Bearbeiten von ~/.bash_profile im Home-Verzeichnis des Benutzers erreicht werden. Die Verwendung von ~/.bash_profile ist eine Möglichkeit, PATH-Variablen zu definieren.

DATEI ~/.bash_profileSetzen des ccache-Speicherorts vor jedem anderen PATH
PATH="/usr/lib/ccache/bin:${PATH}"

Unterstützung von Binärpaketen

Vorgefertigte Pakete erstellen

Portage unterstützt die Installation von vorgefertigten Paketen. Auch wenn Gentoo selbst keine vorgefertigten Pakete anbietet, kann Portage vollständig auf vorgefertigte Pakete aufmerksam gemacht werden.

Um ein vorgefertigtes Paket zu erstellen, verwenden Sie den Befehl quickpkg, wenn das Paket bereits auf dem System installiert ist, oder emergen Sie mit den Optionen --buildpkg oder --buildpkgonly.

Um Portage zu veranlassen, vorgefertigte Pakete von jedem einzelnen Paket, das installiert wird, zu erstellen, fügen Sie buildpkg zur FEATURES-Variable hinzu.

Eine erweiterte Unterstützung für die Erstellung von vorgefertigten Paketsätzen kann mit Catalyst erhalten werden. Für weitere Informationen zu Catalyst lesen Sie bitte die Catalyst FAQ.

Installation von vorgefertigten Paketen

Obwohl Gentoo kein zentrales Repositorium anbietet, ist es jedoch möglich, ein zentrales Repositorium zu erstellen, in dem vorgefertigte Pakete gespeichert werden. Um dieses Repositorium zu verwenden, ist es notwendig, Portage darauf aufmerksam zu machen, indem die PORTAGE_BINHOST-Variable auf dieses verweist. Zum Beispiel, wenn die vorgefertigten Pakete auf ftp://buildhost/gentoo liegen:

DATEI /etc/portage/make.confPORTAGE_BINHOST Standard hinzufügen
PORTAGE_BINHOST="ftp://buildhost/gentoo"

Um ein vorgefertigtes Paket zu installieren fügen Sie dem emerge-Befehl die Option --getbinpkg neben der Option --usepkg hinzu. Erstere weist emerge an, das vorgefertigte Paket von dem zuvor definierten Server herunterzuladen, während letztere emerge auffordert, zuerst zu versuchen, das vorgefertigte Paket zu installieren, bevor es die Quellen abruft und kompiliert.

Zum Beispiel, um gnumeric mit vorgefertigten Paketen zu installieren:

root #emerge --usepkg --getbinpkg gnumeric

Weitere Informationen über die vorgefertigten Paketoptionen von emerge finden Sie in der emerge Manpage:

user $man emerge

Weitergabe von vorgefertigten Paketen an andere

Wenn vorgefertigte Pakete an andere weitergegeben werden sollen, stellen Sie sicher, dass dies erlaubt ist. Prüfen Sie dazu die Distributionsbedingungen des Upstream-Pakets. Für ein Paket, das unter der GNU GPL veröffentlicht wurde, müssen beispielsweise die Quellen zusammen mit den Binärdateien zur Verfügung gestellt werden.

Ebuilds können eine bindist-Beschränkung in ihrer RESTRICT-Variable definieren, wenn erstellte Binärdateien nicht verteilbar sind. Manchmal ist diese Einschränkung von einem oder mehreren USE-Flags abhängig.

Standardmäßig wird Portage keine Pakete aufgrund von Einschränkungen masken. Dies kann global durch Setzen der ACCEPT_RESTRICT-Variable geändert werden. Um zum Beispiel Pakete zu masken, die eine bindist-Beschränkung haben, fügen Sie die folgende Zeile in make.conf ein:

DATEI /etc/portage/make.confNur binär verteilbare Pakete akzeptieren
ACCEPT_RESTRICT="* -bindist"

Es ist auch möglich die ACCEPT_RESTRICT-Variable außer Kraft zu setzen, indem Sie die Option --accept-restrict an den Befehl emerge übergeben. Zum Beispiel wird --accept-restrict=bindist Pakete mit einer bindist-Beschränkung vorübergehend masken.

Denken Sie auch daran, die Variable ACCEPT_LICENSE zu setzen, wenn Sie Pakete verteilen. Siehe dazu den Lizenzabschnitt.

Wichtig
Es liegt in der Verantwortung jedes Benutzers, die Lizenzbedingungen der Pakete und die Gesetze des jeweiligen Landes einzuhalten. Die von Ebuilds definierten Metavariablen (RESTRICT oder LICENSE) können Hinweise geben, wenn die Verbreitung von Binärdateien nicht erlaubt ist, jedoch sind Ausgaben von Portage oder Fragen, die von Gentoo Entwicklern beantwortet werden, "keine" rechtlichen Aussagen und sollten nicht als solche betrachtet werden. Seien Sie vorsichtig und halten Sie sich an die Gesetze Ihres Standorts.

Abrufen von Dateien

Userfetch

Portage wird normalerweise als root-Benutzer ausgeführt. Die Einstellung FEATURES="userfetch" erlaubt es Portage, die Root-Rechte aufzugeben, während es die Paketquellen holt und mit den Benutzer-/Gruppenrechten von portage:portage zu laufen. Dies ist eine kleine Sicherheitsverbesserung.

Wenn userfetch in FEATURES gesetzt ist, stellen Sie sicher, dass Sie den Besitzer aller Dateien unterhalb von /var/db/repos/gentoo mit dem Befehl chown mit root-Rechten ändern:

root #chown --recursive --verbose portage:portage /var/db/repos/gentoo

Distfiles überprüfen

Um die Integrität zu überprüfen und (möglicherweise) zuvor entfernte/beschädigte Distfiles für alle derzeit installierten Pakete erneut herunterzuladen, führen Sie aus:

root #emerge --ask --fetchonly --emptytree @world