MAKEPKG(8) Pacman-Handbuch MAKEPKG(8) BEZEICHNUNG makepkg - Paketbauwerkzeug UBERSICHT makepkg [Optionen] [UMGVAR=Wert] [UMGVAR+=Wert] BESCHREIBUNG makepkg ist ein Skript zur Automatisierung des Paketbaus. Das Skript benotigt eine zum Paketbau fahige *nix-Plattform sowie ein benutzerdefiniertes Bauskript fur jedes Paket, das gebaut werden soll (als PKGBUILD bekannt). Siehe PKGBUILD(5) fur Details zur Erstellung Ihrer eigenen Bauskripte. Der Vorteil eines skriptbasierten Bauvorgangs ist, das die Arbeit nur einmal getan werden muss. Sobald Sie das Bauskript fur ein Paket haben, erledigt makepkg den Rest: Es ladt die Quellen herunter und uberpruft sie, schaut nach Abhangigkeiten, konfiguriert die Einstellungen zum Bauvorgang, baut das Paket, installiert es in eine temporare Systemwurzel, nimmt Anpassungen vor, erzeugt Metainformationen und paketiert letztendlich alles, so dass es von Pacman verarbeitet werden kann. Hinweis makepkg verwendet standardmassig Ihre gegenwartige Locale-Einstellung und setzt diese beim Bau von Paketen nicht zuruck. Sollten Sie die Ausgaben des Bauvorgangs an andere weitergeben wollen, zum Beispiel wenn Sie Hilfe suchen oder fur andere Zwecke, sollten Sie den Befehl >>LC_ALL=C makepkg<< aufrufen, damit die Protokolle und Ausgaben nicht lokalisiert werden. OPTIONEN -A, --ignorearch ignoriert ein fehlendes oder unvollstandiges >>arch<<-Feld im Bauskript. Dies kann hilfreich sein, wenn Pakete erneut aus den Quellen gebaut werden, wenn die Datei PKGBUILD nicht mehr vollstandig auf dem neuesten Stand ist und nicht mit einem Feld arch=('Ihre_Architektur') geandert wurde. -c, --clean loscht die ubriggebliebenen Arbeitsdateien und -verzeichnisse nach einem erfolgreichen Bauvorgang. --config verwendet eine alternative Konfigurationsdatei anstelle der voreingestellten /etc/makepkgconf. -d, --nodeps fuhrt keine Abhangigkeitsuberprufung aus. Auf diese Weise konnen Sie samtliche benotigten Abhangigkeiten ausser Kraft setzen und ignorieren. Allerdings stehen die Chancen gut, dass dies den Bauprozess scheitern lasst, falls nicht alle Abhangigkeiten installiert sind. -e, --noextract entpackt keine Quelldateien und fuhrt die prepare()-Funktion nicht aus, falls vorhanden; verwendet jegliche bereits vorhandene Quelldateien im Verzeichnis $srcdir/. Dies ist nutzlich, wenn Sie den Code im Verzeichnis $srcdir/ manuell patchen oder anderweitig anpassen und daraus das Paket erstellen wollen. Denken Sie aber daran, dass das Erzeugen eines Patches die bessere Losung sein kann, wenn auch andere in der Lage sein sollen, Ihre Datei PKGBUILD zu nutzen. --verifysource ladt jede der Dateien im >>source<<-Feld des PKGBUILDs herunter, falls notwendig, und fuhrt die Integritatsprufungen aus. Es wird nichts entpackt oder gebaut. Die im PKGBUILD angegebenen Abhangigkeiten werden nicht verarbeitet, es sei denn, --syncdeps wurde ubergeben. Dies ist fur aufeinanderfolgende Offline-Bauvorgange nutzlich. -f, --force erlaubt das Uberschreiben eines gebauten Pakets. Normalerweise baut Makepkg kein Paket, falls ein solches bereits im Verzeichnis PKGDEST existiert (konfiguriert in makepkg.conf(5)). PKGDEST ist in der Voreinstellung das aktuelle Verzeichnis. -g, --geninteg ladt jede der Dateien im >>source<<-Feld des PKGBUILDs herunter, falls notwendig und fuhrt die Integritatsprufungen aus. Die ausgefuhrten Integritatsprufungen werden durch die vorhandenen Anweisungen im PKGBUILD bestimmt. Falls diese fehlen, wird auf den Wert des Felds INTEGRITY_CHECK in makepkg.conf(5) ausgewichen. Diese Ausgabe kann fur die Uberprufung der Quellen mittels >>makepkg -g >> PKGBUILD<< in Ihren PKGBUILD umgeleitet werden. --skipinteg fuhrt keine Integritatsprufung (Prufsumme und PGP) von Quelldateien aus. --skipchecksums verifiziert keine Prufsummen von Quelldateien. --skippgpcheck verifiziert keine PGP-Signaturen von Quelldateien. -h, --help gibt die Syntax und Befehlszeilenoptionen aus. --holdver aktualisiert bei der Verwendung von Quellen aus Versionsverwaltungssystemen (VCS, siehe PKGBUILD(5)) die aktuell ausgecheckten Quellen nicht auf die letzte Revision. -i, --install installiert oder aktualisiert das Paket mit pacman(8) nach einem erfolgreich abgeschlossenen Bauvorgang. -L, --log aktiviert die Protokollierung. Mithilfe des Programms tee wird die Ausgabe jeder PKGBUILD-Funktion sowohl an die Konsole gesendet als auch in einer Datei namens >>pkgbase-pkgver-pkgrel-arch-.log<< im Bauverzeichnis gespeichert. Wie vorher bereits erwahnt, werden die Protokolle lokalisiert, so dass Sie die Locale entsprechend anpassen sollten, wenn Sie die Ausgabe an andere weitergeben wollen. -m, --nocolor unterbindet die farbliche Darstellung der Ausgaben. -o, --nobuild ladt Dateien herunter und entpackt diese, fuhrt die prepare()-Funktion aus, aber baut kein Paket. Dies ist in Verbindung mit der Option --noextract nutzlich, wenn Sie die Dateien in $srcdir/ vor dem Bau bearbeiten wollen. -p liest das angegebene >>Bauskript<< anstelle des vorgegebenen PKGBUILD, siehe PKGBUILD(5). Das Bauskript muss sich in dem Verzeichnis befinden, aus dem Makepkg aufgerufen wird. -r, --rmdeps entfernt nach erfolgreichem Bau alle Abhangigkeiten, die Makepkg im Zuge der automatischen Abhangigkeitsauflosung und Installation mit -s installiert hat. -R, --repackage paketiert den Inhalt neu, ohne das Paket tatsachlich neu zu bauen. Dies ist ist in solchen Fallen nutzlich, wenn Sie beispielsweise in Ihrem PKGBUILD eine Abhangigkeit oder Datei vergessen haben, aber sich der Bau ansonsten nicht geandert hat. -s, --syncdeps installiert fehlende Abhangigkeiten mittels Pacman. Wenn Bau- oder Laufzeitabhangigkeiten nicht gefunden werden, versucht Pacman, diese aufzulosen. Wenn dies erfolgreich ist, werden die fehlenden Pakete heruntergeladen und installiert. -S, --source baut das Paket nicht wirklich, sondern lediglich einen Quellen-Tarball, der keine Quellen einbezieht, die uber eine Download-URL geholt werden konnen. Dies ist nutzlich, wenn Sie einen einzelnen Tarball an ein anderes Programm weitergeben wollen, zum Beispiel eine Chroot-Umgebung, eine ferne Paketbauumgebung oder einen Tarball hochladen wollen. Weil dabei Integritatsprufungen durchgefuhrt werden, mussen alle Quelldateien des Pakets vorhanden oder herunterladbar sein. -V, --version zeigt Versionsinformationen an. -C, --cleanbuild entfernt das Verzeichnis $srcdir vor dem Bau des Pakets. --allsource baut das Paket nicht wirklich, sondern lediglich einen Quellen-Tarball, der auch Quellen einbezieht, die uber eine Download-URL geholt werden konnen. Dies ist nutzlich, wenn Sie einen einzelnen Tarball an ein anderes Programm weitergeben wollen, zum Beispiel eine Chroot-Umgebung oder eine fern Paketbauumgebung. Es werden ausserdem die Bedingungen der GPL fur die Weitergabe von Binarpaketen erfullt. --check fuhrt die check()-Funktion in PKGBUILD aus, wobei die Einstellung in makepkg.conf(5) ausser Kraft gesetzt wird. --noarchive erstellt am Ende des Bauvorgangs kein Archiv. Dies ist beispielsweise zum Testen der package()-Funktion nutzlich oder wenn Ihre Zieldistribution Pacman nicht verwendet. --nocheck fuhrt die check()-Funktion im PKGBUILD nicht aus und verarbeitet auch keine >>checkdepends<< (Test-Abhangigkeiten). --noprepare fuhrt die prepare()-Funktion im PKGBUILD nicht aus. --sign signiert das resultierende Paket mit GPG, wobei die Einstellung in makepkg.conf(5) ausser Kraft gesetzt wird. --nosign erzeugt keine Signatur fur das gebaute Paket. --key gibt einen Schlussel an, der zum Signieren von Paketen verwendet wird, wobei die GPGKEY-Einstellung in makepkg.conf(5) ausser Kraft gesetzt wird. Wenn hier oder in der genannten Konfigurationsdatei nichts angegeben ist, wird der Standardschlussel aus dem Schlusselbund verwendet. --noconfirm verhindert, dass Pacman auf Benutzereingaben wartet, bevor mit Operationen fortgefahren wird (wird an Pacman ubergeben). --needed weist Pacman an, ein Ziel nicht erneut zu installieren, wenn es bereits auf dem neuesten Stand ist (wird an Pacman ubergeben und mit -i / --install verwendet). --asdeps installiert Pakete nicht explizit (wird mit -i / --install verwendet). --noprogressbar verhindert, dass Pacman einen Fortschrittsbalken anzeigt (wird an Pacman ubergeben). Dies ist nutzlich, wenn Sie die Ausgabe von Makepkg in eine Datei umleiten. --packagelist listet die Namen der Dateien des Pakets auf, die erstellt werden wurden, ohne das Paket zu bauen. Die aufgelisteten Dateinamen schliessen PKGDEST und PKGEXT ein. --printsrcinfo erzeugt eine SRCINFO-Datei und leitet diese in die Standardausgabe. WEITERE FUNKTIONALITATEN Makepkg unterstutzt den Bau von Entwicklungsversionen von Paketen, ohne dass Sie die >>pkgver<< im PKGBUILD manuell aktualisieren mussen. Dies wurde fruher durch das separate Dienstprogramm versionpkg erledigt. Siehe PKGBUILD(5) fur Details zur Einrichtung eines Entwicklungs-PKGBUILDs. REPRODUZIERBARKEIT Makepkg wurde mit dem Ziel der Kompatibilitat zu >>Reproducible Builds<< (reproduzierbare Bauvorgange) entwickelt. Sofern die Umgebungsvariable SOURCE_DATE_EPOCH gesetzt ist, wird diese an die Unterprozesse exportiert und die Zeitstempel der Anderungen in Quelldatei und Paket-Metadaten werden vereinheitlicht, basierend auf dem angegebenen Zeitstempel. Wenn die Umgebungsvariable SOURCE_DATE_EPOCH nicht gesetzt ist, verwendet Makepkg zwar intern seinen eigenen Startzeitpunkt, vereinheitlicht aber die Zeitstempel der Quelldateien vor dem Bau nicht. UMGEBUNGSVARIABLEN PACMAN Der Befehl, der zur Uberprufung auf fehlende Abhangigkeiten und zur Installation und Entfernung von Paketen verwendet wird. Die Pacman-Operationen -Qq, -Rns, -S, -T und -U mussen von diesem Befehl unterstutzt werden. Wenn die Variable nicht gesetzt oder leer ist, dann weicht Makepkg auf >>pacman<< aus. MAKEPKG_CONF="/Pfad/zur/Datei" Verwendet eine alternative Konfigurationsdatei anstelle der voreingestellten /etc/makepkg.conf. PKGDEST="/Pfad/zum/Verzeichnis" Verzeichnis, in dem die resultierenden Pakete gespeichert werden. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. SRCDEST="/Pfad/zum/Verzeichnis" Verzeichnis, in dem die heruntergeladenen Quellen gespeichert werden. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. SRCPKGDEST="/Pfad/zum/Verzeichnis" Verzeichnis, in dem die Quellpaketdateien gespeichert werden. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. LOGDEST="/Pfad/zum/Verzeichnis" Verzeichnis, in dem die erzeugten Protokolldateien gespeichert werden. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. PACKAGER="John Doe " Zeichenkette, die den Ersteller des resultierenden Pakets identifiziert. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. BUILDDIR="/Pfad/zum/Verzeichnis" Verzeichnis, in dem das Paket gebaut wird. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. CARCH="(i686|x86_64)" erzwingt den Bau fur eine spezifische Architektur. Dies ist fur Cross-Kompilierung nutzlich. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. PKGEXT=".pkg.tar.gz", SRCEXT=".src.tar.gz" Legt den zum Bau von kompilierter oder Quellpakete verwendeten Kompressionsalgorithmus fest. Dies setzt den in makepkg.conf(5) definierten entsprechenden Wert ausser Kraft. GNUPGHOME="/Pfad/zum/Verzeichnis" Verzeichnis, in dem der GPG-Schlusselbund zum Signieren des gebauten Pakets gespeichert ist. GPGKEY="Schlusselkennung" Gibt einen zum Signieren von Paketen zu verwendenden Schlussel an. Dies setzt die in makepkg.conf(5) definierten GPGKEY-Einstellung ausser Kraft. SOURCE_DATE_EPOCH="" Wird fur reproduzierbare Bauvorgange verwendet. BUILDTOOL="" Der Name des Werkzeug-Okosystems, mit dem die Bauumgebung eingerichtet wird. Damit wird die Ausfuhrung reproduzierbarer Bauvorgange (>>reproducible builds<<) konfiguriert, zum Beispiel die verwendete Datei makepkg.conf(5). BUILDTOOLVER="" Die Version des verwendeten $BUILDTOOL. KONFIGURATION In makepkg.conf(5) finden Sie weitere Details zur Konfiguration von Makepkg mit Hilfe der Datei makepkg.conf. FEHLER Beim Beenden gibt Makepkg einen der folgenden Fehlercodes aus. 0 Normales Beenden. 1 Fehler mit unbekannter Ursache. 2 Fehler in der Konfigurationsdatei. 3 Benutzer hat eine unzulassige Option angegeben. 4 Fehler in einer durch den Benutzer angegebenen Funktion im PKGBUILD. 5 Erstellung eines brauchbaren Pakets ist fehlgeschlagen. 6 Eine Quelle oder im PKGBUILD angegebene externe Datei fehlt. 7 Das Verzeichnis PKGDIR fehlt. 8 Abhangigkeiten konnten nicht installiert werden. 9 Abhangigkeiten konnten nicht entfernt werden. 10 Der Benutzer hat versucht, Makepkg mit Systemverwalterrechten auszufuhren. 11 Dem Benutzer fehlen die Zugriffsrechte, um ein Paket am gegebenen Ort zu bauen oder zu installieren. 12 Fehler bei der Auswertung des PKGBUILD. 13 Es wurde bereits ein Paket gebaut. 14 Die Installation des Pakets ist fehlgeschlagen. 15 Zur Ausfuhrung von Makepkg erforderliche Programme fehlen. 16 Der angegebene GPG-Schlussel existiert nicht oder das Verschlusseln des Pakets ist fehlgeschlagen. SIEHE AUCH makepkg.conf(5), PKGBUILD(5), pacman(8) Auf der Pacman-Website finden Sie aktuelle Informationen zu Pacman und den zugehorigen Werkzeugen. FEHLER 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 moglich in der Fehlerdatenbank von Archlinux im Bereich >>Pacman<<. AUTOREN Derzeitige Betreuer: o Allan McRae o Andrew Gregory o Eli Schwartz o Morgan Adamiec Bedeutende fruhere Mitwirkende: o Judd Vinet o Aurelien Foret o Aaron Griffin o Dan McGee o Xavier Chantry o Nagy Gabor o Dave Reisner Informationen zu weiteren Mitwirkenden erhalten Sie, wenn Sie den Befehl git shortlog -s im Git-Repositorium pacman.git aufrufen. UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Pacman 6.0.2 6. Februar 2024 MAKEPKG(8)