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.
136 lines
4.7 KiB
Markdown
136 lines
4.7 KiB
Markdown
---
|
|
type: types/entity.md
|
|
entity_type: technology
|
|
tags: [operating-system, linux, arch, package-management, encryption, storage]
|
|
created: 2026-07-25
|
|
modified: 2026-08-29
|
|
related: [Docker, Gitea Actions, AUR, makepkg, Aura, GPG, Disk Encryption, LVM, Wine]
|
|
sources: [Source - Arch Linux Cheat Sheet]
|
|
confidence: 0.90
|
|
confidence_base: 0.90
|
|
provenance: sourced
|
|
summary: Schlanke Rolling-Release-Linux-Distribution, genutzt als Basis für CI/CD-Paketbau-Umgebungen und Infrastruktur.
|
|
---
|
|
# Arch Linux
|
|
|
|
**Typ:** Technology (Betriebssystem)
|
|
|
|
## Beschreibung
|
|
|
|
Arch Linux ist eine leichte, Rolling-Release-Linux-Distribution, bekannt für ihre Einfachheit, Minimalismus und benutzerorientiertes Design. In der CI/CD-Infrastruktur wird Arch Linux als Basis-Image für Szenario A (Arch-Paketbau) verwendet.
|
|
|
|
Arch Linux bietet hervorragende Unterstützung für Disk-Verschlüsselung (dm-crypt/LUKS), LVM und SSD-TRIM-Optimierung und eignet sich ideal für Entwicklungs- und Produktionsumgebungen mit Sicherheitsanforderungen.
|
|
|
|
## Kerndaten
|
|
|
|
- **Typ:** Linux-Distribution
|
|
- **Release-Modell:** Rolling Release
|
|
- **Status:** Aktiv
|
|
- **Zweck:** Paketbau-Umgebung
|
|
- **Paketmanager:** pacman
|
|
- **Build-Tool:** [[makepkg]]
|
|
- **AUR-Helfer:** [[Aura]]
|
|
- **Verschlüsselung:** [[Disk Encryption]] (dm-crypt/LUKS)
|
|
|
|
## Verwendung in der Infrastruktur
|
|
|
|
### Szenario A: Arch-Paketbau
|
|
- **Basis-Image:** `archlinux:base-devel`
|
|
- **Zweck:** Arch-Linux-Pakete bauen
|
|
- **Herausforderung:** `makepkg` erfordert Root-Rechte
|
|
- **Lösung:** Erstelle im Workflow einen Benutzer `builder` ohne Root-Rechte
|
|
|
|
### Docker-Image
|
|
```dockerfile
|
|
FROM archlinux:base-devel
|
|
|
|
# Build-Kontext enthält base-devel-Pakete:
|
|
# - gcc, make, autoconf, automake, binutils, bison, fawk, flex,
|
|
# gawk, gettext, groff, libtool, m4, pacman, patch, pkgconf, sed, texinfo
|
|
```
|
|
|
|
### Workflow-Muster
|
|
```yaml
|
|
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
|
|
```
|
|
|
|
## Workaround für Root-Beschränkung
|
|
|
|
### Das Problem
|
|
`makepkg` (Arch's Build-Tool) erfordert traditionell Root für:
|
|
- Installation von Build-Abhängigkeiten
|
|
- Erstellung von Paketen
|
|
- Verwaltung der Paketdatenbank
|
|
|
|
### Die Lösung
|
|
Der Workflow erstellt einen Benutzer `builder` ohne Root-Rechte und:
|
|
1. Gewährt passwortloses sudo via `/etc/sudoers`
|
|
2. Wechselt zu Benutzer `builder` mit `su - builder`
|
|
3. Führt `makepkg` im Builder-Kontext aus
|
|
4. Lädt entstehende `.pkg.tar.zst`-Dateien als Artifacts hoch
|
|
|
|
## Warum nicht Alpine?
|
|
|
|
Für Szenario A ist Alpine Linux nicht geeignet, da:
|
|
1. **Anderes Paketformat:** Alpine verwendet `.apk`-Pakete, nicht Arch's `.pkg.tar.zst`
|
|
2. **Inkompatible Build-Tools:** `makepkg` ist Arch-spezifisch
|
|
3. **musl libc:** Obwohl nicht direkt ein Problem für `makepkg`, ist es nicht kompatibel mit 1Password CLI
|
|
|
|
## Beziehungen
|
|
|
|
(Szenario A-Workflows)
|
|
- **Läuft in:** [[Docker]]-Containern
|
|
(für verschiedene Build-Szenarien)
|
|
- **Teil von:** [[Gitea Actions]]-Workflow-Ökosystem
|
|
|
|
## Hinweis zum Artifact-Upload
|
|
|
|
### Gitea Actions v4 Einschränkung
|
|
- **Problem:** Gitea Actions v4 unterstützt Artifact-Upload/Download nicht vollständig
|
|
- **Symptom:** GHES (GitHub Enterprise Server)-Fehler bei Verwendung von v4
|
|
- **Workaround:** Verwende `actions/upload-artifact@v3` explizit
|
|
- **Auswirkung:** Szenario A muss auf v3 pinnen, bis Gitea Actions v4 reif ist
|
|
|
|
## Speicher- und Verschlüsselungsfunktionen
|
|
|
|
Arch Linux hat robuste Unterstützung für Speichertechnologien:
|
|
|
|
- **Disk-Verschlüsselung:** Vollständige Unterstützung für [[Disk Encryption]] via dm-crypt und LUKS
|
|
- **LVM:** Integrierte [[LVM]]-Unterstützung (Logical Volume Manager)
|
|
- **SSD TRIM:** Hervorragende [[SSD TRIM]]-Unterstützung, auch für verschlüsselte SSDs
|
|
- **Dateisysteme:** Unterstützt ext4, XFS, Btrfs und andere moderne Dateisysteme mit TRIM
|
|
- **Anwendungskompatibilität:** Unterstützt [[Wine]] zum Ausführen von Windows-Anwendungen, mit Konfigurationsoptionen zur Verhinderung von systemweiten Dateibindungen
|
|
|
|
## Siehe auch
|
|
|
|
- CI-VM mit Arch-basierten Builds
|
|
- [[Docker]] - Container-Laufzeit
|
|
- [[Gitea Actions]] - CI/CD-Plattform
|
|
- Alternatives Basis-Image
|
|
Konzept
|
|
- [[AUR]] - Arch User Repository
|
|
- [[makepkg]] - Build-Tool
|
|
- [[Aura]] - AUR-Helfer
|
|
- [[GPG]] - GNU Privacy Guard
|
|
- [[Disk Encryption]] - dm-crypt/LUKS
|
|
- [[LVM]] - Logical Volume Manager
|
|
- [[SSD TRIM]] - SSD-Optimierung
|
|
- [[Source - Arch Linux Cheat Sheet]]
|
|
|