Note

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Difference between revisions of "Install/de/Portage"

From Funtoo
< Install‎ | de
Jump to navigation Jump to search
(completed)
Line 3: Line 3:
</noinclude>
</noinclude>
=== Einführung in Portage ===
=== Einführung in Portage ===
Portage, der Paketmanager für Funtoo Linux hat einen Befehl <code>emerge</code> welcher benutzt wird um Pakete aus ihrem Quellcode zu bauen und zu installieren. Dabei sorgt es auch dafür das alle Abhänigkeiten eines Pakets aufgelöst werden.
Portage ist der Paketmanager für Funtoo Linux. Um Pakete aus ihrem Quellcode zu bauen und zu installieren, benutzt man den Befehl <code>emerge</code>. Dieser Befehl sorgt neben der Installation auch dafür, dass alle Abhängigkeiten für die Installation des Pakets aufgelöst werden.


emerge wird folgerndermaßen aufgerufen:
emerge wird folgerndermaßen aufgerufen:
Line 11: Line 11:
</console>
</console>


Wenn ein Paket auf diese Weise installiert wird, speichert Portage den Paketnamen in der Datei  <code>/var/lib/portage/world</code> ab. Da du das Paket explizit, per Paketname installiert hast geht Portage davon aus, dass du es auch un Zukunft auf dem laufdenen Stand haben möchtest.
Wenn ein Paket auf diese Weise installiert wird, speichert Portage den Paketnamen in der Datei  <code>/var/lib/portage/world</code> ab. Da das Paket explizit, per Paketname installiert wurde, geht Portage davon aus, dass es auch in Zukunft auf dem aktuellen Stand gehalten werden soll.
Das Paket wird somit Teil deines Systems. <code>world</code> ist dabei ein sogenanntes Set. Dadruch das alle Pakete dem <code>world</code> Set hinzuguegt werden kannst du dein gesamtes System mit dem folgenden Kommando aktualisieren:
Das Paket wird somit Teil des Systems. <code>world</code> ist dabei ein sogenanntes Set. Dadurch, dass alle Pakete dem <code>world</code> Set hinzugefügt werden, kann man das gesamte System wie folgt aktualisieren:
 
Zuerst aktualisiert man den gesamten Portage tree, in welchem sich alle verfügbaren Pakete als sogenannte ebuilds befinden. Ebuilds sind Skripte, die dem Tool emerge beschreiben, was genau getan werden muss, um ein Paket zu installieren. Bei Funtoo Linux wird der Portage Tree in einem git Repository gespeichert. Dieses ist um einiges schneller als das in Gentoo standardmäßig verwendete rsync.


<console>
<console>
(chroot) # ##i##emerge --sync
(chroot) # ##i##emerge --sync
<console>
Anschließend kann man das gesamte System (das <code>world</code> Set) mit folgendem Befehl aktualisieren:
</console>
(chroot) # ##i##emerge -auDN @world
(chroot) # ##i##emerge -auDN @world
</console>
</console>


Hierbei handelt es sich um den "offiziellen" Weg dein Funtoo Linux System zu aktualisieren.
Zuerst aktualisieren wir den gesamten Portage tree. Im Portage tree befinden sich alle ebuilds, welches Skripte sind die emerge beschreiben was genau getan werden muss um ein Paket zu installieren. Bei Funtoo Linux wird der Tree in einem git repository gespeichert. Dies ist um einiges schneller als rsync.
Danach sagen wir emerge dass das gesammte System (das <code>world</code> Set) aktualisiert werden soll.
Hier eine Aufschlüsselung der verwendeten Optionen:
Hier eine Aufschlüsselung der verwendeten Optionen:
* '''<code>a</code>''' -  (englisch: ask) bevor die Aktion durchgeführt wird, werden die einzelnen anstehenden Updates angezeigt, und man muss die Aktion nochmals bestätigen
* '''<code>u</code>''' -  (englisch: update) führt Updates für Pakete durch, für die es eine neue Version im Portage Tree gibt
* '''<code>D</code>''' -  (englisch: deep) beachtet den kompletten Abhängigkeitsbaum beim aktualisieren
* '''<code>N</code>''' -  (englisch: new) baut alle Pakte, die ein neues  bzw. geänderte USE flag haben


* '''<code>a</code>''' - zeige uns was emerged werden soll, und frage (englisch: ask) uns ob wir einverstanden sind
Von Zeit zu Zeit sollte man die Option <code>--with-bdeps=y</code> übergeben. Dieses dient dazu auch alle build Abhängigkeiten zu aktualisieren, welche nicht explizit im <code>world</code> Set aufgeführt sind.
* '''<code>u</code>''' - aktualisiere (englisch: update) die Pakete, aber emerge sie nicht falls eine keine Aenderungen gibt
* '''<code>D</code>''' - Beachte den kompletten Abhängigkeitsbaum beim aktualisieren. In anderen Worten: Mache ein "tiefes" (englisch: deep) Update
* '''<code>N</code>''' - Aktualisiere alle Pakete welche ein neues (englisch: new) bzw. geänderte USE flags haben
 
