Pacman: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Werner (Diskussion | Beiträge)
K inuse-Markierung gesetzt
Werner (Diskussion | Beiträge)
Umstrukturierung – Fortsetzung
Zeile 1: Zeile 1:
{{inuse|[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]])}}
{{inuse|[[Benutzer:Werner|Werner]] ([[Benutzer Diskussion:Werner|Diskussion]])}}


Der zentrale Paketmanager '''Pacman''' ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format {{ic|.pkg.tar.xz}} (bzw. {{ic|.pkg.tar.gz}} bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositorys 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.
Der zentrale Paketmanager ''Pacman'' ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format {{ic|.pkg.tar.xz}} (bzw. {{ic|.pkg.tar.gz}} bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositorys 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.


Mittels '''Pacman''' wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem [[KISS-Prinzip]] wurde '''Pacman''' als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden.  
Mittels ''Pacman'' wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem [[KISS-Prinzip]] wurde ''Pacman'' als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden.  


== Installation ==
== Installation ==
'''Pacman''' ist bereits Bestandteil jeder Arch Linux-Installation.
''Pacman'' ist bereits Bestandteil jeder Arch Linux-Installation.
 
== Die wichtigsten Pacman-Befehle ==
Für neue Arch Linux-AnwenderInnen seien zunächst die wichtigsten pacman-Befehle angeführt.


==Die wichtigsten pacman Befehle==
Für den neuen Arch Linux Benutzer sind hier die wichtigsten pacman Befehle aufgelistet.<br>
Bitte beachte, dass die Paketnamen immer klein geschrieben werden.
{|border="1" style="width:100%"
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|-
|pacman -Syu
|Führt eine komplette System-Aktualisierung aus.
|-
|pacman -S [paket]
|Installiert ein Paket.
|-
|pacman -R [paket]
|Deinstalliert ein Paket.
|-
|-
|pacman -U [pfad/paket]
|pacman -Syu
|Downgrade eines Paketes. Für den seltenen Fall, dass die aktuelle Paketversion fehlerhaft ist, kann so eine ältere Paketversion aus dem pacman cache reinstalliert werden.
|Führt eine komplette System-Aktualisierung aus
|-
|pacman -S ''<Paket>''
|Installiert ein Paket
|-
|pacman -R ''<Paket>''
|Deinstalliert ein Paket
|-
|pacman -U ''<Paket-Dateiname>''
|Installation eines Paketes aus einer lokalen Datei (z.B. für ein Downgrade oder zur Installation selbst gebauter Pakete)
|}
|}
Im Grunde genügen die ersten drei Befehle um das System wunschgemäß einzurichten und es über Jahre hinweg aktuell zu halten.
Diese Befehle sind der Grundstock, um ein Arch-System einrichten und auf aktuellem Stand halten zu können.


== Die Pacmansyntax ==
== Die Pacman-Syntax ==
Der Optionsaufruf beginnt immer mit einem großen Buchstaben.
Der Aufruf der Optionen wird mit einem Minuszeichen eingeleitet und beginnt immer mit einem Großbuchstaben.


*-S (Sync) - Bezieht sich auf die Synchronisation der Paketdatenbank des lokalen Rechners mit der Datenbank der Arch Linux  Repositorien core, extra und community sowie der entsprechenden testing Zweige.
*'''S''' – Synchronisation der lokalen Paketdatenbank mit den Repositorien, welche in der Datei {{ic|/etc/pacman.conf}} aktiviert sind (''Sync'')


*-Q (Querry) - Bezieht sich immer auf die lokale Paketdatenbank des Systems.
*'''Q''' – Bezieht sich immer auf die lokale Paketdatenbank des Systems (''Query'')


*-R (Remove) - Dient zum Entfernen von installierten Paketen.
*'''R''' – Dient zum Entfernen von installierten Paketen (''Remove'')


*-D
*'''D''' – Bearbeitung der lokalen Paketdatenbank (''Database'')


*-U - Installiert Pakete aus einem lokalen Verzeichnis.
*'''U''' – Installiert Pakete aus einem lokalen Verzeichnis (''Upgrade'')


*-F (File) - Sucht das passende Paket von einer Datei.
*'''F''' – Sucht das Paket, welches eine Datei beinhaltet  (''File'')
 
Die vorangestellte Hauptoption kann mit weiteren Optionen in Kleinbuchstaben erweitert und spezifiziert werden, beispielsweise:
*'''s''' – Bewirkt eine Suche. Bei {{ic|-Ss}} wird ein Paketname in der Paketdatenbank gesucht, Bei {{ic|-Rs}} werden die jeweils abhängigen Pakete gesucht und mit entfernt
*'''y''' – Bewirkt eine Aktualisierung der Paketdatenbank (falls es tatsächlich Änderungen gibt)
*'''yy''' – Erzwingt die Aktualisierung der Paketdatenbank auch dann, wenn keine Updates vorhanden sind
 
=== Synchronisation und Installation von Paketen ===
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|pacman -Syu
|Führt eine komplette System-Aktualisierung aus
|-
|pacman -S ''<Paket1 Paket2>''
|Eines oder mehrere Pakete installieren oder aktualisieren
|-
|pacman -Sy
|Lokale Datenbank aktualisieren
|-
|pacman -Su
|Alle installierten Pakete aktualisieren
|-
|pacman -Syy
|Lokale Datenbank komplett neu aufbauen und aktualisieren
|-
|pacman -Syuu
|Alle installierten Pakete downgraden (von Testing nach Core/Extra oder von Community-Testing nach Community)
|-
|pacman -S testing/''<Paket>''
|Paket aus einem spezifischen Repo (hier: testing) installieren
|-
|pacman -Sw ''<Paket>''
|Paket herunterladen, ohne es zu installieren
|-
|}


