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

makepkg.conf - Konfigurationsdatei für makepkg

ÜBERSICHT

/etc/makepkg.conf, $XDG_CONFIG_HOME/pacman/makepkg.conf, ~/.makepkg.conf

Konfigurationsoptionen für Makepkg werden in makepkg.conf gespeichert. Diese Datei wird eingelesen, so dass Sie alle gewünschten besonderen Compiler-Flags einbeziehen können. Dies ist beim Paketbau für verschiedene Architekturen oder mit unterschiedlichen Optimierungen hilfreich. Jedoch werden nur die nachfolgend beschriebenen Variablen in die Bauumgebung exportiert.


Hinweis

Dies garantiert nicht, dass alle Paket-Makefiles Ihre exportierten Variablen nutzen. Einige von ihnen sind nicht standardisiert.

Die systemweite Konfigurationsdatei finden Sie in /etc/makepkg.conf. Individuelle Optionen können benutzerbasiert in $XDG_CONFIG_HOME/pacman/makepkg.conf oder ~/.makepkg.conf außer Kraft gesetzt (oder hinzugefügt) werden, wobei der erste Ort Priorität hat.

Die Standarddatei ist recht gut dokumentiert, so dass es einfach sein dürfte, anhand der dortigen Anweisungen Anpassungen vorzunehmen.

DLAGENTS=('Protokoll::/Pfad/zum/Befehl [Optionen]' … )

gibt die Download-Agenten an, die zum Herunterladen der in einer URL in der Datei PKGBUILD(5) angegebenen Dateien verwendet werden sollen. Für jeden Befehl können auch Optionen angegeben werden, und für jedes Protokoll kann es einen Download-Agenten geben. Jegliche Leerräume in den Optionsargumenten müssen maskiert werden, damit der Befehl nicht geteilt wird. Diverse Beispiele finden Sie in der Standarddatei makepkg.conf.

Falls vorhanden, wird %u durch die Download-URL ersetzt. Anderenfalls wird die Download-URL an das Ende des Befehls gesetzt. Falls vorhanden, wird %o durch den Namen der lokalen Datei ersetzt und die Erweiterung ».part« hinzugefügt, wodurch Makepkg ermöglicht wird, unterbrochene Downloads wiederaufzunehmen.

VCSCLIENTS=('Protokoll::Paket' … )

gibt die Pakete an, die zum Holen der Quelldateien aus Versionsverwaltungssystemen erforderlich sind. Wenn solche nötig sind, überprüft Makepkg, ob diese installiert oder in den »depends«- oder »makedepends«-Feldern im PKGBUILD aufgelistet sind.

CARCH="Architektur"

gibt Ihre Computerarchitektur an. Zulässige Werte sind Dinge wie »i686«, »x86_64« oder »ppc«. Dies sollte automatisch bei der Installation festgelegt worden sein.

CHOST="Rechner"

gibt eine Zeichenkette wie »i686-pc-linux-gnu« an. Verändern Sie dies nicht, es sei denn, Sie wissen, was Sie tun. In den meisten Fällen können Sie es auskommentieren, falls gewünscht.

CPPFLAGS="CPP-Flags"

gibt die für den C-Präprozessor verwendeten Flags an; siehe CFLAGS für weitere Informationen.

CFLAGS="C-Flags"

gibt die für den C-Compiler verwendeten Flags an. Dies ist ein grundlegender Teil der Verwendung von Makepkg. Üblicherweise werden verschiedene Optionen angegeben, wobei die häufigste Zeichenkette etwa so aussieht: »-march=i686 -O2 -pipe«. Eine weitere nützliche Option kann -mcpu anstelle von -march sein. Lesen Sie gcc(1) für weitere Details zur Vielzahl der verfügbaren Compiler-Flags.

CXXFLAGS="CXX-Flags"

gibt die für den C++-Compiler verwendeten Flags an; siehe CFLAGS für weitere Informationen.

RUSTFLAGS="Rust-Flags"

gibt die für den Rust-Compiler verwendeten Flags an, ähnlich zu CFLAGS. In rustc(1) finden Sie weitere Details zu den verfügbaren Flags.

LDFLAGS="LD-Flags"

gibt die für den Linker verwendeten Flags an. Verschiedene Optionen können angegeben werden, wobei die häufigste Zeichenkette etwa so aussieht: »-Wl,--hash-style=gnu«. Lesen Sie ld(1) für weitere Details zu den verfügbaren Linker-Flags.