Du solltest auch von Zeit zu Zeit die Option <code>--with-bdeps=y</code> mitübergeben. Das dient dazu auch alle build Abhängigkeiten zu aktualisieren.


Manchmal möchten wir auch ein Paket installieren es aber nicht zum <code>world</code> Set hinzufügen. Zum Beispiel wenn du das Paket nur temporär installieren möchtest, oder das Paket nur eine Abhängigkeit eines anderen ist. In diesem Fall wird <code>emerge</code> folgendermaß en aufgerufen:
Manchmal möchte man auch ein Paket installieren, es aber nicht zum <code>world</code> Set hinzufügen. Zum Beispiel wenn man das Paket nur temporär installieren möchte, oder das Paket nur eine Abhängigkeit eines anderen ist. In diesem Fall wird <code>emerge</code> folgendermaßen aufgerufen:


<console>
<console>
Line 41: Line 44:
==== Aktualisieren von world ====
==== Aktualisieren von world ====


Jetzt ist eine gute Zeit um das gesammte System zu aktualisieren. Am besten vor dem ersten Neustart.
Jetzt ist eine gute Zeit um das gesamte System zu aktualisieren. Am besten vor dem ersten Neustart.


<console>
<console>
Line 49: Line 52:


{{fancyimportant|1=
{{fancyimportant|1=
  <code>emerge</code> gibt manchmal wichtige Meldungen aus. Lies diese! Besonders nachdem zu perl oder python aktualisiert hast}}
  <code>emerge</code> gibt manchmal wichtige Meldungen aus. Diese sollten in jedem Fall gelesen werden! Besonders nachdem man perl oder python aktualisiert hat}}

Revision as of 13:26, January 27, 2015


   Note

This is a template that is used as part of the Installation instructions which covers: an introduction to Portage. Templates are being used to allow multiple variant install guides that use most of the same re-usable parts.


Einführung in Portage

Portage ist der Paketmanager für Funtoo Linux. Um Pakete aus ihrem Quellcode zu bauen und zu installieren, benutzt man den Befehl emerge. Dieser Befehl sorgt neben der Installation auch dafür, dass alle Abhängigkeiten für die Installation des Pakets aufgelöst werden.

emerge wird folgerndermaßen aufgerufen:

(chroot) # emerge paketname

Wenn ein Paket auf diese Weise installiert wird, speichert Portage den Paketnamen in der Datei /var/lib/portage/world ab. Da das Paket explizit, per Paketname installiert wurde, geht Portage davon aus, dass es auch in Zukunft auf dem aktuellen Stand gehalten werden soll. Das Paket wird somit Teil des Systems. world ist dabei ein sogenanntes Set. Dadurch, dass alle Pakete dem world Set hinzugefügt werden, kann man das gesamte System wie folgt aktualisieren:

Zuerst aktualisiert man den gesamten Portage tree, in welchem sich alle verfügbaren Pakete als sogenannte ebuilds befinden. Ebuilds sind Skripte, die dem Tool emerge beschreiben, was genau getan werden muss, um ein Paket zu installieren. Bei Funtoo Linux wird der Portage Tree in einem git Repository gespeichert. Dieses ist um einiges schneller als das in Gentoo standardmäßig verwendete rsync.

(chroot) # emerge --sync
<console>

Anschließend kann man das gesamte System (das <code>world</code> Set) mit folgendem Befehl aktualisieren:

(chroot) # ##i##emerge -auDN @world </console>

Hier eine Aufschlüsselung der verwendeten Optionen:

  • a - (englisch: ask) bevor die Aktion durchgeführt wird, werden die einzelnen anstehenden Updates angezeigt, und man muss die Aktion nochmals bestätigen
  • u - (englisch: update) führt Updates für Pakete durch, für die es eine neue Version im Portage Tree gibt
  • D - (englisch: deep) beachtet den kompletten Abhängigkeitsbaum beim aktualisieren
  • N - (englisch: new) baut alle Pakte, die ein neues bzw. geänderte USE flag haben

Von Zeit zu Zeit sollte man die Option --with-bdeps=y übergeben. Dieses dient dazu auch alle build Abhängigkeiten zu aktualisieren, welche nicht explizit im world Set aufgeführt sind.

Manchmal möchte man auch ein Paket installieren, es aber nicht zum world Set hinzufügen. Zum Beispiel wenn man das Paket nur temporär installieren möchte, oder das Paket nur eine Abhängigkeit eines anderen ist. In diesem Fall wird emerge folgendermaßen aufgerufen:

(chroot) # emerge -1 paketname

Fortgeschrittene Benutzer, und alle die es werden wollen, sollten für weitere Informationen die Emerge wiki Seite lesen.

Aktualisieren von world

Jetzt ist eine gute Zeit um das gesamte System zu aktualisieren. Am besten vor dem ersten Neustart.

(chroot) # emerge --sync
(chroot) # emerge -auDN @world
   Important

emerge gibt manchmal wichtige Meldungen aus. Diese sollten in jedem Fall gelesen werden! Besonders nachdem man perl oder python aktualisiert hat