Pacman: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
(möglciherweise nicht mehr aktuell...)
(Abschnitte zu Repo-Struktur und Rankmirrors eingefügt. In meinen Augen aktuell)
Zeile 1: Zeile 1:
{{outdated}}
{{outdated}}


Arch Linux hat als zentralen Bestandteil den '''Pacman'''-Paketmanager, der einfache Binärpakete mit einem einfach zu benutzenden System verbindet, was dem Benutzer erlaubt, eigene Pakete zu erstellen und zu verwalten, egal ob dies nun offizielle Arch-Pakete oder Benutzerpakete sind. Das Datenbank-System ermöglicht es außerdem den Benutzern, eigene Datenbanken, so genannte '''Repositories''' anzulegen, was Communitywachstum und Benutzerbeiträge fördert.
Der zentrale Paketmanager '''Pacman''' ist eine der grössten Stärken der ArchLinux-Distribution. Er verwaltet einfache Binärpakete im Format .pkg.tar.gz, die entweder aus offiziellen oder inoffiziellen Repositorien stammen, oder vom Benutzer selbst über das [[Arch Build System]] (ABS) erstellt wurden. Auch selbst kompilierte Pakete sollten immer über '''Pacman''' installiert werden, damit sie in der zentralen Datenbank erfasst werden.


Mit '''Pacman''' hält man das System aktuell, indem man die Paketlisten mit dem Hauptserver synchronisiert, wodurch es für den sicherheitsbewussten Admin ein Leichtes ist, auf dem neuesten Stand zu bleiben. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten (ähnlich Debians apt-get) herunterzuladen und zu installieren.
Mit '''Pacman''' hält man das System aktuell, indem man die Paketlisten mit einem Hauptserver synchronisiert. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten (ähnlich Debians apt-get) herunterzuladen, zu installieren oder zu aktualisieren.
Getreu dem [[KISS-Prinzip]] wurde '''Pacman''' als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen oder Wrapper wie [[yaourt]] zur Verfügung, die jedoch offiziell nicht unterstützt werden.  


=Installation/Abhängigkeiten=
'''Pacman''' und seine Abhängigkeiten sind bereits Bestandteil jeder Arch Linux-Installation. Um sich lästige Tipp-Arbeit zu ersparen, kann man das Paket [[Bash-Completion]] zusätzlich installieren.


 
=Anwendung=
=Benutzung=
'''Pacman''' ist ein All-In-One-Paketmanager. Er kann Pakete
'''Pacman''' ist ein All-In-One-Paketmanager. Er kann Pakete


* suchen,
* suchen,
* herunterladen,
* herunterladen,
* installieren und aktualisieren (upgraden) sowohl vom Server als auch von lokalen Datenbanken,
* installieren und aktualisieren, sowohl vom Server als auch von lokalen Datenbanken,
* entfernen.
* entfernen.


Zeile 41: Zeile 43:
  pacman -Qs paket
  pacman -Qs paket


* Manchmal gibt es mehrere Versionen eines Paketes in verschiedenen Repositories (z.B. extra und testing). Hier kann angegeben, welches installiert werden soll:
* Manchmal gibt es mehrere Versionen eines Paketes in verschiedenen Repositorien (z.B. extra und testing). Hier kann angegeben, welches installiert werden soll:


  pacman -S extra/paketname
  pacman -S extra/paketname
Zeile 75: Zeile 77:


Für eine detailliertere Ausführung der Parameter siehe '''pacman --help''' oder '''man pacman'''.
Für eine detailliertere Ausführung der Parameter siehe '''pacman --help''' oder '''man pacman'''.


=Konfiguration=
=Konfiguration=
'''Pacmans''' Einstellungen werden gespeichert in der Datei <code>/etc/pacman.conf</code>. Es gibt zwei Hauptbereiche in der Datei:
'''Pacmans''' Einstellungen werden gespeichert in der Datei <code>/etc/pacman.conf</code>. Es gibt zwei Hauptbereiche in der Datei:


==Allgemeine Einstellungen==
==Allgemeine Einstellungen==
Die allgemeinen Einstellungen finden sich in der [options]-Sektion
Die allgemeinen Einstellungen finden sich in der [options]-Sektion


Zeile 95: Zeile 101:
Dateien, die durch '''Noupgrade''' markiert sind, werden beim Update nicht überschrieben, '''Pacman''' legt stattdessen eine neue Datei im Format ''datei.pacnew'' an.
Dateien, die durch '''Noupgrade''' markiert sind, werden beim Update nicht überschrieben, '''Pacman''' legt stattdessen eine neue Datei im Format ''datei.pacnew'' an.


Pakete, die mit '''IgnorePkg''' markiert sind, werden vom Update völlig ausgenommen, falls also von ''paketxxx'' eine neue Version vorhanden wäre, würde das Paket im vorliegenden Beispiel nicht aktualisiert werden.
Pakete, die mit '''IgnorePkg''' markiert sind, werden vom Update völlig ausgenommen, falls also von ''paket xxx'' eine neue Version vorhanden wäre, würde das Paket im vorliegenden Beispiel nicht aktualisiert werden.


Falls jemand versucht, Pakete, die durch '''HoldPkg''' markiert sind, zu entfernen, muss er das bestätigen.
Falls jemand versucht, Pakete, die durch '''HoldPkg''' markiert sind, zu entfernen, muss er das bestätigen.


==Repositories==
==Repositorien und Spiegel-Server==
In dieser Sektion wird definiert, welche Repositories (Datenbanken) benutzt werden sollen. Sie können direkt hier definiert oder von einer anderen Datei inkludiert werden. Diese Vorgehensweise sorgt für mehr Übersicht, da die offiziellen Repositories viele Spiegel haben.
 
Offizielle Arch Linux-Pakete werden einem von fünf verschiedenen Repositorien zugeordnet:
*[current] enthält grundlegende Programme in der jeweils letzten stabilen Version. Schnappschüsse aus diesem Repo dienen als Installations-CD.
*[extra] enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version.
*[unstable] enthält experimentelle Software aus den Entwicklerzweigen - etwa in jenen Fällen, in denen das letzte offizielle Release eines Programms als hoffnunglos veraltet gilt. Die Verwendung dieser Pakete ist relativ sicher.
*[testing] enthält neue Versionen, die noch nicht hinreichend getestet wurden - mit anderen Worten: Dinge, die etwas kaputt machen könnten.
*[community] enthält eine Vielzahl zusätzlicher Programme, die ursprünglich nur als PKGBUILD im AUR zur Verfügung standen, nach einer Testphase jedoch als Binärpakete übernommen wurden. Dieses Repo wird den "Trusted User" betreut, nicht direkt von den Entwicklern.
 
Die zahlreichen, weltweit verstreuten Spiegel des Hauptservers ftp.archlinux.org folgen alle dieser Struktur. '''Pacman''' legt für jedes Repo eine Standard-Liste der zur Verfügung stehenden Spiegel an. Diese nach Ländern und Kontinenten geordneten Listen werden im Verzeichnis <code>/etc/pacman.d</code> gespeichert. Da der Zugang zum Hauptserver inzwischen beschränkt werden musste, sollte man unbedingt auf einen Spiegel zurückgreifen. Bevorzugte Spiegel-Server kann man in der Datei <code>/etc/pacman.conf</code> festlegen.


<pre>
===Den richtigen Spiegel finden===
[current]
 
# Add your preferred servers here, they will be used first
Spiegel-Server unterscheiden sich im Hinblick auf ihre Aktualität (durch unterschiedliche Synchronisation-Ratens mit dem Hauptserver), sowie im Hinblick auf ihre Zugänglichkeit vom eigenen Standort aus. Nutzer im deutschen Sprachraum verwenden meist die Spiegel von hosteurope, belnet, oder der TU Chemnitz.
Include = /etc/pacman.d/current
 
