MAKEPKG.CONF(5)

BEZEICHNUNG
makepkg.conf - Konfigurationsdatei für makepkg

ÜBERSICHT

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

BESCHREIBUNG

Konfigurationsoptionen für Makepkg werden in makepkg.conf gespeichert. Diese Datei wird eingelesen, so dass Sie alle gewünschten besonderen Compiler-Schalter 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. Bestimmte Ergänzungen (z.B. Bauschalter für zusätzliche Sprachen) können in /etc/makepkg.conf.d/*.conf abgelegt werden.

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.

OPTIONEN

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.

NPROC=""
    Setzt die Anzahl der für parallele Jobs in makepkg(8) zu verwendenden Prozessoren. Hinweis: Dies betrifft nicht die Parallelisierung von Aufgaben während »build()« und zugehörigen Funktionen.

CPPFLAGS="CPP-Schalter"
    gibt die für den C-Präprozessor verwendeten Schalter an; siehe CFLAGS für weitere Informationen.

CFLAGS="C-Schalter"
    gibt die für den C-Compiler verwendeten Schalter 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-Schalter.

CXXFLAGS="CXX-Schalter"
    gibt die für den C++-Compiler verwendeten Schalter an; siehe CFLAGS für weitere Informationen.

LDFLAGS="LD-Schalter"
    gibt die für den Linker verwendeten Schalter 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-Schalter.

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

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

DEBUG_CFLAGS="Debug-Schalter"
    gibt zusätzliche Compiler-Schalter 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-Schaltern.

DEBUG_CXXFLAGS="Debug-Cxx-Schalter"
    gibt für den C++-Compiler verwendete Debug-Schalter an; siehe DEBUG_CFLAGS für weitere Informationen.

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 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 …)
    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-Schalter (DEBUG_CFLAGS, DEBUG_CXXFLAGS) zu den korrespondierenden Bauschaltern 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 Schalter zu CFLAGS, CXXFLAGS und CXXFLAGS hinzu (oder -flto, falls LTOFLAGS leer ist).

    autodeps
        aktiviert die automatische Ergänzung von Bibliotheken zu den Felder »depends« und »provides«. Die Suchverzeichnisse werden über die nachfolgend definierte Variable LIB_DIRS gesteuert.

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}/{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.

LIB_DIRS=(lib:usr/lib …)
    Wenn »autodeps« und »debug« im OPTIONS-Feld angegeben sind, weist diese Variable Makepkg an, wo nach Bibliotheken gesucht werden soll, die im vorhergehenden Feld hinzugefügt werden sollen. Das Format ist »Präfix:Pfad«, wobei »provides« für Bibliotheken hinzugefügt werden, die im »Pfad« mit dem angegebenen Präfix ergänzt gefunden werden.

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 .pkg oder .src (für PKGEXT bzw. SRCEXT) gefolgt von einem aus .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.

SIEHE AUCH

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

Auf der Pacman-Website (https://archlinux.org/pacman/) finden Sie aktuelle Informationen zu Pacman und den zugehörigen Werkzeugen.

FEHLER

Fehler? Sie machen wohl Witze, es gibt keine Fehler in dieser Software. Nun ja, sollte unsere Annahme doch falsch sein, berichten Sie diese (auf Englisch) in dem Fehlererfassungssystem unter https://gitlab.archlinux.org/pacman/pacman/-/issues zusammen mit den konkreten Informationen wie Ihre Befehlszeile, die Art des Fehlers und sogar der Paketdatenbank, falls das hilft.

AUTOREN

Derzeitige Betreuer:

    • Allan McRae (allan@archlinux.org)

    • Andrew Gregory (andrew.gregory.8@gmail.com)

    • Morgan Adamiec (morganamilo@archlinux.org)

Bedeutende frühere Mitwirkende:

    • Judd Vinet (jvinet@zeroflux.org)

    • Aurelien Foret (aurelien@archlinux.org)

    • Aaron Griffin (aaron@archlinux.org)

    • Dan McGee (dan@archlinux.org)

    • Xavier Chantry (shiningxc@gmail.com)

    • Nagy Gábor (ngaba@bibl.u-szeged.hu)

    • Dave Reisner (dreisner@archlinux.org)

    • Eli Schwartz (eschwartz@archlinux.org)

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> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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: debian-l10n-german@lists.debian.org.