Files
chemenu/kb/entities/tools/makepkg.md
T
torben 18ae28f918
CI / verify (push) Failing after 32s
Release / release (push) Successful in 38s
Chemenu 2.1.0 - deterministischer Wissenskompiler
Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki:
raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht
tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren
Grenzen in Code durchgesetzt sind statt im Prompt.

Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige
Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses
Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44
Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist.

Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den
Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er
dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs.

Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte.
Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet -
siehe NOTICE.
2026-09-01 16:26:14 +02:00

3.8 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
Arch Linux
AUR
Aura
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