</pre>
Um die Reaktionszeiten der einzelnen Server zu testen, kann man das Python-Skript '''rankmirrors''' verwenden:
rankmirrors /etc/pacman.d/current
Wenn kein zwingender Grund vorliegt, die Reaktionszeit weit entfernter Server zu testen, kann man vorher die Spiegel auf allen Kontinenten ausser dem eigenen bedenkenlos aus den Standardlisten löschen. Der in <code>/etc/pacman.conf</code> noch enthaltene Hinweis auf den Vorläufer '''sortmirrors''' ist inzwischen überflüssig.
 
===Repos und Spiegel festlegen===
 
Die Konfiguration der zweiten Sektion von /etc/pacman.conf durch Auskommentierung oder zusätzliche Einträge ist weitgehend selbsterklärend:
[current]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/current
nutzt die Standard-Liste der Spiegel für das Repo [current].
[current]
# Add your preferred servers here, they will be used first
Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/current/os/i686
Include = /etc/pacman.d/current
legt einen bevorzugten Spiegel für [current] fest. Man sollte für alle Repos den gleichen Spiegel verwenden.
#[unstable]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/unstable
deaktiviert das Repo [unstable].


Durch den Befehl '''Include''' wird die Datei ''/etc/pacman.de/current'' eingebunden, welche wiederum auf verschieden Downloadmirrors der "current"-Datenbank verweist.
===Inoffizielle/lokale Repositorien verwenden===


