Pacman: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
 
(131 dazwischenliegende Versionen von 36 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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 Repositories 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.


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.
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.  


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,
== Installation ==
'''Pacman''' ist bereits Bestandteil jeder Arch Linux-Installation.


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


* suchen,
* herunterladen,
* installieren und aktualisieren, sowohl vom Server als auch von lokalen Datenbanken,
* überprüfen und
* entfernen.


Contents
Die wichtigsten Befehle sind hier aufgeführt. Bitte beachte, dass die Paketnamen immer klein geschrieben werden.
[hide]


    * 1 Benutzung
{|border="1" style="width:100%"
    * 2 Konfiguration
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
          o 2.1 Allgemeine Einstellungen
|style="width:70%;background-color:#E5E5E5"|'''Beschreibung'''
          o 2.2 Repositories
|-
    * 3 Verwandte Themen
|''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 -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 -Rs [paket]
|Paket mit allen benötigten Abhängigkeiten entfernen (wenn diese nicht von anderen installierten Paketen benötigt werden)
|-
|''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 -Runs [paket]''
|Paket inklusive aller Abhängigkeiten entfernen
|-
|''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
|-
|''pacman-optimize''
|'''Pacman'''-Datenbank optimieren durch Neuanordnung der Paketdateien im Dateisystem
|-
|}


[edit]
Es können auch mehrere Befehle kombiniert werden. Z.B. alle verwaisten Pakete deinstallieren:
Benutzung


Pacman ist ein All-In-One-Paketmanager. Er kann Pakete
pacman -Rsn `pacman -Qdtq`


    * suchen,
    * herunterladen,
    * installieren und aktualisieren (upgraden) 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:
Ab Version 5.0.0 können auch nicht installierte Pakete nach Dateien durchsucht werden.
{|border="1" style="width:100%"
|style="width:30%;background-color:#E5E5E5"|'''Befehl'''
|style="width:70%;background-color:#E5E5E5"|'''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 das eine bestimmte Datei enthält
|-
|}


Bitte beachten, dass die Paketnamen alle mit Kleinbuchstaben geschrieben werden


    * Lokale Datenbanken aktualisieren:
=== paccache ===
Paccache ist ein Werkzeug für die Pflege des pacman-cache. Es bietet vielfältige Möglichkeiten
die Kontrolle darüber zu behalten was und wieviel 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


pacman -Sy
===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


    * Ein Paket installieren oder aktualisieren:
===bacman===
Mit Hilfe der Paketdatenbank erstellt bacman aus den installierten Dateien eines Paketes wieder ein Paketarchiv {{ic|*.pkg.tar.zx}}.
  bacman foobar


pacman -S paketname
== Konfiguration ==
Die Einstellungen zu '''Pacman''' werden in der Datei {{ic|/etc/pacman.conf}} gespeichert.


     * Alle installierten Pakete aktualisieren:
=== 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.


pacman -Su
Pakete, die mit '''IgnorePkg''' markiert sind, werden vom Update völlig ausgenommen. Dies betrifft auch alle damit verbundenen Abhängigkeiten.


Es können auch mehr Parameter auf einmal verwendet werden:
Dateien, die durch '''NoUpgrade''' markiert sind, werden beim Update nicht überschrieben. Pacman legt stattdessen eine neue Datei im Format {{ic|datei.pacnew}} an.


    * Datenbank synchronisieren und Pakete updaten (der wohl wichtigste Befehl für Pacman: Führt ein Systemupdate aus!):
Dateien, die durch '''NoExtract''' markiert sind, werden bei der Installation oder einem Update nicht installiert.


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


    * Mehr als ein Paket installieren:  
=== Repositories und Spiegel-Server ===
Offizielle Arch Linux-Pakete werden einem von sechs verschiedenen Repositories zugeordnet:


pacman -S paket1 paket2
*[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 {{ic|/etc/pacman.conf}} durch Auskommentierung oder zusätzliche Einträge ist weitgehend selbsterklärend.


    * Um nach Paketen in den Datenbanklisten zu suchen, reicht auch ein Teil des Paketnamens:  
==== Inoffizielle Repositories verwenden ====
Weitere Repos kann man beliebig anhängen, indem man Repo-Name und Server spezifiziert. Eine Liste inoffizieller Repositories findet sich im [http://wiki.archlinux.org/index.php/Unofficial_user_repositories engl. Wiki].


pacman -Ss paket
==== 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.


    * Um nach installierten Paketen zu suchen:
* Es werden nur noch Server mit dem HTTP Protokoll unterstützt.
* Die Wahl der Architektur wird durch entsprechende Variablen gesteuert.


pacman -Qs paket
## Germany
#Server = http://1favre.de/arch/$repo/os/$arch
#Server = http://archlinux.limun.org/$repo/os/$arch
#Server = http://artfiles.org/archlinux.org/$repo/os/$arch
#Server = http://mirror.devnu11.net/archlinux/$repo/os/$arch
#Server = http://ftp5.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
#Server = http://mirror.de.leaseweb.net/archlinux/$repo/os/$arch
#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch
#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


    * Manchmal gibt es mehrere Versionen eines Paketes in verschiedenen Repositories (z.B. extra und testing). Hier kann angegeben, welches installiert werden soll:
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.


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


    * Ein Paket herunterladen, ohne es zu installieren:  
Einen Überblick über die Reaktionszeiten und die jeweils letzte Aktualisierung einzelner Server findet man zudem auf der Seite [https://www.archlinux.de/?page=MirrorStatus Mirror-Status]. Mit dem [[Reflector]]-Skript kann die eigene Spiegelserver-Liste auf dem neuesten Stand gehalten und nach der Geschwindigkeit der Spiegelserver sortiert werden.


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


    * Ein Paket von einem lokalen Pfad installieren:  
==== 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:


pacman -A /pfad/zu/paket/paketname-version.pkg.tar.gz
[core]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/mymirrors
Include = /etc/pacman.d/mirrorlist


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


pacman -Si paket
=== Download beschränken ===
pacman -Qi paket
Um die Download-Geschwindigkeit zu beschränken kann in der Zeile


    * Alle Dateien eines Pakets anzeigen:
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u


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


    * Zu welchem Paket gehört diese Datei?
XferCommand = /usr/bin/wget --passive-ftp '''--limit-rate=40k''' -c -O %o %u


pacman -Qo /pfad/zu/einer/Datei
== Pacman aus Versehen deinstalliert ==
Wie kann pacman wiederhergestellt werden, wenn es aus Versehen deinstalliert wurde?
Manuelle Variante (Ausführen als root):


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


pacman -R paketname
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.


    * Ein Paket zusammen mit allen Abhängigkeiten, die nicht von anderen installierten Paketen gebraucht werden, entfernen:
pacman -S pacman


pacman -Rs paketname
Per Installationsmedium:


    * Pacmancache leeren (/var/cache/pacman/pkg):
* Vom Installationsmedium booten


pacman -Scc
loadkeys de


    * Pacman optimieren
* 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)


pacman-optimize
pacstrap /mnt pacman


Für eine detailliertere Ausführung der Parameter siehe pacman --help oder man pacman.
installiert pacman neu.
[edit]
Konfiguration


Pacmans Einstellungen werden gespeichert in der Datei /etc/pacman.conf. Es gibt zwei Hauptbereiche in der Datei:
== Weitere Informationen ==
[edit]
*[https://www.archlinux.org/pacman/pacman.8.html man pacman]
Allgemeine Einstellungen
*[https://www.archlinux.org/pacman/pacman.conf.5.html man pacman.conf]
*[https://www.archlinux.org/pacman/repo-add.8.html man repo-add]


Die allgemeinen Einstellungen finden sich in der [options]-Sektion
== Siehe auch ==
* [[Pacnew- und Pacsave-Dateien]]
* [[Pacman beschleunigen]]
* [[Pacman-key]]
* [[Paketliste archivieren]]
* [[Eigene Repositories erstellen]]
* [[Pacman-Tipps]]
* [[Rosettastein Paketverwaltung ]]


Hier kann angegeben werden, welche Dateien nicht aktualisiert werden sollen. Das ist bei wichtigen Systemdateien nützlich. Die Syntax ist sehr einfach:
[[Kategorie:Paketverwaltung]]
 
[[en:Pacman]]
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 paketxxx 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.
[edit]
Repositories
 
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.
 
[current]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/current
 
Durch den Befehl Include wird die Datei /etc/pacman.de/current eingebunden, welche wiederum auf verschieden Downloadmirrors der "current"-Datenbank verweist.
 
[repository-name]
Server = ftp://server.net/repo
 
Über Server wird direkt ein Server angegeben, welcher einen anonymen Zugang ermöglichen muss, um als Repository genutzt werden zu können.
 
Auch hierzu gibt es weitere Informationon unter man pacman.
[edit]
Verwandte Themen
 
Boost Pacman
ArchLinux User-community Repository (AUR)
Local repository HOW-TO
 
Retrieved from "http://wiki.archlinux.org/index.php/Pacman_%28Deutsch%29

Version vom 31. August 2016, 16:04 Uhr

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 Repositories 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.

Anwendung

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

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

Die wichtigsten Befehle sind hier aufgeführt. Bitte beachte, dass die Paketnamen immer klein geschrieben werden.

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 -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 -Rs [paket] Paket mit allen benötigten Abhängigkeiten entfernen (wenn diese nicht von anderen installierten Paketen benötigt werden)
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 -Runs [paket] Paket inklusive aller Abhängigkeiten entfernen
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
pacman-optimize Pacman-Datenbank optimieren durch Neuanordnung der Paketdateien im Dateisystem

Es können auch mehrere Befehle kombiniert werden. Z.B. alle verwaisten Pakete deinstallieren:

pacman -Rsn `pacman -Qdtq`


Ab Version 5.0.0 können auch nicht installierte Pakete nach Dateien durchsucht werden.

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 das eine bestimmte Datei enthält


paccache

Paccache ist ein Werkzeug für die Pflege des pacman-cache. Es bietet vielfältige Möglichkeiten die Kontrolle darüber zu behalten was und wieviel aus jedwedem Pacman Paket-Tarballarchive enthaltenden Verzeichnis gelöscht wird. Es stellt eine besser dosierbare Alternative zu 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

bacman

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

 bacman foobar

Konfiguration

Die Einstellungen zu Pacman werden in der Datei /etc/pacman.conf gespeichert.

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.

Repositories und Spiegel-Server

Offizielle Arch Linux-Pakete werden einem von sechs verschiedenen Repositories 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 dem HTTP Protokoll unterstützt.
  • Die Wahl der Architektur wird durch entsprechende Variablen gesteuert.
## Germany
#Server = http://1favre.de/arch/$repo/os/$arch
#Server = http://archlinux.limun.org/$repo/os/$arch
#Server = http://artfiles.org/archlinux.org/$repo/os/$arch
#Server = http://mirror.devnu11.net/archlinux/$repo/os/$arch
#Server = http://ftp5.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
#Server = http://mirror.de.leaseweb.net/archlinux/$repo/os/$arch
#Server = http://mirror.selfnet.de/archlinux/$repo/os/$arch
#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 /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

Pacman aus Versehen deinstalliert

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

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
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)

pacstrap /mnt pacman

installiert pacman neu.

Weitere Informationen

Siehe auch