Dem großen Buchstaben kann ein oder mehrere kleine Buchstaben folgen. Z.B.:
=== Informationen zu installierbaren Paketen ===
*s Bewirkt eine Suche. Bei -Ss wird ein Paketname in der Paketdatenbank gesucht, Bei -Rs werden die jeweils abhängigen Pakete gesucht und mit entfernt.
{|border="1" style="width:100%"
*y Bewirkt eine Aktualisierung der Paketdatenbank (falls es tatsächlich Änderungen gibt).
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
*yy Erzwingt die Aktualisierung  der Paketdatenbank auch ohne dass es neue Pakete geben muss.
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|pacman -Ss ''<Paket>''
|Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung
|-
|pacman -Sg
|Sucht nach installierbaren Paketgruppen
|-
|pacman -Sg ''<Paketgruppe>''
|Zeigt den Inhalt einer Paketgruppe
|-
|pacman -Si ''<Paket>''
|Informationen zu (noch) nicht installierten Paketen anzeigen
|-
|pacman -U ''<Paket-Dateiname>''
|Ein lokales Paket installieren (nicht aus einem Repo)
|-
|pacman -Scc
|Leert den lokalen Speicher von ''Pacman'' (''/var/cache/pacman/pk''g)
|-
|pacman -Sc
|Löscht nicht mehr benötigte und veraltete Pakete aus ''/var/cache/pacman/pkg'' und unbenutzte Repositorien aus dem Verzeichnis ''/var/lib/pacman''
|-
|}


   
=== Verwaltung lokaler Pakete ===
{|border="1" style="width:100%"
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|-
|-
|''pacman -Syu''
|pacman -U ''<Paket-Dateiname>''
|Führt eine komplette System-Aktualisierung aus
|Ein lokales Paket installieren (nicht aus einem Repo)  
|-
|-
|''pacman -S [paket1] [paket2]''
|pacman -D --asexplicit ''<Paket>''
|Eines oder mehrere Pakete installieren oder aktualisieren
|Status eines installierten Paketes auf „Ausdrücklich installiert“ setzen
|-
|-
|''pacman -Sy''
|pacman -D ---asdeps ''<Paket>''
|Lokale Datenbank aktualisieren
|Status eines installierten Paketes auf „Installiert als Abhängigkeit“ setzen
|-
|-
|''pacman -Su''
|pacman -Scc
|Alle installierten Pakete aktualisieren
|Leert den lokalen Speicher von ''Pacman'' (''/var/cache/pacman/pkg'')
|-
|-
|''pacman -Syy''
|pacman -Sc
|Lokale Datenbank komplett neu aufbauen und aktualisieren
|Löscht nicht mehr benötigte und veraltete Pakete aus ''/var/cache/pacman/pkg'' und unbenutzte Repositorien aus dem Verzeichnis ''/var/lib/pacman''
|-
|-
|''pacman -Syuu''
|}
|Alle installierten Pakete downgraden (von Testing nach Core/Extra oder von Community-Testing nach Community)
|-
|''pacman -Ss [paket]''
|Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung
|-
|''pacman -Sg''
|Sucht nach installierbaren Paketgruppen
|-
|''pacman -Sg [paketgruppe]''
|Zeigt den Inhalt einer Paketgruppe
|-
|''pacman -Q''
|Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an
|-
|''pacman -Qs [paket]''
|Sucht nach bereits installierten Paketen
|-
|''pacman -R [paket]
|Paket entfernen
|-
|''pacman -Rd [paket]
|Paket entfernen '''ohne''' auf Abhängigkeiten zu achten. ACHTUNG: Das Paket wird auch entfernt, wenn es noch von anderen Paketen gebraucht wird!
|-
|''pacman -Rdd [paket]
|Paket entfernen, wie oben, jedoch werden alle Abhängigkeitsprüfungen ausgeschaltet
|-
|''pacman -Rss [paket]
|Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen
|-
|''pacman -D [paket]''
|Status eines installierten Programms ändern, ohne es "drüber zu installieren"
|-
|''pacman -Qi [paket]''
|Informationen zu bereits installiertem Paket anzeigen
|-
|''pacman -Si [paket]
|Informationen zu (noch) nicht installierten Paketen anzeigen
|-
|''pacman -Sw [paket]
|Paket herunterladen, ohne es zu installieren
|-
|''pacman -S testing/[paket]
|Paket aus einem spezifischen Repo (hier: testing) installieren
|-
|''pacman -U [paket-datei]
|Ein lokales Paket installieren (nicht aus einem Repo)
|-
  |''pacman -Qdt''
|Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden
|-
|''pacman -Qet''
|Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden
|-
|''pacman -Scc''
|Leert den lokalen Speicher von '''Pacman''' (/var/cache/pacman/pkg)
|-
|''pacman -Sc''
|Löscht nicht mehr benötigte und veraltete Pakete aus (/var/cache/pacman/pkg) und unbenutzte Repositorien aus /var/lib/pacman/.
|-
|''pacman -Ql [paket]''
|Zeigt alle installierten Dateien des Pakets im System
|-
|''pacman -Qm''
|Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden
|-
|''pacman -Qo [/pfad/zur/datei]''
|Zeigt das Paket an, welches die gesuchte Datei enthält
|-
|''pacman -Qu''
|Zeigt an, für welche installierten Pakete Updates verfügbar sind
|-
|''pacman -Qk''
|Überprüft alle Pakete auf fehlende Dateien. Einfachhalber pacman -Qk mit grep warning benutzen
|-
|}


