Ist es wahr, dass NixOS keine dynamisch verknüpften Binärdateien direkt ausführen kann und dass ein Nix-Build geschrieben werden muss, um sie und ihre Abhängigkeiten zu verpacken?
Ja, du hast recht. Nix ist ein rein funktionaler Paketmanager und Umgebungsmanager, der für reproduzierbare Builds von Softwarepaketen auf verschiedenen Systemen und Plattformen entwickelt wurde. Es enthält nicht die Möglichkeit, dynamische Binärdateien oder dynamisch verknüpfte Bibliotheken auszuführen, ohne sie zuerst mit einem Nix-Build-Skript zu erstellen.

Um ein Paket mit einer dynamisch verknüpften Binärdatei in Nix zu verwenden, müsstest du einen Nix-Ausdruck (eine nix-build-Datei) schreiben, um den Quellcode zu kompilieren und eine statisch verknüpfte ausführbare Datei zu generieren oder eine "Nix-Shell" zu erstellen, die deine kompilierte ausführbare Datei als Teil ihrer Laufzeitumgebung verwendet. Dieser Prozess umfasst die Angabe aller Abhängigkeiten, die von der ausführbaren Datei und ihren Versionen benötigt werden, sowie aller erforderlichen Patches oder Änderungen, um alles korrekt zusammenarbeiten zu lassen.

Sobald du diese "Shell" erstellt hast, kann sie als Basis für andere Nix-Umgebungen verwendet oder zwischen Benutzern ausgetauscht werden, die dieselbe Systemkonfiguration auf ihren eigenen Maschinen installieren möchten. Das resultierende Paket enthält sowohl die ausführbare Datei als auch alle ihre Abhängigkeiten, um sicherzustellen, dass alles unabhängig von der Plattform, auf der das Paket installiert ist, korrekt und konsistent funktioniert.