LTOFLAGS="LTO-Flags"

gibt zusätzliche Compiler- und Linker-Flags an, die an CFLAGS, CXXFLAGS und LDFLAGS angehängt werden, wenn mit Linkzeit-Optimierung gebaut wird. Falls leer, wird -flto verwendet.

MAKEFLAGS="makeflags"

wird oft zum Angeben der Anzahl der verwendeten Jobs verwendet, zum Beispiel -j2. Andere von »make« akzeptierte Flags können ebenfalls angegeben werden.

DEBUG_CFLAGS="debug_cflags"

gibt zusätzliche Compiler-Flags an, die an CFLAGS für Debugging-Zwecke angehängt werden. Üblicherweise würde dies Folgendes beinhalten: »-g«. Lesen Sie gcc(1) für weitere Details zu den zahlreichen verfügbaren Compiler-Flags.

DEBUG_CXXFLAGS="debug_cxxflags"

gibt für den C++-Compiler verwendete Debug-Flags an; siehe DEBUG_CFLAGS für weitere Informationen.

DEBUG_RUSTFLAGS="debug_rustflags"

gibt zusätzliche Compiler-Flags an, die an RUSTFLAGS für Debugging-Zwecke angehängt werden. Üblicherweise würde dies Folgendes beinhalten: “-C debuginfo=2”. Lesen Sie rustc(1) für weitere Details zu den verfügbaren Flags.

BUILDENV=(!distcc !color !ccache check !sign)

enthält Optionen, welche die Bauumgebung betreffen; die Voreinstellungen werden hier angezeigt. Alle Optionen sollten stets im Feld verbleiben. Um eine Option zu aktivieren oder zu deaktivieren, fügen Sie einfach ein »!« vor der Option hinzu oder entfernen es, wenn es bereits vorhanden ist. Wenn eine Option mehrmals angegeben ist, dann hat der letzte Wert Vorrang. Jede der Optionen funktioniert wie folgt:

distcc

verwendet den verteilten C/C++/ObjC-Compiler, um die Kompilierung über mehrere Maschinen zu verteilen. Falls dies aktiviert ist, muss DISTCC_HOSTS ebenfalls angegeben werden.

color

färbt die Meldungen ein, wodurch die Ausgabe besser lesbar wird.

ccache

verwendet Ccache bei der Cache-Kompilierung standardmäßig. Dadurch wird eine schnellere Kompilierung möglich, wenn Sie wiederholt die gleichen Pakete kompilieren. Dies kann für einzelne Pakete deaktiviert werden, indem Sie »!ccache« in das »options«-Feld im PKGBUILD setzen.

check

führt die check()-Funktion aus, sofern diese im PKGBUILD vorhanden ist. Dies kann für einzelne Pakete aktiviert oder deaktiviert werden, wenn Sie Makepkg mit den Optionen --check beziehungsweise --nocheck aufrufen.

sign

erzeugt mittels GnuPG eine PGP-Signaturdatei. Dadurch wird gpg --detach-sign --use-agent mit dem gebauten Paket ausgeführt, um eine zugehörige Signaturdatei mit dem GPG-Agent zu erzeugen, sofern dieser verfügbar ist. Die Signaturdatei erhält den vollständigen Namen des Pakets mit der Erweiterung ».sig«.

DISTCC_HOSTS="Rechner1 …"

Wenn Sie DistCC verwenden, können Sie hiermit eine durch Leerzeichen getrennte Liste von Rechnern angeben, die im DistCC-Cluster laufen. Zusätzlich werden Sie Ihre MAKEFLAGS anpassen müssen.

BUILDDIR="/Pfad/zum/Verzeichnis"

Wenn dieser Wert nicht gesetzt ist, werden Pakete standardmäßig in den Unterverzeichnissen jenes Verzeichnisses gebaut, aus dem Makepkg aufgerufen wird. Diese Option ermöglicht es, das Bauverzeichnis in ein anderes Verzeichnis zu verlegen. Durch inkorrektes Setzen von $startdir in einem PKGBUILD könnte der Bauvorgang mit dieser Option fehlschlagen.

GPGKEY=""