=== Pakete entfernen:  - R (Remove)===
=== Pakete entfernen ===
{|border="1" style="width:100%"
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|-
|-
|pacman -R [paketname]
|pacman -R ''<Paketname>''
|Deinstallation eines oder mehrerer Pakete (aus AUR oder Repos)
|Deinstallation eines oder mehrerer Pakete (aus AUR oder Repos)
|-
|-
|pacman -Rs [paketname]
|pacman -Rs ''<Paketname>''
|Wie oben, zusätzlich werden alle abhängige Pakete gesucht und mit entfernt, falls diese nicht von einer anderen Anwendung gebraucht werden.
|Wie oben, zusätzlich werden alle abhängige Pakete gesucht und mit entfernt, falls diese nicht von einer anderen Anwendung gebraucht werden
|-
|pacman -Rsc ''<Paketname>''
|Wie oben. Abhängigkeiten werden kaskadierend entfernt
|-
|-
|pacman -Rsc [paketname]
|pacman -Rscn ''<Paketname>''
|Wie oben. Abhängigkeiten werden kaskadierend entfernt.
|Wie oben. Die Konfigurationsdateien der Anwendung werden mit entfernt
|-
|pacman -Rdd ''<Paket>''
|Deinstallation eines Paketes ohne Prüfung bestehender Paketabhängigkeiten. <font color="red">Vorsicht</font>, hierdurch kann die Konsistenz und Funktionstüchtigkeit der Systeminstallation beeinträchtigt werden!
|-
|pacman -Rss ''<Paket>''
|Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen
|-
|-
|pacman -Rscn [paketname]
|Wie oben. Die Konfigurationsdateien der Anwendung werden mit  entfernt.
|}
|}


=== Dateien suchen: - F (File)===
=== Abfragen der lokalen Paketdatenbank ===
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
|-
|pacman -Q
|Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an
|-
|pacman -Qi ''<Paket>''
|Informationen zu bereits installiertem Paket anzeigen
|-
|pacman -Qs ''<Paket>''
|Sucht nach bereits installierten Paketen
|-
|pacman -Qdt
|Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden
|-
|pacman -Qet
|Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden
|-
|pacman -Ql ''<Paket>''
|Zeigt alle installierten Dateien des Pakets im System
|-
|pacman -Qm
|Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden
|-
|pacman -Qo ''<Pfad zur Datei>''
|Zeigt das Paket an, welches die gesuchte Datei enthält
|-
|pacman -Sy && pacman -Qu
|Aktualisiert die lokale Paketdatenbank und zeigt verfügbare Updates an
|-
|pacman -Qk | grep warning
|Überprüft alle Pakete auf fehlende Dateien und schränkt die Ausgabe auf Problempakete ein
|-
|}


=== Paketdateien suchen ===
{|border="1" style="width:100%"
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''  
|-
|-
|pacman -Fy
|pacman -Fy
|Lokale Datei-Datenbank aktualisieren
|Lokale Datei-Datenbank aktualisieren
|-
|-
|pacman -Fs [datei]
|pacman -Fs ''<Datei>''
|Paket suchen das die Datei enthält
|Paket suchen das die Datei enthält
|-
|-
|pacman -Fsx [regex]
|pacman -Fsx ''<Regex>''
|Wie -Fs, aber Suche mit regulären Ausdrücken. Hilfreich falls der vollständige Dateiname unbekannt ist.
|Wie -Fs, aber Suche mit regulären Ausdrücken (hilfreich, falls der vollständige Dateiname unbekannt ist)
|-
|-
|pacman -Fl [paket]
|pacman -Fl ''<Paket>''
|Alle Dateien des Paketes anzeigen.
|Alle Dateien des Paketes anzeigen
|-
|-
|pacman -Fo [/pfad/zur/datei]
|pacman -Fo ''<Pfad zur Datei>''
|Paket suchen mit dem Pfad einer Datei
|Paket suchen mit dem Pfad einer Datei
|-
|-
|}
|}


 
Es können auch mehrere Befehlsaufrufe kombiniert werden; hier z.B. zur Deinstallation aller verwaisten Pakete:
Es können auch mehrere Befehle kombiniert werden. Z.B. alle verwaisten Pakete deinstallieren:
  pacman -Rsn $(pacman -Qdtq)
  pacman -Rsn $(pacman -Qdtq)


=== Paccache ===
''Paccache'' ist ein Werkzeug zur Bereinigung des Pacman-Cache {{ic|/var/cache/pacman/pkg}}. Die archivierten Pakete können mit ''Paccache'' differenzierter als mit {{ic|pacman -Scc}} bereinigt werden. Eine Übersicht der Möglichkeiten erhält man mit dem Befehl {{ic|paccache -h}}.


=== paccache ===
=== Checkupdates ===
Paccache ist ein Werkzeug für die Pflege des pacman-cache. Es bietet vielfältige Möglichkeiten
Mit ''Checkupdates'' kann man überprüfen ob Aktualisierungen für installierte Pakete verfügbar sind, ohne eine komplette System-Aktualisierung ({{ic|pacman -Syu}}) durchzuführen.
die Kontrolle darüber zu behalten was und wie viel aus jedwedem Pacman Paket-Tarballarchive  enthaltenden
Verzeichnis gelöscht wird. Es stellt eine besser dosierbare Alternative zu {{ic|pacman -Scc}} dar.
Eine Anleitung zur Verwendung von paccache ist verfügbar über
paccache -h
 
