De:HOWTO: Die vollständige Portage Anleitung

From Sabayon Wiki
Revision as of 22:17, 2 February 2011 by K4ph (Talk | contribs) (translation of this page completed)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
i18n: ca de en es fr pl tr
<-- Hauptseite
Stop.png
Portage (emerge) ist nicht das primäre Paketverwaltungssystem von Sabayon Linux. Dieser Artikel richtet sich an fortgeschrittene Nutzer. Mit anderen Worten, wenn etwas für dich schief läuft, ist es dein Fehler. Wir haben dich gewarnt.

Vorbemerkungen

F. Was ist eine Shell?

A. Eine Shell ist eine Kommandozeilen-Schnittstelle oder ein Terminal(-emulator), MS Windows Nutzer kennen sie vielleicht als Kommandoprompt. (Die MS Windows Shell ist fürchterlich).

Um eine Shell zu öffnen, drücke ALT+F2 (das Kürzel ermöglicht es, einen Befehl einzugeben) und tippe konsole (in KDE) oder gnome-terminal (in GNOME) oder xterm wenn dir diese Schnittstelle lieber ist.

Um an eine root Shell zu gelungen gib bitte den Befehl

    $ su

ein (den switch user Befehl, also wechsle Benutzer). In KDE kannst du aber auch eine root shell direkt starten durch Eingabe des Befehls kdesu konsole nachdem du ALT+F2 gedrückt hast, oder aber auch gksu gnome-terminal nach Drücken von ALT+F2 in GNOME. Technisch gesprochen ist die Shell eine Umgebung für eine Kommandozeile und nicht nur ein Schnittstellenvorbau dazu. Die in den meisten Linux Versionen vorinstallierte Shell ist gegenwärtig die BASH (Bourne Again Shell).

F. Was ist diese ganze Sache mit dem ALT+F2?

A. Das sinnvollste Werkzeug innerhalb der Toolbar, die Sabayon Nutzer kennen sollten, ist der Befehlszeilendialog, der sich hinter dem Tastendruck ALT+F2 verbirgt, welcher es uns gestattet, alle möglichen Programme und Befehle laufen zu lassen, indem man die Tastenkombination ALT+F2 drückt und den Namen des Befehls ganz oder teilweise eingibt (dann muss man durch drücken der TAB-Taste den Befehl ergänzen). Der Tastendrück ALT+F2 ist vielen verschiedenen grafischen Fenstermanagern bekannt, beispielsweise KDE, GNOME, LXDE und Xfce, anderen kann man ein Tastenkürzel beibringen, das den Befehl gmrun aufruft (dies ist quasi das Programm, das durch diesen Tastendruck gestartet wird). In manchen Fenstermanagern kann diese auch gestartet werden, indem man mit dem Mauszeiger über dem leeren Hintergrund schwebt, die rechte Maustaste drückt und "Befehl ausführen" aus dem Menü auswählt.

F. Warum verwendet ihr viele && in euren Anweisungen?

A. Weil es der einfachste Weg ist, eine Kette von Befehlen in einer Zeile unterzubringen.

F. Was benötigt man für diese Anleitung?

