Files
chemenu/kb/entities/tools/makepkg.md
T
torben 3f99d6715f
CI / verify (push) Successful in 51s
feat: Link-Taxonomie u5 - Restkanten gelabelt, migrate done 4.0.0, Workshop geschlossen
Files changed:
- .wikitool-kb.json
- kb/entities/technologies/Arch Linux.md
- kb/entities/technologies/Disk Encryption.md
- kb/entities/technologies/Wine-Staging.md
- kb/entities/tools/AUR.md
- kb/entities/tools/GPG.md
- kb/entities/tools/Lutris.md
- kb/entities/tools/NotebookLM.md
- kb/entities/tools/Obsidian.md
- kb/entities/tools/OpenAI Codex.md
- kb/entities/tools/OpenCode.md
- kb/entities/tools/Pi.md
- kb/entities/tools/Proton.md
- kb/entities/tools/Steam.md
- kb/entities/tools/Wine.md
- kb/entities/tools/gdeploy.md
- kb/entities/tools/makepkg.md
- kb/entities/tools/pascalandy schema.md
- kb/log.md
- work/link-taxonomy-migration/README.md
- work/link-taxonomy-migration/glossary.md
- work/link-taxonomy-migration/plan.md
2026-09-02 23:06:08 +02:00

4.0 KiB

type, entity_type, tags, created, modified, related, sources, confidence, confidence_base, provenance, summary
type entity_type tags created modified related sources confidence confidence_base provenance summary
types/entity.md tool
arch-linux
build-tool
packaging
aur
2026-07-31 2026-08-29
part-of
Arch Linux
see-also
AUR
see-also
Aura
uses
GPG
Source - Arch Linux Cheat Sheet
0.95 0.95 sourced Build-Werkzeug von Arch Linux; wertet PKGBUILD-Dateien aus, um Quellcode zu übersetzen und installierbare Pakete zu erzeugen.

makepkg

Typ: tool

Beschreibung

makepkg ist das Build-Tool, das von Arch Linux verwendet wird, um Software aus dem Quellcode zu kompilieren und zu paketieren. Es liest PKGBUILD-Dateien, lädt die Quelle herunter, erstellt die Software und erzeugt .pkg.tar.zst-Pakete, die mit pacman installiert werden können.

Kerndaten

  • Zweck: Arch-Linux-Pakete aus PKGBUILD-Skripten erstellen
  • Status: Aktiv (Core-Arch-Linux-Tool)
  • Sprache: Bash
  • Paket: Teil des pacman-Pakets (base-devel Gruppe)
  • Dokumentation: https://man.archlinux.org/man/PKGBUILD.5

Features

  • PKGBUILD-Analyse: Liest Build-Anweisungen aus PKGBUILD-Dateien
  • Abhängigkeitsauflösung: Installiert automatisch Build-Abhängigkeiten
  • Quellverifikation: Validiert Prüfsummen heruntergeladener Quellen
  • Paketerstellung: Erzeugt installierbare .pkg.tar.zst-Pakete
  • Signaturunterstützung: Kann Pakete mit GPG signieren

Verwendung in CI/CD

In Docker-basierten CI/CD-Umgebungen erfordert makepkg besondere Handhabung, da es traditionell Root-Privilegien benötigt:

FROM archlinux:base-devel

# base-devel includes: gcc, make, autoconf, automake, binutils, bison, 
# fawk, flex, gawk, gettext, groff, libtool, m4, pacman, patch, 
# pkgconf, sed, texinfo

Umgehung der Root-Einschränkung

Das Problem: makepkg benötigt Root für:

  • Installation von Build-Abhängigkeiten
  • Erstellung von Paketen
  • Verwaltung der Paketdatenbank

Die Lösung:

  1. Einen nicht-Root-builder-Benutzer erstellen
  2. Passwortloses sudo gewähren: echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
  3. Zu Builder wechseln: su - builder -c "cd /workspace && makepkg"

Build-Workflow-Muster

jobs:
  build-arch-package:
    runs-on: linux-docker
    container:
      image: archlinux:base-devel
    steps:
      - name: Create builder user
        run: |
          useradd -m builder
          echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
          su - builder -c "cd /workspace && makepkg"
      
      - name: Upload artifacts
        uses: actions/upload-artifact@v3
        with:
          name: arch-packages
          path: /workspace/*.pkg.tar.zst

Häufige Befehle

# Build package in current directory
makepkg

# Verify source integrity
makepkg --verifysource

# Force rebuild (skip extraction and preparation)
makepkg --noextract --noprepare -f

# Generate .SRCINFO file
makepkg --printsrcinfo > .SRCINFO

# Install build dependencies
makepkg --syncdeps

Best Practices

  1. Immer Quellen verifizieren: Das Flag --verifysource verwenden
  2. --skipinteg nie verwenden: Dies umgeht Integritätsprüfungen
  3. .SRCINFO neu generieren: Immer makepkg --printsrcinfo > .SRCINFO verwenden, nie manuell bearbeiten
  4. Saubere Builds: Lokale Dateien vor dem Starten löschen (als abgelaufen betrachten)
  5. Zweistufiges Bauen:
    • Schritt 1: makepkg --verifysource -f - Quellintegrität überprüfen
    • Schritt 2: makepkg --noextract --noprepare -f - Bauen mit vorgezogenem src/

Beziehungen

  • Teil von: Arch Linux Paketverwaltungs-Ökosystem
  • Verwendet mit: AUR zum Erstellen von Community-Paketen
  • Funktioniert mit: Aura AUR-Helfer Workflow CI/CD-Infrastruktur
  • Signiert mit: GPG für Paketverifikation

Siehe auch

Beziehungen