===checkupdates===
Mit checkupdates kann man überprüfen ob Aktualisierungen für installierte Pakete verfügbar sind, ohne eine komplette System-Aktualisierung (pacman -Syu) durchzuführen.
  checkupdates
  checkupdates


===bacman===
=== Bacman ===
Mit Hilfe der Paketdatenbank erstellt bacman aus den installierten Dateien eines Paketes wieder ein Paketarchiv {{ic|*.pkg.tar.zx}}.
Mit Hilfe der Paketdatenbank erstellt bacman aus den installierten Dateien eines Paketes wieder ein Paketarchiv {{ic|*.pkg.tar.zx}}.
   bacman foobar
   bacman foobar


== Konfiguration ==
== Konfiguration ==
Die Einstellungen zu '''Pacman''' werden in der Datei {{ic|/etc/pacman.conf}} gespeichert.
Die Einstellungen für Pacman sind in der Datei {{ic|/etc/pacman.conf}} gespeichert und können dort angepasst werden.


=== Allgemeine Einstellungen ===
=== Allgemeine Einstellungen ===
Zeile 229: Zeile 250:
  #NoUpgrade  =
  #NoUpgrade  =
  #NoExtract  =
  #NoExtract  =
Pakete, die durch '''HoldPkg''' markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.
* Pakete, die durch {{ic|HoldPkg}} markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.
 
* Pakete, die mit {{ic|IgnorePkg}} markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.
Pakete, die mit '''IgnorePkg''' markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.
* Dateien, die durch {{ic|NoUpgrade}} markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format {{ic|datei.pacnew}} an.
 
* Dateien, die durch {{ic|NoExtract}} markiert sind, werden bei der Installation oder einem Update nicht installiert.
Dateien, die durch '''NoUpgrade''' markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format {{ic|datei.pacnew}} an.
 
Dateien, die durch '''NoExtract''' markiert sind, werden bei der Installation oder einem Update nicht installiert.