gibt einen Schlüssel an, der anstelle des Vorgabeschlüssels im Schlüsselbund zur GPG-Signierung verwendet werden soll. Dieser kann mit der Makepkg-Option --key außer Kraft gesetzt werden.

OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug)

Dieses Feld enthält Optionen, welche die Paketierungsvorgaben beeinflussen. Sie sind äquivalent zu Optionen, die in einem PKGBUILD enthalten sein können; die Vorgaben werden hier angezeigt. Alle Optionen sollten stets in diesem Feld verbleiben und können bei Bedarf durch Hinzufügen oder Entfernen eines Ausrufezeichens vor der Option deaktiviert oder aktiviert werden. Wenn eine Option mehrfach angegeben wird, erhält der zuletzt angegebene Wert Vorrang. Jede Option funktioniert folgendermaßen:

strip

Entfernt Symbole aus Programmen und Bibliotheken. Wenn Sie häufig einen Debugger bei Programmen oder Bibliotheken verwenden, kann es hilfreich sein, diese Option zu deaktivieren.

docs

speichert die Dokumentationsverzeichnisse. Wenn Sie die Dokumentationsverzeichnisse löschen wollen, geben Sie »!docs« im Feld an. Die betroffenen Verzeichnisse werden durch die Variable DOC_DIRS bezeichnet.

libtool

Belässt Libtool-Dateien (.la) in Paketen. Geben Sie !libtool an, um diese zu entfernen.

staticlibs

belässt statische Bibliotheksdateien (.a) in Paketen Geben Sie !staticlibs an, um diese zu entfernen (sofern es ein dynamisch gelinktes Gegenstück gibt).

emptydirs

belässt leere Verzeichnisse in Paketen.

zipman

komprimiert Handbuchseiten (man und info) mit gzip. Die betroffenen Verzeichnisse werden in der Variable MAN_DIRS festgelegt.

purge

entfernt die in der Variable PURGE_TARGETS angegebenen Dateien aus dem Paket.

debug

fügt die benutzerdefinierten Debug-Flags (DEBUG_CFLAGS, DEBUG_CXXFLAGS) zu den korrespondierenden Buildflags hinzu. Wird dies in Verbindung mit der Option »strip« verwendet, wird ein separates Paket gebaut, das die Debug-Symbole enthält.

lto

aktiviert den Paketbau mittels Linkzeit-Optimierung. Fügt die in LTOFLAGS angegebenen Flags zu CFLAGS, CXXFLAGS und CXXFLAGS hinzu (oder -flto, falls LTOFLAGS leer ist).

INTEGRITY_CHECK=(Überprüfung1 …)

gibt die auszuführenden Prüfungen zur Dateiintegrität an. Es können mehrere Prüfungen angegeben werden, die sowohl die Erzeugung als auch die Prüfung beeinflussen. Gegenwärtig sind folgende Optionen verwendbar: ck, md5, sha1, sha224, sha256, sha384, sha512 und b2.

STRIP_BINARIES="--strip-all"

gibt die beim Strippen von binären Programmen zu verwendenden Optionen an. Siehe strip(1) für Details.

STRIP_SHARED="--strip-unneeded"

gibt die beim Strippen von gemeinsam genutzten Bibliotheken oder ausführbaren Programmen im PIE-Format zu verwendenden Optionen an. Siehe strip(1) für Details.

STRIP_STATIC="--strip-debug"

gibt die beim Strippen von statischen Bibliotheken zu verwendenden Optionen an. Siehe strip(1) für Details.

MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info} ...)

Wenn »zipman« im OPTIONS-Feld angegeben ist, weist diese Variable Makepkg an, wo nach komprimierten Handbüchern (man- und info-Seiten) gesucht werden soll. Wenn Sie Pakete bauen, die sich in /opt befinden, kann es sein, dass Sie das Verzeichnis zu diesem Feld hinzufügen müssen. HINWEIS: Fügen Sie zum Verzeichnisnamen keinen führenden Schrägstrich hinzu.

DOC_DIRS=(usr/{,share/}{doc,gtk-doc} ...)

Wenn »!docs« im OPTIONS-Feld angegeben ist, weist diese Variable Makepkg an, wo nach zu entfernenden Dokumentationsdateien zu schauen ist. Wenn Sie Pakete bauen, die sich in /opt befinden, kann es sein, das Sie das Verzeichnis zu diesem Feld hinzufügen müssen. HINWEIS: Fügen Sie zum Verzeichnisnamen keinen führenden Schrägstrich hinzu.

