18ae28f918
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.
3.8 KiB
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 |
|
2026-07-31 | 2026-08-29 |
|
|
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-develGruppe) - 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:
- Einen nicht-Root-
builder-Benutzer erstellen - Passwortloses sudo gewähren:
echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers - 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
- Immer Quellen verifizieren: Das Flag
--verifysourceverwenden --skipintegnie verwenden: Dies umgeht Integritätsprüfungen- .SRCINFO neu generieren: Immer
makepkg --printsrcinfo > .SRCINFOverwenden, nie manuell bearbeiten - Saubere Builds: Lokale Dateien vor dem Starten löschen (als abgelaufen betrachten)
- Zweistufiges Bauen:
- Schritt 1:
makepkg --verifysource -f- Quellintegrität überprüfen - Schritt 2:
makepkg --noextract --noprepare -f- Bauen mit vorgezogenem src/
- Schritt 1:
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