Seit der Version 4.1 unterstützt Pacman auch farbige Ausgaben. Dazu muss die Option {{ic|#Color}} auskommentiert werden.
Seit der Version 4.1 unterstützt Pacman auch farbige Ausgaben. Dazu muss die Option {{ic|#Color}} auskommentiert werden.


=== Repositories und Spiegel-Server ===
=== Repositorien und Spiegel-Server ===
Offizielle Arch Linux-Pakete werden einem von sechs verschiedenen Repositorys zugeordnet:
Offizielle Arch Linux-Pakete werden einem von sechs verschiedenen Repositorys zugeordnet:


*[core] enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.
* {{ic|[core]}} enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.
*[extra] enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von [[KDE]] und [[GNOME]].
* {{ic|[extra]}} enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von [[KDE]] und [[GNOME]].
*[testing] enthält neue Versionen, die noch nicht hinreichend getestet wurden - mit anderen Worten: Dinge, die etwas kaputt machen könnten.
* {{ic|[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 von den "Trusted Users" betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.
* {{ic|[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 von den "Trusted Users" betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.
*[multilib] enthält 32-Bit Anwendungen, die auf x86_64-Systemen installiert werden sollen.
* {{ic|[multilib]}} enthält 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.
*[multilib-testing] enthält noch nicht hinreichend getestete 32-Bit Anwendungen, die auf x86_64-Systemen installiert werden sollen.
* {{ic|[multilib-testing]}} enthält noch nicht hinreichend getestete 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.
 
==== Repos festlegen ====
==== Repos festlegen ====
Die Konfiguration der {{ic|/etc/pacman.conf}} durch Auskommentierung oder zusätzliche Einträge ist weitgehend selbsterklärend.
Die Konfiguration der {{ic|/etc/pacman.conf}} durch Auskommentierung oder zusätzliche Einträge ist weitgehend selbsterklärend.
Zeile 255: Zeile 274:


==== Den richtigen Spiegel-Server finden ====
==== Den richtigen Spiegel-Server finden ====
Spiegel-Server unterscheiden sich durch ihre Aktualität (Siehe unterschiedliche Synchronisations-Raten mit dem Hauptserver), sowie durch ihre Zugänglichkeit vom eigenen Standort aus.
Spiegel-Server unterscheiden sich durch ihre Aktualität (siehe unterschiedliche Synchronisations-Raten mit dem Hauptserver), sowie durch ihre Zugänglichkeit vom eigenen Standort aus.


* Es werden nur noch Server mit dem HTTP Protokoll unterstützt.
* Es werden nur noch Server mit HTTP(S)-Protokoll unterstützt.
* Die Wahl der Architektur wird durch entsprechende Variablen gesteuert.
* Die Wahl der Architektur wird durch entsprechende Variablen ({{ic|$repo}} und {{ic|$arch}}) gesteuert. Ein Ausschnitt als Beispiel:
 
{{bc|<nowiki>
## Germany
## Germany
#Server = http://1favre.de/arch/$repo/os/$arch
#Server = http://mirror.23media.de/archlinux/$repo/os/$arch
#Server = http://archlinux.limun.org/$repo/os/$arch
#Server = https://mirror.bethselamin.de/$repo/os/$arch
#Server = http://artfiles.org/archlinux.org/$repo/os/$arch
#Server = http://ftp.fau.de/archlinux/$repo/os/$arch
#Server = http://mirror.devnu11.net/archlinux/$repo/os/$arch
#Server = https://ftp.fau.de/archlinux/$repo/os/$arch
#Server = http://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/$arch
#Server = http://mirror.gnomus.de/$repo/os/$arch
#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch
#Server = http://ftp.gwdg.de/pub/linux/archlinux/$repo/os/$arch
#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch
#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch
#Server = http://mirror.de.leaseweb.net/archlinux/$repo/os/$arch
#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch
#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch
</nowiki>}}
#Server = http://mirrors.mycraft.eu/archlinux/$repo/os/$arch
#Server = http://mirrors.n-ix.net/archlinux/$repo/os/$arch
#Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
#Server = http://ftp.spline.inf.fu-berlin.de/mirrors/archlinux/$repo/os/$arch
#Server = http://ftp.tu-chemnitz.de/pub/linux/archlinux/$repo/os/$arch
#Server = http://ftp.tuxdroid.org/archlinux/$repo/os/$arch
#Server = http://ftp.uni-bayreuth.de/linux/archlinux/$repo/os/$arch
#Server = http://ftp.uni-kl.de/pub/linux/archlinux/$repo/os/$arch


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 in der Datei {{ic|/etc/pacman.d/mirrorlist}} gespeichert. Da der Zugang zum Hauptserver inzwischen beschränkt werden musste, sollte man unbedingt auf einen Spiegel zurückgreifen.
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 in der Datei {{ic|/etc/pacman.d/mirrorlist}} gespeichert. Da der Zugang zum Hauptserver inzwischen beschränkt werden musste, sollte man unbedingt auf einen Spiegel zurückgreifen.


Um die Antwortzeiten der einzelnen Server zu testen, kann man das Skript '''rankmirrors''' verwenden:
Um die Antwortzeiten der einzelnen Server zu testen, kann man das Skript ''Rankmirrors'' verwenden:
  rankmirrors -n 0 -t -v /etc/pacman.d/mirrorlist
  rankmirrors -n 0 -t -v /etc/pacman.d/mirrorlist


Zeile 288: Zeile 299:
Eine aktuelle Server-Liste kann man sich mit dem [https://www.archlinux.org/mirrorlist/ Pacman Mirrorlist Generator] erstellen lassen.
Eine aktuelle Server-Liste kann man sich mit dem [https://www.archlinux.org/mirrorlist/ Pacman Mirrorlist Generator] erstellen lassen.


==== Eigene mirrorlist ====
==== Eigene Mirrorlist ====
Um sich das immer wiederkehrende Editieren der /etc/pacman.d/mirrorlist zu ersparen, wenn diese durch ein pacman-mirrorlist Update erneuert wird (bzw. eine mirrorlist.pacnew erstellt wird) kannst du folgendes tun:
Um sich das immer wiederkehrende Editieren der /etc/pacman.d/mirrorlist zu ersparen, wenn diese durch ein pacman-mirrorlist Update erneuert wird (bzw. eine mirrorlist.pacnew erstellt wird) kannst du folgendes tun:
Erstelle dir eine Datei /etc/pacman.d/mymirrors und füge darin deine bevorzugten Spiegelserver ein. Dann ergänzt du die /etc/pacman.conf für die einzelnen Repos so:
Erstelle dir eine Datei /etc/pacman.d/mymirrors und füge darin deine bevorzugten Spiegelserver ein. Dann ergänzt du die /etc/pacman.conf für die einzelnen Repos so:
  [core]
  [core]
  # Add your preferred servers here, they will be used first
  # Add your preferred servers here, they will be used first
Zeile 312: Zeile 322:
Bei den Standard Einstellungen von Pacman kann es vorkommen das bei zu langsamer Internetverbindung, es zu lange dauert um mit einem Mirror sich zu verbinden.
Bei den Standard Einstellungen von Pacman kann es vorkommen das bei zu langsamer Internetverbindung, es zu lange dauert um mit einem Mirror sich zu verbinden.
Um dies zu lösen kann man den schnellsten [https://wiki.archlinux.de/title/Pacman#Den_richtigen_Spiegel-Server_finden Mirror suchen]
Um dies zu lösen kann man den schnellsten [https://wiki.archlinux.de/title/Pacman#Den_richtigen_Spiegel-Server_finden Mirror suchen]
und wenn dies nicht hilft einen Alternativen Downloader für Pacman verwenden:
und wenn dies nicht hilft einen Alternativen Downloader für ''Pacman'' verwenden:
Dazu muss man die Datei {{ic|/etc/pacman.conf}} bearbeiten.
Dazu muss man die Datei {{ic|/etc/pacman.conf}} bearbeiten und einen der beiden Einträge durch Entfernen der Raute {{ic|#}} einkommentieren:
In dieser entweder bei
  #XferCommand = /usr/bin/{{Paket|curl}} -C - -f %u > %o
  #XferCommand = /usr/bin/{{Paket|curl}} -C - -f %u > %o
oder
  #XferCommand = /usr/bin/{{Paket|wget}} --passive-ftp -c -O %o %u
  #XferCommand = /usr/bin/{{Paket|wget}} --passive-ftp -c -O %o %u
das {{ic|#}} entfernen.


=== Pacman aus Versehen deinstalliert ===
=== Pacman aus Versehen deinstalliert ===
Wie kann pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?
Wie kann ''Pacman'' wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?
Manuelle Variante (Ausführen als root):


<span style="font-weight:bold;font-size:1.05em"> Manuelle Variante</span>
  cd /
  cd /
  bsdtar -x -f /var/cache/pacman/pkg/pacman-*.pkg.tar.xz
  bsdtar -x -f /var/cache/pacman/pkg/pacman-*.pkg.tar.xz


Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist.
Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist.
Danach pacman mittels des "neuen" pacman wieder installieren, damit der Datenbankeintrag für pacman selbst wieder angelegt wird.
Danach ''Pacman'' mittels des „neuen“ ''Pacman'' wieder installieren, damit der Datenbankeintrag für ''Pacman'' selbst wieder angelegt wird.
 
  pacman -S pacman
  pacman -S pacman


Per Installationsmedium:
<span style="font-weight:bold;font-size:1.05em"> Per Installationsmedium</span>
 
* Vom Installationsmedium booten
 
loadkeys de
 
* Partitionen einhängen:
Root-Partition nach /mnt einhängen (Verzeichnis /etc sollte darin enthalten sein)
Für weitere Partitionen unterhalb /mnt Ordner anlegen und entsprechend einhängen (bspw. /mnt/usr)


Vom Installationsmedium booten und die deutsche Tastaturbelegung {{ic|loadkeys de}} wählen. Anschließend Partitionen einhängen:
Die Root-Partition nach {{ic|/mnt}} einhängen (Verzeichnis {{ic|/etc}} sollte darin enthalten sein)
Für weitere Partitionen unterhalb {{ic|/mnt}} Ordner anlegen und entsprechend einhängen (bspw. {{ic|/mnt/usr}}). Eine Neuinstallation von ''Pacman'' kann nun mit diesem Befehl erfolgen:
  pacstrap /mnt pacman
  pacstrap /mnt pacman
installiert pacman neu.


== Weitere Informationen ==
== Weitere Informationen ==

Version vom 18. Februar 2018, 18:58 Uhr

„Pacman“ wurde von Werner (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Werner (Diskussion) bitte, bevor du den Artikel bearbeitest.


Der zentrale Paketmanager Pacman ist eine der größten Stärken von Arch Linux. Er verwaltet einfache Binärpakete im Format .pkg.tar.xz (bzw. .pkg.tar.gz bei älteren Paketen), die entweder aus offiziellen oder inoffiziellen Repositorys 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.

Mittels Pacman wird das System aktuell gehalten, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete durch einfache Befehle komplett mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren. Getreu dem KISS-Prinzip wurde Pacman als einfaches Kommandozeilen-Werkzeug entwickelt. Inzwischen stehen auch grafische Benutzeroberflächen zur Verfügung, die jedoch offiziell nicht unterstützt werden.

Installation

Pacman ist bereits Bestandteil jeder Arch Linux-Installation.

Die wichtigsten Pacman-Befehle

Für neue Arch Linux-AnwenderInnen seien zunächst die wichtigsten pacman-Befehle angeführt.

Befehl Beschreibung
pacman -Syu Führt eine komplette System-Aktualisierung aus
pacman -S <Paket> Installiert ein Paket
pacman -R <Paket> Deinstalliert ein Paket
pacman -U <Paket-Dateiname> Installation eines Paketes aus einer lokalen Datei (z.B. für ein Downgrade oder zur Installation selbst gebauter Pakete)

Diese Befehle sind der Grundstock, um ein Arch-System einrichten und auf aktuellem Stand halten zu können.

Die Pacman-Syntax

Der Aufruf der Optionen wird mit einem Minuszeichen eingeleitet und beginnt immer mit einem Großbuchstaben.

  • S – Synchronisation der lokalen Paketdatenbank mit den Repositorien, welche in der Datei /etc/pacman.conf aktiviert sind (Sync)
  • Q – Bezieht sich immer auf die lokale Paketdatenbank des Systems (Query)
  • R – Dient zum Entfernen von installierten Paketen (Remove)
  • D – Bearbeitung der lokalen Paketdatenbank (Database)
  • U – Installiert Pakete aus einem lokalen Verzeichnis (Upgrade)
  • F – Sucht das Paket, welches eine Datei beinhaltet (File)

Die vorangestellte Hauptoption kann mit weiteren Optionen in Kleinbuchstaben erweitert und spezifiziert werden, beispielsweise:

  • s – Bewirkt eine Suche. Bei -Ss wird ein Paketname in der Paketdatenbank gesucht, Bei -Rs werden die jeweils abhängigen Pakete gesucht und mit entfernt
  • y – Bewirkt eine Aktualisierung der Paketdatenbank (falls es tatsächlich Änderungen gibt)
  • yy – Erzwingt die Aktualisierung der Paketdatenbank auch dann, wenn keine Updates vorhanden sind

Synchronisation und Installation von Paketen

Befehl Beschreibung
pacman -Syu Führt eine komplette System-Aktualisierung aus
pacman -S <Paket1 Paket2> Eines oder mehrere Pakete installieren oder aktualisieren
pacman -Sy Lokale Datenbank aktualisieren
pacman -Su Alle installierten Pakete aktualisieren
pacman -Syy Lokale Datenbank komplett neu aufbauen und aktualisieren
pacman -Syuu Alle installierten Pakete downgraden (von Testing nach Core/Extra oder von Community-Testing nach Community)
pacman -S testing/<Paket> Paket aus einem spezifischen Repo (hier: testing) installieren
pacman -Sw <Paket> Paket herunterladen, ohne es zu installieren

Informationen zu installierbaren Paketen

Befehl Beschreibung
pacman -Ss <Paket> Sucht nach installierbaren Paketen. Es reicht ein Teil des Paketnamens oder der Paketbeschreibung
pacman -Sg Sucht nach installierbaren Paketgruppen
pacman -Sg <Paketgruppe> Zeigt den Inhalt einer Paketgruppe
pacman -Si <Paket> Informationen zu (noch) nicht installierten Paketen anzeigen
pacman -U <Paket-Dateiname> Ein lokales Paket installieren (nicht aus einem Repo)
pacman -Scc Leert den lokalen Speicher von Pacman (/var/cache/pacman/pkg)
pacman -Sc Löscht nicht mehr benötigte und veraltete Pakete aus /var/cache/pacman/pkg und unbenutzte Repositorien aus dem Verzeichnis /var/lib/pacman

Verwaltung lokaler Pakete

Befehl Beschreibung
pacman -U <Paket-Dateiname> Ein lokales Paket installieren (nicht aus einem Repo)
pacman -D --asexplicit <Paket> Status eines installierten Paketes auf „Ausdrücklich installiert“ setzen
pacman -D ---asdeps <Paket> Status eines installierten Paketes auf „Installiert als Abhängigkeit“ setzen
pacman -Scc Leert den lokalen Speicher von Pacman (/var/cache/pacman/pkg)
pacman -Sc Löscht nicht mehr benötigte und veraltete Pakete aus /var/cache/pacman/pkg und unbenutzte Repositorien aus dem Verzeichnis /var/lib/pacman

Pakete entfernen

Befehl Beschreibung
pacman -R <Paketname> Deinstallation eines oder mehrerer Pakete (aus AUR oder Repos)
pacman -Rs <Paketname> Wie oben, zusätzlich werden alle abhängige Pakete gesucht und mit entfernt, falls diese nicht von einer anderen Anwendung gebraucht werden
pacman -Rsc <Paketname> Wie oben. Abhängigkeiten werden kaskadierend entfernt
pacman -Rscn <Paketname> Wie oben. Die Konfigurationsdateien der Anwendung werden mit entfernt
pacman -Rdd <Paket> Deinstallation eines Paketes ohne Prüfung bestehender Paketabhängigkeiten. Vorsicht, hierdurch kann die Konsistenz und Funktionstüchtigkeit der Systeminstallation beeinträchtigt werden!
pacman -Rss <Paket> Paket mit allen benötigten Abhängigkeiten und deren Abhängigkeiten entfernen

Abfragen der lokalen Paketdatenbank

Befehl Beschreibung
pacman -Q Zeigt alle installierten Pakete inklusive Versionsnummer auf dem System an
pacman -Qi <Paket> Informationen zu bereits installiertem Paket anzeigen
pacman -Qs <Paket> Sucht nach bereits installierten Paketen
pacman -Qdt Verwaiste Pakete anzeigen, die als Abhängigkeiten installiert wurden, aber nicht mehr von anderen Paketen benötigt werden
pacman -Qet Pakete anzeigen, die ausdrücklich installiert wurden, aber nicht von anderen als Abhängigkeit benötigt werden
pacman -Ql <Paket> Zeigt alle installierten Dateien des Pakets im System
pacman -Qm Pakete anzeigen, die sich in keinem aktivierten Repo laut /etc/pacman.conf befinden
pacman -Qo <Pfad zur Datei> Zeigt das Paket an, welches die gesuchte Datei enthält
pacman -Sy && pacman -Qu Aktualisiert die lokale Paketdatenbank und zeigt verfügbare Updates an
grep warning Überprüft alle Pakete auf fehlende Dateien und schränkt die Ausgabe auf Problempakete ein

Paketdateien suchen

Befehl Beschreibung
pacman -Fy Lokale Datei-Datenbank aktualisieren
pacman -Fs <Datei> Paket suchen das die Datei enthält
pacman -Fsx <Regex> Wie -Fs, aber Suche mit regulären Ausdrücken (hilfreich, falls der vollständige Dateiname unbekannt ist)
pacman -Fl <Paket> Alle Dateien des Paketes anzeigen
pacman -Fo <Pfad zur Datei> Paket suchen mit dem Pfad einer Datei

Es können auch mehrere Befehlsaufrufe kombiniert werden; hier z.B. zur Deinstallation aller verwaisten Pakete:

pacman -Rsn $(pacman -Qdtq)

Paccache

Paccache ist ein Werkzeug zur Bereinigung des Pacman-Cache /var/cache/pacman/pkg. Die archivierten Pakete können mit Paccache differenzierter als mit pacman -Scc bereinigt werden. Eine Übersicht der Möglichkeiten erhält man mit dem Befehl paccache -h.

Checkupdates

Mit Checkupdates kann man überprüfen ob Aktualisierungen für installierte Pakete verfügbar sind, ohne eine komplette System-Aktualisierung (pacman -Syu) durchzuführen.

checkupdates

Bacman

Mit Hilfe der Paketdatenbank erstellt bacman aus den installierten Dateien eines Paketes wieder ein Paketarchiv *.pkg.tar.zx.

 bacman foobar

Konfiguration

Die Einstellungen für Pacman sind in der Datei /etc/pacman.conf gespeichert und können dort angepasst werden.

Allgemeine Einstellungen

#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
HoldPkg     = pacman glibc
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta    = 0.7
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =
  • Pakete, die durch HoldPkg markiert sind, müssen vor dem Entfernen nochmals bestätigt werden.
  • Pakete, die mit IgnorePkg markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.
  • 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 NoExtract markiert sind, werden bei der Installation oder einem Update nicht installiert.

Seit der Version 4.1 unterstützt Pacman auch farbige Ausgaben. Dazu muss die Option #Color auskommentiert werden.

Repositorien und Spiegel-Server

Offizielle Arch Linux-Pakete werden einem von sechs verschiedenen Repositorys zugeordnet:

  • [core] enthält grundlegende Programme, die zum Betrieb von Arch Linux unbedingt erforderlich sind.
  • [extra] enthält eine Vielzahl zusätzlicher, optionaler Anwendungen in der jeweils letzten stabilen Version. Hier liegen etwa auch die Pakete von KDE und GNOME.
  • [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 von den "Trusted Users" betreut, nicht direkt von den Entwicklern. Die Verwendung gilt als sicher.
  • [multilib] enthält 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.
  • [multilib-testing] enthält noch nicht hinreichend getestete 32-Bit-Anwendungen, die auf x86_64-Systemen installiert werden sollen.

Repos festlegen

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

Inoffizielle Repositories verwenden

Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Eine Liste inoffizieller Repositories findet sich im engl. Wiki.

Den richtigen Spiegel-Server finden

Spiegel-Server unterscheiden sich durch ihre Aktualität (siehe unterschiedliche Synchronisations-Raten mit dem Hauptserver), sowie durch ihre Zugänglichkeit vom eigenen Standort aus.

  • Es werden nur noch Server mit HTTP(S)-Protokoll unterstützt.
  • Die Wahl der Architektur wird durch entsprechende Variablen ($repo und $arch) gesteuert. Ein Ausschnitt als Beispiel:
## Germany
#Server = http://mirror.23media.de/archlinux/$repo/os/$arch
#Server = https://mirror.bethselamin.de/$repo/os/$arch
#Server = http://ftp.fau.de/archlinux/$repo/os/$arch
#Server = https://ftp.fau.de/archlinux/$repo/os/$arch
#Server = http://mirror.gnomus.de/$repo/os/$arch
#Server = http://ftp.gwdg.de/pub/linux/archlinux/$repo/os/$arch
#Server = http://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/$arch
#Server = http://ftp-stud.hs-esslingen.de/pub/Mirrors/archlinux/$repo/os/$arch

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 in der Datei /etc/pacman.d/mirrorlist gespeichert. Da der Zugang zum Hauptserver inzwischen beschränkt werden musste, sollte man unbedingt auf einen Spiegel zurückgreifen.

Um die Antwortzeiten der einzelnen Server zu testen, kann man das Skript Rankmirrors verwenden:

rankmirrors -n 0 -t -v /etc/pacman.d/mirrorlist

Einen Überblick über die Reaktionszeiten und die jeweils letzte Aktualisierung einzelner Server findet man zudem auf der Seite Mirror-Status. Mit dem Reflector-Skript kann die eigene Spiegelserver-Liste auf dem neuesten Stand gehalten und nach der Geschwindigkeit der Spiegelserver sortiert werden.

Eine aktuelle Server-Liste kann man sich mit dem Pacman Mirrorlist Generator erstellen lassen.

Eigene Mirrorlist

Um sich das immer wiederkehrende Editieren der /etc/pacman.d/mirrorlist zu ersparen, wenn diese durch ein pacman-mirrorlist Update erneuert wird (bzw. eine mirrorlist.pacnew erstellt wird) kannst du folgendes tun: Erstelle dir eine Datei /etc/pacman.d/mymirrors und füge darin deine bevorzugten Spiegelserver ein. Dann ergänzt du die /etc/pacman.conf für die einzelnen Repos so:

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

Somit bleibt die Original-Mirrorlist immer auf dem aktuellen Stand und du musst evtl. notwendige Änderungen nur in deiner Datei mymirrors vornehmen.

Download beschränken

Um die Download-Geschwindigkeit zu beschränken kann in der Zeile

XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u

dem wget-Befehl die entsprechende Option hinzugefügt werden.

XferCommand = /usr/bin/wget --passive-ftp --limit-rate=40k -c -O %o %u

Hilfe

Keine Verbindung zu einem Mirror

Bei den Standard Einstellungen von Pacman kann es vorkommen das bei zu langsamer Internetverbindung, es zu lange dauert um mit einem Mirror sich zu verbinden. Um dies zu lösen kann man den schnellsten Mirror suchen und wenn dies nicht hilft einen Alternativen Downloader für Pacman verwenden: Dazu muss man die Datei /etc/pacman.conf bearbeiten und einen der beiden Einträge durch Entfernen der Raute # einkommentieren:

#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u

Pacman aus Versehen deinstalliert

Wie kann Pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?

Manuelle Variante

cd /
bsdtar -x -f /var/cache/pacman/pkg/pacman-*.pkg.tar.xz

Das Sternchen(*) entspricht dem Paket mit der höchsten Versionsnummer, welches hoffentlich noch im o.g. Verzeichnis vorhanden ist. Danach Pacman mittels des „neuen“ Pacman wieder installieren, damit der Datenbankeintrag für Pacman selbst wieder angelegt wird.

pacman -S pacman

Per Installationsmedium

Vom Installationsmedium booten und die deutsche Tastaturbelegung loadkeys de wählen. Anschließend Partitionen einhängen: Die Root-Partition nach /mnt einhängen (Verzeichnis /etc sollte darin enthalten sein) Für weitere Partitionen unterhalb /mnt Ordner anlegen und entsprechend einhängen (bspw. /mnt/usr). Eine Neuinstallation von Pacman kann nun mit diesem Befehl erfolgen:

pacstrap /mnt pacman

Weitere Informationen

Siehe auch