Void Linux: The Independent Alternative (Artikel 199)
Analyse von Void Linux als eigenständige Distribution. Erfahren Sie alles über das runit Init-System, den Paketmanager XBPS und die Vorzüge eines 'Systemd-freien' Alltags.
# Void Linux: Radikale Unabhängigkeit und Geschwindigkeit
TL;DR / Management Summary Void Linux ist keine “gewöhnliche” Distribution. Sie basiert weder auf Arch, Debian noch RHEL. Sie wurde von Grund auf neu entwickelt. Die Highlights sind der blitzschnelle Paketmanager XBPS und das extrem einfache Init-System runit. Void bietet Admins die Wahl zwischen
glibcundmuslund verzichtet konsequent auf systemd. Ideal für Puristen, die ein stabiles Rolling Release suchen, das die volle Kontrolle über jeden Prozess bietet.
# 1. Einführung & Architektur
Das Fundament der Unabhängigkeit.
Void Linux folgt einer klaren Architektur:
- XBPS: Der “X Binary Package System” Manager. Bekannt für schnelle Abhängigkeitsauflösung.
- runit: Ein Init-System, das auf simplen Unix-Prinzipien basiert (Ordner-basiertes Service Management).
# Der Void Stack (Mermaid)
graph TD
A[Void Linux Core] --> B[Init System: runit]
A --> C[Package Manager: XBPS]
B --> D[Service: /var/service/]
C --> E[Repositories: glibc / musl]
subgraph "Service Control"
D -->|Symlink| F[Active Service]
F --> G[Process: nginx/sshd]
end
# 2. XBPS: Der Paketmanager
Schneller als der Schatten.
XBPS ist in C geschrieben und auf Performance getrimmt.
| Aufgabe | Befehl |
|---|---|
| System Update | xbps-install -Su |
| Installieren | xbps-install <name> |
| Suchen | xbps-query -Rs <begriff> |
| Deinstallieren | xbps-remove -R <name> |
| Verwaiste Pakete | xbps-remove -O |
# 3. runit: Dienste verwalten
Einfachheit in Ordnerform.
Dienste in Void sind keine komplexen Scripte, sondern Verzeichnisse unter /etc/sv/. Ein Dienst wird aktiviert, indem man ihn nach /var/service/ verlinkt.
# Einen Dienst aktivieren
sudo ln -s /etc/sv/nginx /var/service/
# runit bemerkt den Link sofort und startet den Dienst
# Management mit sv
# Status prüfen
sudo sv status nginx
# Neustart
sudo sv restart nginx
# 4. Day-2 Operations: glibc vs. musl
Die Qual der Wahl.
Void ist eine der wenigen Distributionen, die zwei komplette Ökosysteme pflegt.
- glibc Version: Maximale Kompatibilität zu proprietärer Software (Nvidia, Steam, Java).
- musl Version: Wie Alpine Linux. Minimalistischer, sicherer, aber problematisch bei Binaries von Drittanbietern.
# 5. Troubleshooting & “War Stories”
Wenn runit hakt.
# Story 1: “Der Zombie-Dienst”
Symptom: Ein Dienst wird immer wieder neu gestartet, obwohl er gestoppt werden sollte.
Ursache: runit ist so konzipiert, dass ein Dienst immer läuft, solange der Link in /var/service/ existiert. sv stop stoppt ihn nur temporär.
Lösung: Um einen Dienst dauerhaft zu deaktivieren, müssen Sie den Symlink löschen:
sudo rm /var/service/nginx.
# Story 2: “Das hängende tty”
Symptom: Der Server bootet, aber man kann sich nicht einloggen, da kein Login-Prompt (Getty) erscheint.
Ursache: Der agetty Dienst in /var/service hat einen Fehler oder greift auf das falsche TTY zu.
Lösung: Loggen Sie sich via SSH ein (falls aktiv) und prüfen Sie die /etc/sv/agetty-ttyX/run Scripte. In Void ist alles ein Shell-Skript, was die Fehlersuche enorm erleichtert.
# 6. Fazit & Empfehlung
- Wahl: Nutzen Sie Void Linux für minimalistische Desktops oder spezialisierte Server, bei denen Sie kein systemd wollen.
- Performance: XBPS und runit sorgen für extrem niedrige Bootzeiten (< 5 Sekunden).
- Wartung: Als Rolling Release muss Void regelmäßig geupdatet werden, ist aber erfahrungsgemäß weniger fehleranfällig bei Updates als Arch Linux.
# Anhang: Cheatsheet
| Aufgabe | Void / CLI Befehl |
|---|---|
| System aktuell halten | xbps-install -Su |
| Paket-Inhalt sehen | xbps-query -f <name> |
| Dienst-Verzeichnis | /etc/sv/ |
| Aktive Dienste | ls /var/service/ |
| Version prüfen | cat /etc/os-release |
| Kernel Update | vkpurge rm all (Alte Kernel löschen) |
| Binary Pakete bauen | xbps-src (ähnlich wie AUR) |