b137359b90
Files changed: - kb/concepts/Denylist over Allowlist.md - kb/concepts/LLM Wiki Pattern.md - kb/concepts/SSD TRIM.md - kb/entities/people/E3DC GmbH.md - kb/entities/people/Vannevar Bush.md - kb/entities/projects/ha-core.md - kb/entities/projects/hacs-integration-blueprint.md - kb/entities/systems/AGENTS.md.md - kb/entities/systems/CLAUDE.md.md - kb/entities/systems/E3DC.md - kb/entities/systems/ENVIRONMENT.md.md - kb/entities/systems/Memex.md - kb/entities/systems/Tolkien Gateway.md - kb/entities/technologies/Arch Linux.md - kb/entities/technologies/Disk Encryption.md - kb/entities/technologies/Docker.md - kb/entities/technologies/Gitea Actions.md - kb/entities/technologies/Gitea.md - kb/entities/technologies/Go.md - kb/entities/technologies/Home Assistant.md - kb/entities/technologies/Kernel PM Governors.md - kb/entities/technologies/LVM.md - kb/entities/technologies/Linux Kernel.md - kb/entities/technologies/MQTT.md - kb/entities/technologies/OPC UA.md - kb/entities/technologies/Python.md - kb/entities/technologies/Rust.md - kb/entities/technologies/Wine GE.md - kb/entities/technologies/Wine-Staging.md - kb/entities/technologies/acpi-cpufreq.md - kb/entities/technologies/amd-pstate.md - kb/entities/technologies/iii Engine.md - kb/entities/tools/AUR.md - kb/entities/tools/Act Runner.md - kb/entities/tools/Agent Memory.md - kb/entities/tools/Aura.md - kb/entities/tools/Bottles.md - kb/entities/tools/ChatGPT.md - kb/entities/tools/Claude Code.md - kb/entities/tools/Codex CLI.md - kb/entities/tools/Dataview.md - kb/entities/tools/GPG.md - kb/entities/tools/GitHub Copilot.md - kb/entities/tools/Gitea MCP Server.md - kb/entities/tools/Lutris.md - kb/entities/tools/Marp.md - kb/entities/tools/Mistral Vibe.md - kb/entities/tools/NotebookLM.md - kb/entities/tools/Obsidian Web Clipper.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/Wine.md - kb/entities/tools/awesome-llm-wiki.md - kb/entities/tools/farzaa gist.md - kb/entities/tools/gdeploy.md - kb/entities/tools/makepkg.md - kb/entities/tools/pascalandy schema.md - kb/entities/tools/qmd.md - kb/entities/tools/wikitool.md - kb/log.md - work/link-taxonomy-migration/glossary.md
4.0 KiB
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 |
|
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
Siehe auch
- Arch Linux
- AUR
- Aura
- GPG
- https://wiki.archlinux.org/title/makepkg
- https://man.archlinux.org/man/makepkg.8
Beziehungen
- part-of: Arch Linux
- AUR
- Aura
- uses: GPG