<pre>
Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Für die KDE-Variante '''kdemod''' lautet der Eintrag etwa:
[repository-name]
[kdemod]
Server = ftp://server.net/repo
Server = http://kdemod.ath.cx/repo/current/i686
</pre>
Vor der Verwendung dieses Repos sollte man die entsprechenden [http://kdemod.ath.cx/installation.html Installationshinweise] beachten. Eine Liste mit weiteren inoffiziellen Repositorien findet sich im [http://wiki.archlinux.org/index.php/Unofficial_user_repositories engl. Wiki]. Siehe auch [[Eigene Repos]].


Über '''Server''' wird direkt ein Server angegeben, welcher einen anonymen Zugang ermöglichen muss, um als Repository genutzt werden zu können.
=Weitere Informationen=
... findet man natürlich in den '''man-pages''':
*man pacman
*man libdownload
*man libalpm
*man pacman.conf


Auch hierzu gibt es weitere Informationon unter '''man pacman'''.


{| style="border:1px solid #8888aa; background-color:#f7f8ff;padding:5px;font-size:95%;"
{| style="border:1px solid #8888aa; background-color:#f7f8ff;padding:5px;font-size:95%;"

Version vom 13. Juni 2007, 13:38 Uhr

Vorlage:Outdated

Der zentrale Paketmanager Pacman ist eine der grössten Stärken der ArchLinux-Distribution. Er verwaltet einfache Binärpakete im Format .pkg.tar.gz, die entweder aus offiziellen oder inoffiziellen Repositorien stammen, oder vom Benutzer selbst über das Arch Build System (ABS) erstellt wurden. Auch selbst kompilierte Pakete sollten immer über Pacman installiert werden, damit sie in der zentralen Datenbank erfasst werden.

Mit Pacman hält man das System aktuell, indem man die Paketlisten mit einem Hauptserver synchronisiert. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten (ähnlich Debians apt-get) herunterzuladen, zu installieren oder zu aktualisieren. Getreu dem KISS-Prinzip wurde Pacman als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen oder Wrapper wie yaourt zur Verfügung, die jedoch offiziell nicht unterstützt werden.

Installation/Abhängigkeiten

Pacman und seine Abhängigkeiten sind bereits Bestandteil jeder Arch Linux-Installation. Um sich lästige Tipp-Arbeit zu ersparen, kann man das Paket Bash-Completion zusätzlich installieren.

Anwendung

Pacman ist ein All-In-One-Paketmanager. Er kann Pakete

  • suchen,
  • herunterladen,
  • installieren und aktualisieren, sowohl vom Server als auch von lokalen Datenbanken,
  • entfernen.

Man muss nur die nötigen Parameter für die bestimmten Funktionen kennen. Hier sind die am meisten genutzten:

Bitte beachten, dass die Paketnamen alle mit Kleinbuchstaben geschrieben werden

  • Lokale Datenbanken aktualisieren:
pacman -Sy
  • Ein Paket installieren oder aktualisieren:
pacman -S paketname
  • Alle installierten Pakete aktualisieren:
pacman -Su

Es können auch mehr Parameter auf einmal verwendet werden:

  • Datenbank synchronisieren und Pakete updaten (der wohl wichtigste Befehl für Pacman: Führt ein Systemupdate aus!):
pacman -Syu
  • Mehr als ein Paket installieren:
pacman -S paket1 paket2
  • Um nach Paketen in den Datenbanklisten zu suchen, reicht auch ein Teil des Paketnamens:
pacman -Ss paket
  • Um nach installierten Paketen zu suchen:
pacman -Qs paket
  • Manchmal gibt es mehrere Versionen eines Paketes in verschiedenen Repositorien (z.B. extra und testing). Hier kann angegeben, welches installiert werden soll:
pacman -S extra/paketname
pacman -S testing/paketname
  • Ein Paket herunterladen, ohne es zu installieren:
pacman -Sw paketname
  • Ein Paket von einem lokalen Pfad installieren:
pacman -A /pfad/zu/paket/paketname-version.pkg.tar.gz
  • Paketinformationen anzeigen:
pacman -Si paket
pacman -Qi paket
  • Alle Dateien eines Pakets anzeigen:
pacman -Ql paket
  • Zu welchem Paket gehört diese Datei?
pacman -Qo /pfad/zu/einer/Datei
  • Paket enfernen:
pacman -R paketname
  • Ein Paket zusammen mit allen Abhängigkeiten, die nicht von anderen installierten Paketen gebraucht werden, entfernen:
pacman -Rs paketname
  • Pacmancache leeren (/var/cache/pacman/pkg):
pacman -Scc
  • Pacman optimieren
pacman-optimize

Für eine detailliertere Ausführung der Parameter siehe pacman --help oder man pacman.


Konfiguration

Pacmans Einstellungen werden gespeichert in der Datei /etc/pacman.conf. Es gibt zwei Hauptbereiche in der Datei:


Allgemeine Einstellungen

Die allgemeinen Einstellungen finden sich in der [options]-Sektion

Hier kann angegeben werden, welche Dateien nicht aktualisiert werden sollen. Das ist bei wichtigen Systemdateien nützlich. Die Syntax ist sehr einfach:

NoUpgrade   = etc/passwd etc/group etc/shadow etc/sudoers
NoUpgrade   = etc/fstab etc/raidtab etc/ld.so.conf
NoUpgrade   = etc/rc.conf etc/rc.local
NoUpgrade   = etc/modprobe.conf etc/modules.conf
NoUpgrade   = etc/lilo.conf boot/grub/menu.lst
IgnorePkg   = paketxxx
HoldPgk     = paketyyy

Dateien, die durch Noupgrade markiert sind, werden beim Update nicht überschrieben, Pacman legt stattdessen eine neue Datei im Format datei.pacnew an.

Pakete, die mit IgnorePkg markiert sind, werden vom Update völlig ausgenommen, falls also von paket xxx eine neue Version vorhanden wäre, würde das Paket im vorliegenden Beispiel nicht aktualisiert werden.

Falls jemand versucht, Pakete, die durch HoldPkg markiert sind, zu entfernen, muss er das bestätigen.

Repositorien und Spiegel-Server

Offizielle Arch Linux-Pakete werden einem von fünf verschiedenen Repositorien zugeordnet:

  • [current] enthält grundlegende Programme in der jeweils letzten stabilen Version. Schnappschüsse aus diesem Repo dienen als Installations-CD.
  • [extra] enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version.
  • [unstable] enthält experimentelle Software aus den Entwicklerzweigen - etwa in jenen Fällen, in denen das letzte offizielle Release eines Programms als hoffnunglos veraltet gilt. Die Verwendung dieser Pakete ist relativ sicher.
  • [testing] enthält neue Versionen, die noch nicht hinreichend getestet wurden - mit anderen Worten: Dinge, die etwas kaputt machen könnten.
  • [community] enthält eine Vielzahl zusätzlicher Programme, die ursprünglich nur als PKGBUILD im AUR zur Verfügung standen, nach einer Testphase jedoch als Binärpakete übernommen wurden. Dieses Repo wird den "Trusted User" betreut, nicht direkt von den Entwicklern.

Die zahlreichen, weltweit verstreuten Spiegel des Hauptservers ftp.archlinux.org folgen alle dieser Struktur. Pacman legt für jedes Repo eine Standard-Liste der zur Verfügung stehenden Spiegel an. Diese nach Ländern und Kontinenten geordneten Listen werden im Verzeichnis /etc/pacman.d gespeichert. Da der Zugang zum Hauptserver inzwischen beschränkt werden musste, sollte man unbedingt auf einen Spiegel zurückgreifen. Bevorzugte Spiegel-Server kann man in der Datei /etc/pacman.conf festlegen.

Den richtigen Spiegel finden

Spiegel-Server unterscheiden sich im Hinblick auf ihre Aktualität (durch unterschiedliche Synchronisation-Ratens mit dem Hauptserver), sowie im Hinblick auf ihre Zugänglichkeit vom eigenen Standort aus. Nutzer im deutschen Sprachraum verwenden meist die Spiegel von hosteurope, belnet, oder der TU Chemnitz.

Um die Reaktionszeiten der einzelnen Server zu testen, kann man das Python-Skript rankmirrors verwenden:

rankmirrors /etc/pacman.d/current

Wenn kein zwingender Grund vorliegt, die Reaktionszeit weit entfernter Server zu testen, kann man vorher die Spiegel auf allen Kontinenten ausser dem eigenen bedenkenlos aus den Standardlisten löschen. Der in /etc/pacman.conf noch enthaltene Hinweis auf den Vorläufer sortmirrors ist inzwischen überflüssig.

Repos und Spiegel festlegen

Die Konfiguration der zweiten Sektion von /etc/pacman.conf durch Auskommentierung oder zusätzliche Einträge ist weitgehend selbsterklärend:

[current]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/current

nutzt die Standard-Liste der Spiegel für das Repo [current].

[current]
# Add your preferred servers here, they will be used first
Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/current/os/i686
Include = /etc/pacman.d/current

legt einen bevorzugten Spiegel für [current] fest. Man sollte für alle Repos den gleichen Spiegel verwenden.

#[unstable]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/unstable

deaktiviert das Repo [unstable].

Inoffizielle/lokale Repositorien verwenden

Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Für die KDE-Variante kdemod lautet der Eintrag etwa:

[kdemod]
Server = http://kdemod.ath.cx/repo/current/i686

Vor der Verwendung dieses Repos sollte man die entsprechenden Installationshinweise beachten. Eine Liste mit weiteren inoffiziellen Repositorien findet sich im engl. Wiki. Siehe auch Eigene Repos.

Weitere Informationen

... findet man natürlich in den man-pages:

  • man pacman
  • man libdownload
  • man libalpm
  • man pacman.conf


Retrieved from "http://wiki.archlinux.org/index.php/Pacman_(Deutsch)" Published under GNU Free Documentation License 1.2.