PURGE_TARGETS=(usr/{,share}/info/dir .podlist *.pod...)

Wenn »purge« im OPTIONS-Feld angegeben ist, weist diese Variable Makepkg an, welche Dateien aus dem Paket zu entfernen sind. Dies ist für Indexdateien nützlich, die von mehreren Paketen hinzugefügt werden.

DBGSRCDIR="/usr/src/debug"

Wenn »strip« und »debug« im OPTIONS-Feld angegeben sind, weist diese Variable Makepkg an, wo Quelldateien für installierte Programme platziert werden sollen. Die Programme werden in einer Weise modifiziert, dass sie für den Suchpfad des Debuggers auf dieses Verzeichnis verweisen.

PKGDEST="/Pfad/zum/Verzeichnis"

Wenn dieser Wert nicht gesetzt ist, dann werden Pakete standardmäßig im aktuellen Verzeichnis gespeichert (Ort des PKGBUILD(5)). Jedoch finden es viele Leute praktisch, alle Pakete an einer Stelle zu speichern. Hier können Sie den Pfad zu dieser Stelle festlegen. Eine häufig verwendete Stelle ist »/home/packages«.

SRCDEST="/Pfad/zum/Verzeichnis"

Wenn dieser Wert nicht gesetzt ist, dann werden heruntergeladene Dateien nur im aktuellen Verzeichnis gespeichert. Jedoch finden es viele Leute praktisch, alle Quellpakete an einer zentralen Stelle zu speichern, um das Aufräumen zu vereinfachen. Hier können Sie den Pfad zu dieser Stelle festlegen.

SRCPKGDEST="/Pfad/zum/Verzeichnis"

Wenn dieser Wert nicht gesetzt ist, dann werden Quellpaketdateien im aktuellen Verzeichnis gespeichert. Jedoch finden es viele Leute praktisch, alle Quellpakete an einer zentralen Stelle zu speichern, um das Aufräumen zu vereinfachen. Hier können Sie den Pfad zu diesem Ort festlegen.

LOGDEST="/Pfad/zum/Verzeichnis"

Wenn dieser Wert nicht gesetzt ist, werden Protokolldateien in das aktuelle Verzeichnis geschrieben. Hiermit wird der Ort der Protokollierung zentralisiert, was Aufräumen und Kompression erleichtert.

PACKAGER="John Doe <john@example.com>"

Dieser Wert wird verwendet, wenn eine Paketabfrage den Paketbauer ermitteln soll. Das angegebene Format ist für die PGP-Schlüsselsuche mittels WKD erforderlich. Es wird empfohlen, dies auf Ihren Namen und Ihre E-Mail-Adresse zu ändern.

COMPRESSGZ="(gzip -c -f -n)", COMPRESSBZ2="(bzip2 -c -f)", COMPRESSXZ="(xz -c -z -)", COMPRESSZST="(zstd -c -z -)", COMPRESSLZO"(lzop -q)", COMPRESSLRZ="(lrzip -q)", COMPRESSLZ4="(lz4 -q)", COMPRESSZ="(compress -c -f)", COMPRESSLZ="(lzip -c -f)"

legt den Befehl und die Optionen für die Komprimierung von kompilierten oder Quellpaketen im benannten Format fest.

PKGEXT=".pkg.tar.gz", SRCEXT=".src.tar.gz"

legt die beim Erstellen kompilierter oder Quellpakete verwendete Kompression fest. Zulässige Endungen sind .tar.gz, .tar.bz2, .tar.xz, .tar.zst, .tar.lzo, .tar.lrz, .tar.lz4, .tar.lz und .tar.Z, oder einfach .tar, um die Kompression gänzlich zu deaktivieren.

PACMAN_AUTH=()

gibt ein Befehlspräfix bei der Ausführung von Pacman mit Root-Rechten an. Falls nicht gesetzt, prüft Makepkg zunächst, ob sudo(8) verfügbar ist, dann su(1), und versucht das, was zuerst gefunden wird.

Falls vorhanden, wird %c durch die Shell-maskierte Form des auszuführenden Befehls ersetzt. Anderenfalls wird der auszuführende Befehl an den Authentifizierungsbefehl angehängt.

makepkg(8), pacman(8), PKGBUILD(5)

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