5.1 KiB
5.1 KiB
Project Document: NexusOS Package Management mit nip
Datum: 15. Juli 2025
Überblick
nip ist ein fortschrittlicher Paketmanager, der für eine modulare, reproduzierbare und leistungsstarke Linux-Distribution entwickelt wurde, inspiriert von den Prinzipien von NexusOS. Er nutzt bestehende Paket-Ökosysteme wie Pacman (Arch Linux) und Nix, um das System schnell zu bootstrapen, während er Pakete in ein natives .npk-Format konvertiert, um langfristige Reproduzierbarkeit und Konformität mit der ACUL-Lizenz zu gewährleisten.
Ziele
- Schnelles Bootstrapping: Verwende Pacman und Nix, um Software in eine GoboLinux-ähnliche Dateistruktur (
/Programs/<App>/<Version>/) zu installieren. - Natives Paketformat: Konvertiere installierte Pakete in
.npkmit KDL-Metadaten, BLAKE3-Hashes und ACUL-konformen Logs. - Modular und reproduzierbar: Stelle sicher, dass jedes Paket verifiziert, neu erstellt und über ein lokales Repository oder externe Plattformen wie GitHub geteilt werden kann.
- Zukunftssicher: Entwickle das System so, dass es erweiterbar ist, mit Plänen für Reverse-Konvertierung und volle Unterstützung nativer Pakete.
CLI-Syntax
Fremde Pakete graften
nip graft pacman htop
nip graft nix hello
- Installiert Pakete aus Pacman oder Nix in
/Programs/<App>/<Version>/. - Erstellt Symlinks in
/System/Index/für einfachen Zugriff.
Deklarative Installation
nip manifest foreign-packages.yaml
- Installiert mehrere Pakete deklarativ aus einer YAML-Datei:
graft: - source: pacman package: neofetch - source: nix package: htop version: unstable
In .npk konvertieren
nip convert htop
- Konvertiert ein installiertes Paket (z. B.
htop) in das.npk-Format. - Generiert:
htop.npk(Archiv)htop.npk.kdl(Metadaten)build.log,manifest.yaml,license.yaml
- Speichert in
~/.nip/repo/htop/3.2.1/.
Konformität verifizieren
nip verify htop.npk
- Überprüft Lizenz, Hashes und Metadaten auf ACUL-Konformität.
Paketursprung tracken
nip track htop
- Protokolliert die Quelle (Pacman, Nix usw.) des installierten Pakets.
Systemzustand sperren
nip lock
- Erstellt eine Lockfile (
nip.lock), die die exakten Versionen und Quellen aller installierten Pakete festhält, um volle Reproduzierbarkeit zu gewährleisten.
Dateistruktur
Lokale Repository-Struktur
~/.nip/repo/
└── htop/
└── 3.2.1/
├── htop.npk # Tarball der GoboLinux-strukturierten Dateien
├── htop.npk.kdl # KDL-Metadaten
├── build.log # Build-Details
├── manifest.yaml # Dateiliste + Checksums
├── license.yaml # ACUL-Lizenzinformationen
└── LICENSE-ACUL.txt # Lizenztext
Beispiel .npk.kdl
package "htop" {
version "3.2.1"
source "pacman"
checksum "blake3-abc123def4567890"
license "GPL-2.0"
description "Interactive process viewer"
files {
binary "/Programs/Htop/3.2.1/bin/htop"
manpage "/Programs/Htop/3.2.1/share/man/man1/htop.1"
}
}
Beispiel nip.lock
lockfile {
package "htop" {
version "3.2.1"
source "pacman"
checksum "blake3-abc123def4567890"
}
package "neofetch" {
version "7.1.0"
source "nix"
checksum "blake3-xyz987654321"
}
}
Implementierung
Phase 0: MVP Wrapper
- Graft aus Pacman: Lade mit
pacman -Sw, extrahiere und platziere in/Programs/. Status: Prototyp in Arbeit, erste Tests mitneofetcherfolgreich. - Graft aus Nix: Baue mit
nix build, verschiebe aus/nix/store/und platziere in/Programs/. Status: Geplant für Woche 2.
Phase 1: .npk-Erstellung
- Generiere KDL-Metadaten, BLAKE3-Hash und ACUL-erforderliche Dateien.
- Verpacke in
.npk(Tarball). Status: Grundgerüst fürnip convertwird entwickelt.
Phase 2: Verifizierung & Repository
- Implementiere
nip verifyfür Integrität und Konformität. - Verwalte das lokale Repository in
~/.nip/repo/. Status: Geplant nach Stabilisierung von Phase 1.
Phase 3: Lockfile-Unterstützung
- Implementiere
nip lock, um eine Lockfile zu erstellen, die den Systemzustand festhält. Status: Geplant nach Phase 2.
ACUL-Lizenzintegration
Jedes .npk muss enthalten:
LICENSE-ACUL.txtlicense.yaml(z. B.expression: ACUL-1.0)build.log(Quell-URIs, Hashes, Zeitstempel)manifest.yaml(Dateiliste, Checksums)
Nächste Schritte
- Teste den MVP: Führe
nip graft pacman htopaus und überprüfe die Installation in/Programs/. - Erweitere Metadaten: Erweitere
.npk.kdlum Abhängigkeiten. - Füge
nip verifyhinzu: Implementiere die Verifizierungslogik. - Implementiere
nip lock: Teste die Lockfile-Generierung für Reproduzierbarkeit. - Erweitere Quellen: Füge bei Bedarf weitere Ökosysteme hinzu (z. B. Nix in Woche 2).
Dieses Dokument beschreibt den aktuellen Stand des nip-Paketmanagers und bietet eine Roadmap für seine Entwicklung im NexusOS-ähnlichen System. Lass uns den Schwung beibehalten! 🚀