PACMAN.CONF(5) Pacman-Handbuch PACMAN.CONF(5)

pacman.conf - Konfigurationsdatei für den Paketverwalter Pacman

ÜBERSICHT

/etc/pacman.conf

Pacman versucht bei jedem Aufruf, mittels libalpm(3) die Datei pacman.conf zu lesen. Diese Konfigurationsdatei ist in Abschnitte oder Repositorien unterteilt. Jeder Abschnitt definiert ein Paket-Repositorium, das Pacman bei der Suche nach Paketen im --sync-Modus nutzen kann. Eine Ausnahme bildet der Abschnitt »options«, in dem globale Optionen definiert werden.

Kommentare werden nur am Anfang einer Zeile unterstützt, indem diese mit einem Rautezeichen (#) begonnen wird. Kommentare dürfen nicht inmitten einer Zeile beginnen.

#
# pacman.conf
#
[options]
NoUpgrade = etc/passwd etc/group etc/shadow
NoUpgrade = etc/fstab
[core]
Include = /etc/pacman.d/core
[custom]
Server = file:///home/pkgs

Hinweis

Jede Anweisung muss in »CamelCase« (»Kamelschrift«, Schreibweise mit innenliegenden Großbuchstaben) eingetragen werden. Falls diese Schreibweise nicht respektiert wird, wird die Anweisung nicht erkannt. Beispielsweise würde weder »noupgrade« noch »NOUPGRADE« funktionieren.

RootDir = /Pfad/zum/Wurzelverzeichnis

legt das standardmäßige Wurzelverzeichnis fest, in das Pacman installieren soll. Diese Option wird dann verwendet, wenn Sie ein Paket auf einer temporär eingehängten Partition installieren wollen, die zu einem anderen System »gehört« oder bei einer Chroot-Installation. HINWEIS: Falls der Datenbankpfad oder die Protokolldatei weder in der Befehlszeile noch in pacman.conf(5) angegeben sind, wird der Standardort innerhalb dieses Wurzelpfades liegen.

DBPath = /Pfad/zum/Datenbankverzeichnis

setzt den vorgegebenen Ort des obersten Verzeichnisses der Datenbank außer Kraft. Die Voreinstellung ist /var/lib/pacman/. Die meisten Benutzer werden diese Option nicht ändern müssen. HINWEIS: Falls angegeben, ist dies ein absoluter Pfad; der Pfad zum Wurzelverzeichnis wird nicht automatisch vorangestellt.

CacheDir = /Pfad/zum/Zwischenspeicherverzeichnis

setzt den vorgegebenen Ort des Paketzwischenspeicherverzeichnisses außer Kraft. Die Voreinstellung ist /var/cache/pacman/pkg/. Mehrere Zwischenspeicherverzeichnisse können angegeben werden, wobei diese dann in der Reihenfolge versucht werden, in der sie in der Konfigurationsdatei angegeben sind. Falls eine Datei in keinem Zwischenspeicherverzeichnis gefunden wird, wird sie in das erste Zwischenspeicherverzeichnis heruntergeladen, in das geschrieben werden kann. HINWEIS: Dies ist ein absoluter Pfad; der Pfad zum Wurzelverzeichnis wird nicht automatisch vorangestellt.

HookDir = /Pfad/zum/Hook-Verzeichnis

fügt Verzeichnisse hinzu, in denen zusätzlich zum Hook-Verzeichnis des Systems (/usr/share/libalpm/hooks/) nach Alpm-Hooks gesucht werden soll. Die Voreinstellung ist /etc/pacman.d/hooks. Mehrere Verzeichnisse können angegeben werden, wobei Hooks in später angegebenen Verzeichnissen Vorrang vor den früher angegebenen Verzeichnissen haben. HINWEIS: Dies ist ein absoluter Pfad; der Pfad zum Wurzelverzeichnis wird nicht vorangestellt. Weitere Informationen zu den Alpm-Hooks finden Sie in alpm-hooks(5).

GPGDir = /Pfad/zum/GPG-Verzeichnis

setzt den vorgegebenen Ort des Verzeichnisses der Konfigurationsdateien für GnuPG außer Kraft. Die Voreinstellung ist /etc/pacman.d/gnupg/. Dieses Verzeichnis sollte zwei Dateien enthalten: pubring.gpg und trustdb.gpg. In pubring.gpg werden die öffentlichen Schlüssel aller Paketbetreuer gespeichert. Die Datei trustdb.gpg enthält die sogenannte Vertrauensdatenbank, welche angibt, das die Schlüssel authentisch und vertrauenswürdig sind. HINWEIS: Dies ist ein absoluter Pfad; der Pfad zum Wurzelverzeichnis wird nicht automatisch vorangestellt.

LogFile = /Pfad/zur/Protokolldatei

setzt den vorgegebenen Ort der Pacman-Protokolldatei außer Kraft. Die Voreinstellung ist /var/log/pacman/. Dies ist ein absoluter Pfad; der Pfad zum Wurzelverzeichnis wird nicht automatisch vorangestellt.

HoldPkg = Paket …

Falls ein Benutzer versucht, ein Paket mit --remove zu entfernen, das in HoldPkg aufglistet ist, bittet Pacman um Bestätigung, bevor fortgesetzt wird. Platzhalter im Shell-Stil sind dabei erlaubt.

IgnorePkg = Paket …

weist Pacman an, sämtliche Aktualisierungen für dieses Paket zu ignorieren, wenn eine Systemaktualisierung mit --sysupgrade ausgeführt wird. Platzhalter im Shell-Stil sind dabei erlaubt.

IgnoreGroup = Gruppe …

weist Pacman an, sämtliche Aktualisierungen für alle Pakete in dieser Gruppe zu ignorieren, wenn eine Systemaktualisierung mit --sysupgrade ausgeführt wird. Platzhalter im Shell-Stil sind dabei erlaubt.

Include = /Pfad/zur/Konfigurationsdatei

bezieht eine weitere Konfigurationsdatei ein. Diese Datei kann Repositorien oder allgemeine Konfigurationsoptionen enthalten. Platzhalter in den angegebenen Pfaden werden gemäß den glob(7)-Regeln expandiert.

Architecture = auto &| i686 &| x86_64 | …

erlaubt Pacman nur die Installation von Paketen der angegebenen Architekturen (zum Beispiel i686, x86_64, usw.). Der besondere Wert auto verwendet die Systemarchitektur, die der Befehl »uname -m« ausgibt. Falls nicht gesetzt, werden keine Architekturüberprüfungen ausgeführt. HINWEIS: Pakete mit der besonderen Architektur any können immer installiert werden, da sie architekturunabhängig sind.

XferCommand = /Pfad/zum/Befehl %u

bewirkt, dass zum Herunterladen aller fernen Dateien ein externes Programm verwendet wird. Alle Instanzen von %u werden durch die Download-Adresse ersetzt. Falls vorhanden, werden Instanzen von %o durch den lokalen Dateinamen ersetzt und erhalten die Endung ».part«, die Programmen wie wget die reibungslose Wiederaufnahme unterbrochener Downloads ermöglicht.

Diese Option ist nützlich, wenn Benutzer Probleme mit der eingebauten Unterstützung für HTTP/FTP haben oder erweiterte Proxy-Unterstützung benötigen, die Werkzeuge wie wget mitliefern.

NoUpgrade = Datei …

bewirkt, dass alle unter der NoUpgrade-Anweisung aufgelisteten Dateien während einer Paketinstallation oder -aktualisierung niemals angerührt werden und die neuen Dateien mit der Endung .pacnew installiert werden. Diese Dateien verweisen auf die Dateien im Paketarchiv, daher dürfen Sie keinen Schrägstrich (das Wurzelverzeichnis) voranstellen, wenn Sie sie angeben. Platzhalter im Shell-Stil sind dabei erlaubt. Es ist möglich, die Suchlogik umzukehren, indem Sie einem Dateinamen ein Ausrufezeichen voranstellen. Dieses Ausrufezeichen hat den Effekt, dass zuvor ausgeschlossene Dateien nun wieder einbezogen werden. In Folge gefundene Übereinstimmungen setzen zuvor gefundene außer Kraft. Wenn ein literales Ausrufezeichen oder ein Rückschrägstrich vorangestellt ist, muss dieses Zeichen maskiert werden.

NoExtract = Datei …

bewirkt, dass alle mit der NoExtract-Anweisung aufgelisteten Dateien niemals aus einem Paket in das Dateisystem entpackt werden. Dies kann nützlich sein, wenn Sie Teile eines Pakets nicht installieren wollen. Wenn beispielsweise Ihre HTTP-Wurzel eine Datei index.php verwendet, dann werden Sie nicht wollen, dass die Datei index.html aus dem Paket apache entpackt wird. Diese Dateien verweisen auf Dateien im Paketarchiv, daher dürfen Sie keinen Schrägstrich (das Wurzelverzeichnis) voranstellen, wenn Sie sie angeben. Platzhalter im Shell-Stil sind dabei erlaubt. Es ist möglich, die Suchlogik umzukehren, indem Sie einem Dateinamen ein Ausrufezeichen voranstellen. Dieses Ausrufezeichen hat den Effekt, dass zuvor ausgeschlossene Dateien nun wieder einbezogen werden. In Folge gefundene Übereinstimmungen setzen zuvor gefundene außer Kraft. Wenn ein literales Ausrufezeichen oder ein Rückschrägstrich vorangestellt ist, muss dieses Zeichen maskiert werden.

CleanMethod = KeepInstalled &| KeepCurrent

Wenn dies auf KeepInstalled (die Voreinstellung) gesetzt ist, löscht die Aktion -Sc Einträge für Pakete, die nicht mehr installiert sind (das heißt, in der lokalen Datenbank nicht mehr vorhanden sind). Wenn auf KeepCurrent gesetzt, werden mit -Sc veraltete Paketeinträge gelöscht (die nicht in der Synchronisationsdatenbank vorhanden sind). Letzterer Fall ist nützlich, wenn der Paketzwischenspeicher von mehreren Rechnern gemeinsam genutzt wird, auf denen die lokalen Datenbanken üblicherweise unterschiedlich, aber die verwendeten Synchronisationsdatenbanken gleich sein könnten. Falls beide Werte angegeben werden, werden Paketeinträge nur dann gelöscht, wenn sie sowohl lokal nicht installiert sind als auch in keiner bekannten Synchronisationsdatenbank mehr vorhanden sind.

SigLevel =

legt die standardmäßige Stufe der Signaturüberprüfung fest. Weitere Informationen finden Sie im nachfolgenden Abschnitt »ÜBERPRÜFEN VON PAKET- UND DATENBANKSIGNATUREN«.

LocalFileSigLevel =

legt die Überprüfungsstufe für Signaturen beim Installieren von Paketen mit der Aktion -U für eine lokale Datei fest. Dabei wird der Wert von SigLevel als Vorgabe verwendet.

RemoteFileSigLevel =

legt die Überprüfungsstufe für Signaturen beim Installieren von Paketen mit der Aktion -U für eine ferne Dateiadresse (URL) fest. Dabei wird der Wert von SigLevel als Vorgabe verwendet.

UseSyslog

protokolliert Meldungen mittels syslog(). Dadurch werden Protokolleinträge in /var/log/messages oder äquivalent hinzugefügt.

Color

aktiviert die farbige Ausgabe automatisch nur dann, wenn die Ausgabe von Pacman auf einem Terminal erfolgt.

NoProgressBar

deaktiviert Fortschrittsanzeigen. Dies ist für Terminals sinnvoll, die keine Maskierungszeichen unterstützen.

CheckSpace

überprüft vor der Installation von Paketen durch eine Schätzung, ob genügend Plattenplatz zur Verfügung steht.

VerbosePkgLists

zeigt für Aktualisierungs-, Synchronisations- und Entfernungsaktionen Name, Version und Größe der Zielpakete in einer Tabelle formatiert an.

DisableDownloadTimeout

deaktiviert die Standardeinstellungen für untere Bandbreitenbegrenzung und Zeitüberschreitung beim Herunterladen. Diese Option kann hilfreich sein, wenn Sie Probleme beim Herunterladen von Dateien über einen Proxy und/oder ein Sicherheits-Gateway haben.

ParallelDownloads =

gibt die Anzahl der gleichzeitigen Download-Datenströme an. Der Wert muss eine positive Ganzzahl sein. Falls diese Konfigurationsoption nicht gesetzt ist, wird nur ein Download-Datenstrom verwendet (das heißt, die Downloads werden nacheinander ausgeführt).

Jeder Repository-Abschnitt definiert einen Abschnittsnamen und mindestens einen Ort, wo die Pakete gefunden werden können. Der Abschnittsname wird durch die Zeichenkette in eckigen Klammern definiert (die zwei oben genannten sind core und custom). Die Namen der Repositorien müssen eindeutig sein, wobei der Name local für die Datenbank der installierten Pakete reserviert ist. Die Orte werden durch die Server-Anweisung definiert und folgen einem URL-Benennungsschema. Falls Sie ein lokales Verzeichnis verwenden wollen, können Sie einen vollständigen Pfad mit vorangestelltem »file://« angeben, wie vorstehend gezeigt.

Ein üblicher Weg zur Definition der Datenbankorte nutzt die Include-Anweisung. Für jedes in der Konfigurationsdatei definierte Repositorium kann eine einzelne Include-Anweisung den Namen einer Datei enthalten, welche die Server für dieses Repositorium auflistet.

[core]
# Diesen Server zuerst verwenden
Server = ftp://ftp.archlinux.org/$repo/os/$arch
# Dann diese Server wie in der nachfolgenden Mirror-Liste verwenden
Include = {sysconfdir}/pacman.d/mirrorlist

Die Reihenfolge der Repositorien in der Konfigurationsdatei ist von Bedeutung; Repositorien, die zuerst aufgelistet sind, haben Vorrang vor den später in der Datei erscheinenden Repositorien, wenn Pakete in zwei Repositorien den gleichen Namen haben (unabhängig von der Versionsnummer).

Include = Pfad

bezieht eine weitere Konfigurationsdatei ein. Diese Datei kann Repositorien oder allgemeine Konfigurationsoptionen enthalten. Platzhalter in den angegebenen Pfaden werden entsprechend den glob(7)-Regeln expandiert.

Server = Adresse (URL)

gibt eine vollständige Adresse (URL) an, unter der die Datenbank, die Pakete und die Signaturen (sofern verfügbar) für dieses Repositorium gefunden werden können.

Während der Auswertung setzt Pacman die Variable $repo auf den Namen des aktuellen Abschnitts. Dies wird oft in Dateien verwendet, die in der Include-Anweisung angegeben sind, so dass alle Repositorien die gleiche Spiegelserverdatei verwenden können. Pacman setzt auch die Variable $arch auf den ersten (oder einzigen) Wert der Architektur, so dass die gleiche Spiegelserverdatei auch für verschiedene Architekturen genutzt werden kann.

SigLevel =

legt die Stufe der Signaturüberprüfung für dieses Repositorium fest. Weitere Informationen finden Sie im nachfolgenden Abschnitt »ÜBERPRÜFEN VON PAKET- UND DATENBANKSIGNATUREN«.

Usage =

legt die Nutzungsstufe für dieses Repositorium fest. Diese Option akzeptiert eine Reihe von Kürzeln, von denen mindestens eines der Folgenden verwendet werden muss:

Sync

aktiviert Auffrischungen dieses Repositoriums.

Search

aktiviert die Suche in diesem Repositorium.

Install

aktiviert die Installation von Paketen aus diesem Repositorium während einer --sync-Aktion.

Upgrade

erklärt dieses Repositorium zu einer gültigen Paketquelle, wenn die Aktion --sysupgrade ausgeführt wird.

All

aktiviert alle der oben genannten Funktionen für dieses Repositorium. Dies ist die Voreinstellung, falls nichts angegeben ist.

Beachten Sie, dass ein aktiviertes Repositorium unabhängig von der festgelegten Nutzungsstufe auch explizit verwendet werden kann.

ÜBERPRÜFEN VON PAKET- UND DATENBANKSIGNATUREN

Die SigLevel-Anweisung ist in den [options]- und auch den [repository]-Abschnitten zulässig. Falls Sie sie in [options] verwenden, wird ein Standardwert für jedes Repositorium gesetzt, das die Einstellung selbst nicht bereitstellt.

• Falls auf Never gesetzt, wird keine Signaturüberprüfung ausgeführt.
• Falls auf Optional gesetzt, werden vorhandene Signaturen geprüft, aber dennoch unsignierte Datenbanken und Pakete akzeptiert.
• Falls auf Required gesetzt, sind Signaturen für alle Pakete und Datenbanken erforderlich.

Alternativ erhalten Sie eine granularere Kontrolle, indem Sie einige der nachfolgend beschriebenen Optionen und Präfixe kombinieren. Alle Optionen in einer Konfigurationsdatei werden von oben nach unten und von links nach rechts abgearbeitet, woraus sich ergibt, dass später erscheinende Optionen die früheren außer Kraft setzen beziehungsweise ergänzen. Falls SigLevel in einem [repository]-Abschnitt angegeben ist, ist der Startwert derjenige aus dem Abschnitt [options] oder die eingebaute Voreinstellung des Systems, falls nichts angegeben ist.

Die Optionen sind in zwei Hauptgruppen unterteilt, die nachfolgend beschrieben sind. Die dort verwendeten Begriffe wie »marginally trusted« werden von GnuPG verwendet; weitere Informationen finden Sie in der Handbuchseite zu gpg(1).

Überprüfungsregeln

Diese Optionen steuern, ob und wann Signaturüberprüfungen vorgenommen werden sollen.

Never

unterdrückt sämtliche Signaturüberprüfungen, selbst wenn Signaturen verfügbar sind.

Optional (Standard)

bewirkt, dass Signaturen überprüft werden, wenn sie vorhanden sind; eine nicht vorhandene Signatur wird dabei nicht als Fehler gewertet. Eine ungültige Signatur ist ein schwerwiegender Fehler, sowie auch Signaturen aus einem Schlüssel, der nicht im Schlüsselbund vorhanden ist.

Required

macht Signaturen erforderlich; eine nicht vorhandene oder ungültige Signatur ist ein schwerwiegender Fehler, sowie auch Signaturen aus einem Schlüssel, der nicht im Schlüsselbund vorhanden ist.

Was erlaubt ist

Diese Optionen steuern, welche Signaturen als akzeptabel betrachtet werden können. Beachten Sie, dass es keine der Optionen erlaubt, ungültige oder abgelaufene Signaturen oder solche aus widerrufenen Schlüsseln zu akzeptieren.

TrustedOnly (Standard)

Wenn eine Signatur überprüft wird, muss sich diese im Schlüsselbund befinden und vollständig vertrauenswürdig sein; ein teilweises Vertrauen genügt diesen Kriterien nicht.

TrustAll

Wenn eine Signatur überprüft wird, muss sich diese im Schlüsselbund befinden, aber die Zuweisung einer Vertrauenswürdigkeitsstufe ist nicht notwendig (zum Beispiel unbekannte Vertrauenswürdigkeit oder teilweises Vetrauen).

Den Optionen in beiden Gruppen kann entweder Package oder Database vorangestellt werden, wodurch diese nur für den jeweils angegebenen Objekttyp wirksam sind. Zum Beispiel würde »PackageTrustAll« teilweise vertrauenswürdige Paketsignaturen und solche mit unbekannter Vertrauenswürdigkeitsstufe erlauben.

Folgendes ist die eingebaute Voreinstellung:

SigLevel = Optional TrustedOnly

Falls Sie eine Reihe von eigenen Paketen haben, ist es oft leichter, diese in einem eigenen lokalen Repositorium zu verwalten, als diese alle mit der Option --upgrade zu installieren. Dafür müssen Sie lediglich in dem Verzeichnis, in dem sich die Pakete befinden, eine komprimierte Paketdatenbank erzeugen, so dass Pacman sie findet, wenn es mit --refresh aufgerufen wird.

repo-add /home/pkgs/eigene.db.tar.gz /home/pkgs/*.pkg.tar.gz

Der obige Befehl erzeugt eine komprimierte Datenbank namens /home/pkgs/custom.db.tar.gz. Beachten Sie, dass die Datenbank in der Form vorliegen muss, die in der Konfigurationsdatei definiert ist und die {Erweiterung} ein gültiger Kompressionstyp ist, wie in repo-add(8) dokumentiert. Das ist alles! Nun können Sie Ihren eigenen Abschnitt in der Konfiguration einrichten, wie in der Beispielkonfiguration oben gezeigt. Pacman wird nun Ihr Paket-Repositorium nutzen. Falls Sie neue Pakete zum Repositorium hinzufügen, denken Sie daran, die Paketdatenbank neu aufzubauen und Pacman mit der Option --refresh aufzurufen.

Weitere Informationen zum Befehl repo-add erhalten Sie mit dem Befehl »repo-add --help« oder in der Handbuchseite repo-add(8).

pacman(8), libalpm(3)

Auf der Pacman-Website finden Sie aktuelle Informationen zu Pacman und den zugehörigen Werkzeugen.

Fehler? Sie machen wohl Witze, es gibt keine Fehler in dieser Software. Nun ja, sollte unsere Annahme doch falsch sein, senden Sie uns einen Fehlerbericht (auf Englisch) mit so vielen Details wie möglich in der Fehlerdatenbank von Archlinux im Bereich »Pacman«.

Derzeitige Betreuer:

Bedeutende frühere Mitwirkende:

Informationen zu weiteren Mitwirkenden erhalten Sie, wenn Sie den Befehl git shortlog -s im Git-Repositorium pacman.git aufrufen.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

6. Februar 2024 Pacman 6.0.2