A. Du benötigst eine installierte Sabayon Linux oder Gentoo Installation, ein arbeitendes Gehirn (nicht jeder verfügt scheinbar darüber (o:), ein paar Augen und die Fähigkeit zu lesen, denken und lernen.


Die Anleitung beginnt hier

F. Wie installiere ich Software in Sabayon Linux?

Kurze Antwort:: Tippe in einer root Shell den Befehl emerge <Paketname> wobei das <Paketname> ausgetauscht werden muß durch den tatsächlichen Namen des Pakets, den es zu installieren gilt.

Längere Antwort:

Dies hängt ab von den Methoden die du zur Installation der Software verwenden möchtest. GENERELL WIRST DU DIE ERSTEN BEIDEN METHODEN IGNORIEREN WOLLEN!!!

Windows Software

Zuerst einmal, wenn du Windows Software unter Verwendung von WINE installieren möchtest, tippe wine /pfad/zum/setupoderinstaller.exe in einer Benutzer Shell (wobei du beim Pfad darauf achten mußt, das in Linux Umgebung vor einem Leerzeichen ein \ stehen muß).


Quell-Installation

Beachte, das die unten aufgeführte Anleitung nur generell und oberflächlich ist, für spezifische Beispiele und Anleitungen lies alles, was in Paketen enthalten ist, verwende Google (o:, und dein Gehirn.

  1. Du lädst ein Quellpaket unter der Verwendung von wget in einer Shell oder durch Firefox oder sonstwie herunter.
  2. Du entpackst das Quellpaket, oftmals unter der Verwendung von tar.bz2, tar.gz oder xz in einer Shell oder durch Verwendung von Ark oder File-Roller.
  3. Du verschiebst den extrahierten Ornder nach /usr/local/src unter Verwendung von cp -R in einer root Shell oder durch Verwendung von Dolphin, Nautilus, PcmanFM oder Thunar als root.
  4. Du liest die README und INSTALL Dateien der entpacktend Dateien in ihrem Verzeichnis in /usr/local/src.
  5. Du wechselst das Verzeichnis durch tippen von cd /usr/local/src/Paketname (wobei hier Paketname für den genauen Namen des Paketverzeichnisses steht (verwende die TAB-Taste zur Namensergänzung)
  6. Sofern es nicht anders in den README oder INSTALL Dateien nachzulesen ist, führst du das Konfigurationssript durch den Befehl ./configure aus, oder mußt ihn sogar erstellen (das ist bei svn oder cvs Installationen meistens nötig) indem du autocon tippst (wenn autoconf eine Fehlermeldung ausgibt, versuche es mit tippen von libtoolize && autoreconf, dann tippe rm configure && autoconf)
  7. Sofern es nicht anders in den README oder INSTALL Dateien nachzulesen ist, tippst du, sofern ein Makefile existiert make && make install
  8. Fertig

Und Schlußendlich, ist die EINFACHSTE und BESTE Methode für Sabayon Linux oder Gentoo, Portage / emerge zu benutzen.

Portage

Portag ist ein Paketverwaltungssystem, daß von Gentoo und Sabayon Linux zur Installation, Deinstallation und zur Wartung von Software für das System verwendet wird. Das Portage-System basiert auf den Portage Baum, welcher seinerseits wieder auf ebuils aufbaut, dem emerge Befehls, mit dem ebuils aus dem Portage Baum installiert werden könne, den Portage Konfigurationsdateien und den Portage Overlays Dritter / den emerge Zusatzwerkzeugen.

Der Portage Baum ist eine lokale Kopie (zu finden in /usr/portage) des zentralen Software Paket Repositoriums. Wann immer du auch Software auf deinem System mit Hilfe des emerge Befehels installierst, wird der Portag Baum zuvor durchsucht. Wenn ein Paketname gefunden wird, werden seine Abhängigkeiten berechnet, der Quellcode für die Pakete und seine Abhängigkeiten werden heruntergeladen und dann nacheinander für dein System compiliert und installiert.

Ebuild

Ein ebuild ist eine spezialisiertes bash Skript format, verwendet von Gentoo & Sabayon Linux, um einen Satz von Befehlen an emerge weiterzureichen, der Schnittstelle zum Portage Softwareverwaltungssystem. Ein ebuild ist ein automatisierted Weg um Compilations- und Installations-Routinen für Software durchzuführen.

Jede Version jeder Anwendung oder jeden Paketes im Portage-Repositorium hat ein spezifisches ebuild Skript, daß dafür geschrieben wurde.

Das ebuild Skript wird verwendet von emerge. Das emerge Werkzeug verwendet das ebuild um seine Arbeit durchzuführen: das Berechnen von Abhängigkeiten für die gewünschte Software Installation, das Herunterladen der benötigten Dateien (und Patch-Dateien, wenn notwendig), das Konfigurieren der Pakete (basierend auf den USE Flag Einstellungen), das Kompilieren, die Durchführung einer Sandkasten-Installation (für gewöhnlich in /var/tmp/portage/[ebuildname]/image/). Nach erfolgreichem Abschluß all dieser Schritte werden die Dateien installiert und in das lebendige System eingefügt, außerhalb des Sandkastens.

Obwohl die meisten ebuilds, die man im Gentoo Portage-Repositorium finden kann, dazu verwendet werden, Programme aus Quellcode zu compilieren, gibt es ebenso ebuilds die dazu dienen, Binärpakete zu installieren, ebuilds die nur Dokumente installiern oder Daten wie zum Beispiel Schriftarten, und grundlegende ebuilds, genannt "metabuilds", welche nichts anderes tun, als die Installation weitere Pakete auszulösen (so wie die GNOME oder KDE metabuilds).

Für Anweisungen, wie man ebuilds selber erstellt, ließ bitte Gentoo Development Guide: Quickstart Ebuild Guide und Gentoo Development Guide.

Emerge

Das emerge Befehlszeilen-Werkzeug ist das Herz von Portage. Der Befehls ist höchst komplex, mit vielen Optionen und Modifizierern. Er ist in der Python Programmiersprache abgefaßt. Das emerge Werkzeug ist das wichtigste Werkzeug umd auf die vielen Funktionen von Portage über die Kommandozeile zuzugreifen.

Das Programm berechnet und verwaltet Abhängigkeiten, führt ebuilds aus und pflegt den lokalen Portage Baum und die Datenbank installierter Pakete. Die Kompilierungseinstellungen der ebuilds können durch die CFLAGS Umgebungsvariablen verändert werden, basierend auf den Spezifikationen der individuellen Computer und auf den Wünschen der Benutzer zur Optimierung. Das emerge Werkzeug führt ebuilds in einer Sandkasten-Umgebung aus. Dieser Weg dient dazu, das System vor Software zu schützen, die durch ebuild ausgeführt wird und resultiert in Binärpaketen die nur dann hinzugefügt werden, wenn sie erfolgreich im Sandkasten zusammengebaut und installiert werden konnten.

Was emerge installiert, ist abhängig und wird beeinflußt durch die USE Flag Einstellungen. Sie entscheiden, welche optionale Funktionen in die Installation oder die Aktualisierung einer Anwendung einfließen. Der emerge Befehl kann ebenso dazu benutzt werden, Binärpakete herunterzuladen und zu installieren, obwohl so manch einer argumentiert, daß die Verwendung von Binärpaketen nicht die volle Kraft und Leistungsfähigkeit verwendet, denn es werden keine durch Kompilierzeit erreichbare Optimierungen für die Systemumgebung erstellt (die heutzutage allerdings nicht mehr für alle Umgebungen gültig sind - und den Aspekt der Umweltfreundlichkeit dabei keinerlei Beachtung schenken).

Dinge die man mit emerge anstellen kann

Du kannst die meisten Flags und Schalter wie von nun an aufgeführt mischen. Emerge arbeitet am besten, wenn man es als root ausführt. Sieh dir bitte man emerge für weitere Informationen an.

Question.png
Es gibt keine Notwendigkeit das sudo Kommando in Sabayon Linux zu

verwenden. Nutze stattdessen das su Kommando um dich mit dem root Benutzerkonto zu verbinden, führe die aufgeführten Schritte durch, tippe dann exit ein um dich vom root-Konto abzumelden sobald du fertig bist. Dieser Artikel setzt dies voraus. Die Rautenzeichen (#) Eingabeaufforderung zeigt deine Anmeldung als root Benutzer an; eine Dollarsymbol ($) Eingabeaufforderung

zeigt das du mit deinem eigenen Konto angemeldet bist.

Portage synchronisieren / Aktualisieren des Portage Baums

    # emerge --sync

Dies aktualisiert den Portage Baum und baut ihn neu aufgrund einer Synchronisation mit Online-Servern auf. Du wirst diesen Befehl normalerweise ausführen, bevor du damit beginnst, Pakete zu installieren oder zu entfernen, da so sichergestellt wird, daß dein Portage Baum auf den neuesten Informationen aufbaut. Oftmals wirst du ebenfalls das weitere Kommando ausführen:

    # layman -S

Es wird alle installierten Overlays (beispielsweise das Sabayon-Overlay) aktualisieren. (Du kannst weiteres über Overlays lesen in #Overlays & Layman)

Pakete installieren

    # emerge <Paketname

oder

    # emerge =packagecategory/Paketname-version

(=packagecategory/Paketname-version muß bekannt sein als ein gültiges Paket Atom) Dies installiert oder aktualisiert auf höhere oder niedrigere Versionen von Paketen.

    # emerge -u <Paketname>

oder

    # emerge -u =packagecategory/Paketname-version

Dies aktualisiert auf die beste (stabiliste) Version eines Paketes, dies muß nicht gerade die aktuellste Version sein.

Es gibt mehr als 14.100 Pakete in Portage, unten aufgeführt sind nur ein paar gültige Paket-Atome, die installiert werden können:

  • www-client/firefox-3.6.13
  • net-fs/samba-3.5.6
  • media-video/mplayer-1.0_rc4_p20101114
  • app-emulation/wine-1.3.10
  • media-gfx/inkscape-0.48.0
  • sys-devel/gcc-4.4.4-r2

Pakete können entweder angesehen werden auf: http://packages.gentoo.org/ (offizielle) oder http://gentoo-portage.com/ oder http://gpo.zugaina.org/ (Suchmaschine für sämtliche Pakete und Overlays)

Natürlich kannst du auch einfach nur den Namen angeben (z.B. firefox, samba, mplayer, wine, inkscape oder gcc).

Pakete entfernen

    # emerge -C <Paketname>

oder

    # emerge -C =packagecategory/Paketname-version

Dies entfernt Pakete.

    # emerge -c <Paketname>

oder

    # emerge -c =packagecategory/Paketname-version

Dies entfernt und bereinigt alles Pakete und seine nunmehr unnotwendigen Abhängigkeiten.

    # emerge --depclean

Dies entfernt alle Pakete, die nicht im System oder in den World Dateien aufgeführt sind.

Ausführlichkeit von Portage verändern

    # emerge -v <Paketname>

Dies läßt Portage ausführlicher berichten.

    # emerge -q <Paketname>

Dies bringt Portage zum verstummen.

Suchen

    # emerge -s <Paketname>

Dies sucht nach einem Paket mit dem Paketnamen.

    # emerge -S <Paketname>

Dies sucht nach einem Paket innerhalb der Paketnamen und der Paketbeschreibungen.

Fragen und Vorgaben

    # emerge -a <Paketname>

Dies bewirkt das es den Benutzer bei jeden Schritt um eine Entscheidung bittet.

    # emerge -p <Paketname>

Dies ermöglicht es Vorgaben an emerge zu machen, wie es handeln soll. Es ist eine gute Idee, dies mit dem -v Flag zu verbinden. Die Aufschlüsselung der Information wird unten aufgeführt: N = neu (bisher nicht installiert) S = neuer SLOT Installation (parallele Installation) U = updating/aktualisieren (auf höhere Version) D = downgrading/aktualisieren (auf niedrigere Version) R = ersetzen (erneut mit derselben Version re-emergen) F = hole eingeschränkt (muß manuell heruntergeladen werden) f = hole eingeschränkt (bereits heruntergeladen) B = installiert durch eine bereits installierte Version

Andere coole Optionen

    # emerge -1 <Paketname>

fügt das Paket nicht zur World Datei hinzu (der Liste an Paketen, die du wirklich installiert haben möchtest), wenn das Paket installiert wird.

    # emerge -o <Paketname>

emerged nicht das Paket, sondern nur seine Abhängigkeiten

    # emerge -f <Paketname>

installiert und entpackt das Paket nicht, es wird vielmehr nur heruntergeladen.

    # emerge --resume

führt die letzte Operation fort, was sinnvoll ist, wenn absichtlich oder unabsichtlich mittendrin STRG-C gedrückt - und so den Vorgang abgebrochen hat.

Große Aktualisierungen & Rekompilierungen

    # emerge world

oder

    # emerge -e world

Dies reinstalliert / aktualisiert alles, was sich in der World Datei (der Liste der Programme die du installiert haben möchtest) befinden. Es ist GEFÄHRLICH dies ohne vorangehende Planung, Paketmaskierungen (siehe unten) und die korrekten Switches / Flags durchzuführen. Die beste Art ein emerge world vorzubereiten, besteht darin, sich die Howtos im Gentoo Forum und Gentoo Wiki anzushen - und viel Glück.

    # emerge system

oder

    # emerge -e system

Dies reinstalliert / aktuallisiert alles in deinem Kernsystem. Es ist nicht ganz so gefährlich wie emerge world, aber es bedarf trotzdem einer korrekten Planung.

Overlays & Layman

Portage Overlays sind nutzergenerierte Portage Baum die Pakete enthalten, die von jenem im offiziellen Gentoo Portage Tree abweichen oder erst gar nicht enthalten sind.

Overlays können manuell hinzugefügt werden, indem man PORTDIR_OVERLAY="" in /etc/make.conf ändert, aber in Sabayon Linux bevorzugen wir es, layman (den Overlay-Manager) diese Aufgabe übernehmen zu lassen.

    # layman -l

Dieser Befehl listet alle Overlays auf.

    # layman -S

Dies synchronisiert alle installierten Overlays (so wie emerge --sync)

    # layman -s <Overlayname>

Dies synchronisiert das Overlay mit dem Overlaynamen.

    # layman -a <Overlayname>

Dies fügt/installiert ein Overlay hinzu. Es kann sein, daß du /etc/make.conf bearbeiten mußt um den Vorgang abzuschließen.

    # layman -d <Overlayname>

Dies entfernt/deinstalliert ein Overlay. Es kann sein, daß du /etc/make.conf bearbeiten mußt um den Vorgang abzuschließen.

Um das Overlay von Sabayon zu installieren, tippe:

    # layman -s sabayon

Wenn du nach Paketen in ALLEN Overlays suchen möchtest, dann mußt du:

    # emerge eix && update-eix && update-eix-remote update

Jetzt kannst du mit eix <Schlüsselwort> nach einem Schlüsselwort in allen Overlays suchen (du kannst -e für genaue Übereinstimmung verwenden). Dann kannst du layman verwenden, um das benötigte Overlay zu installieren. Erinnere dich daran, update-eix && update-eix-remote update von Zeit zu Zeit laufen zu lassen.

Für weitere Informationen bezüglich Paketen und Overlays Dritter, wirf einen Blick in HOWTO: Example of Installing 3rd Party Ebuilds.

Für weitere Informationen bezüglich Overlays, sieh dir http://en.gentoo-wiki.com/wiki/Portage_Overlay an.

Portage GUI Werkzeuge

Kuroo und Porthole sind grafische Benutzerschnittstellen zu emerge / portage in KDE und GNOME. Kuroos Entwicklung wird nicht aktiv angetrieben und wird nicht länger im Portage Baum unterstützt. Porthole wird als weniger problematisch im Umgang angesehen, das es einfach Portage Regeln ignoriert, mit denen es seitens Kuroo bereits Probleme gab.

Zwei andere grafische Benutzerschnittstellen zu Portage, beide auf GTK basierend, sind Portato und Himerge (das letztere wird in Haskell geschrieben).

Optional: Du kannst die grafischen Portage Werkzeuge und emerge beschleunigen, indem du als root tippst:

    # emerge udept
    # dep -w

dies bereinigt die Sabayon Linux World Datei, was etwas Zeit in Anspruch nehmen wird, aber die generelle Geschwindigkeit beim mergen erhöht.

Himerge installieren

Template:Siehe auch

    # emerge -av himerge

Hard masked Pakete & /etc/portage/package.mask & /etc/portage/package.unmask

Maskierte / Hartmaskierte Pakete in Portage sind Pakete, die verriegelt of geblockt werden um nicht installiert zu werden - und das aus vielen verschiedenen Gründen.

(=Paketkategorie/Paketname-version) Dies ist was mal allgemein ein Paket-Atom nennt. Immer wenn man eine Fehlermeldung in Portage bezüglich eines "Atoms" erhält, ist eine von drei Möglichkeiten der Auslöser:

  1. Du hast den Namen des Pakets falsch getippt. Tippe ihn erneut und emerge ihn nochmal.
  2. Das Atom existiert ausschließlich im Sabayon Linux Overlay - und du mußt diese per
    # layman -S

zuerst einmal updaten und dann das Paket erneut emergem.

  1. Das Atom, das du zu installieren versuchst, existiert nicht.

Beispiele von gültigen Paketatomen die maskiert oder entmaskiert werden müssen sind:

  • =x11-drivers/xf86-video-i128-1.2.1
  • =sys-apps/dbus-1.0.2
  • <=dev-libs/dbus-glib-0.73

Um ein Paket zu maskieren, füge eine Zeile für die entweder enthält =gültigesPaketAtom oder >gültigesPaketAtom oder <gültigesPaketAtom oder >=gültigesPaketAtom oder <=gültigesPaketAtom, abhängig darauf, welche Version des Paketes du maskieren möchtest in /etc/portage/package.mask.

Um ein Paket zu demaskieren, füge eine Zeile für die entweder enthält =gültigesPaketAtom oder >gültigesPaketAtom oder <gültigesPaketAtom oder >=gültigesPaketAtom oder <=gültigesPaketAtom, abhängig darauf, welche Version des Paketes du demaskieren möchtest in /etc/portage/package.unmask.

Pakete werden aus verschiedenen Gründen maskiert, diese Gründe sind entweder in Portage hinterlegt, oder sie können identifiziert werden, in dem man andere Personen danach befragt. Sei vorsichtig, wenn du Pakete maskierst oder demaskierst.

Mehr hierzu findest du unter:

Fehlende Keywords

Wenn Portage sagt: "masked by: missing keyword" während des emergens, bedeutet es, das ein Paket für deine Architektur nicht verfügbar ist, z.B. wenn du ein amd64 System benutzt und das entsprechende Paket ist nur verfügbar für "x86". Wenn du das Paket wirklich benötigst, kannst du folgendes versuchen:

    # echo "category/package amd64 ~amd64" >> /etc/portage/package.keywords

um die Einstellungen eines Pakets in einer Kategorie zu überlaufen.

Question.png
Ich habe das unstabile "~amd64" eingetragen, da Sabayon auf dem unstabilen Zweig von Gentoo aufbaut.

Da Gentoo eine quellbasierte Distribution ist, existiert eine hohe Wahrscheinlichkeit, das man es schafft das Paket ohne vorhergehende Modifikationen zu bauen.

Mehr hierzu findest du unter:

/etc/portage/package.keywords

Diese Datei wird dazu benutzt um unstabile Pakete auf stabilen System laufen zu lassen oder aber auch ebuilds, die nicht für dein System getestet wurden. Diese Datei ist wichtig für Sabayon Nutzer, habe gentoo-wiki.com hat hierzu weitere Informationen, falls es dich interessiert.

/etc/make.conf

See here http://www.gentoo-wiki.info/MAN_make.conf_5

etc-update & dispatch-conf

Diese Werkzeuge aktualisieren deine Konfigurations-Dateien nachdem Pakete emerged worden sind.

    $ man etc-update

oder

    $ man dispatch-conf

halten weitere Information hierfür bereit. Wenn du Zweifel hast, lege immer ein Backup deiner alten Konfigurationsdateien an bevor du aktualisierst. Wenn etwas schief läuft hast du so immer noch eine Sicherung.

revdep-rebuild, equery, eix, und mehr

revdep-rebuild baut zerbrochene Pakete erneut, basierende auf rückwärtige Abhängigkeiten und zerbrochenen Bibliotheken.

revdep-rebuild -Xp zu nutzen vor revdep-rebuild -X ist immer eine gute Idee. -X sorgt für das Ignorieren spezifischer Pakete, während -pmakes it ignore specific package version, -p dient eine Testlauf, ähnlich dem emerge -p

revdep-rebuild benötigt Zeit und löst oftmals einen großen emerge-Vorgang aus, aber nach der Beendigung des Laufs sollte dein System wieder gut arbeiten.

equery und eix sind erweiterte Portage Suchwerkzeuge

    $ man equery

und

    $ man eix

stellen ihren Syntax vor und tiefergehende Informationen zu ihnen findet man im gentoo-wiki.com und den Gentoo Foren.

Unser Dank geht an

<-- Hauptseite