Das Paketverwaltungssystem GNU Guix 1.5 und das auf ihm basierende Betriebssystem sind verfügbar.

Nach über drei Jahren Entwicklung wurde der Paketmanager GNU Guix 1.5 und das darauf basierende GNU/Linux-Distro – Guix System – veröffentlicht. Zukünftig sollen neue Releases von GNU Guix einmal jährlich erscheinen. Installationsabbilder für USB-Sticks (972 MB) sowie für den Einsatz in Virtualisierungssystemen (1,4 GB) wurden bereitgestellt. Unterstützt werden die Architekturen i686, x86_64, Power9, armv7, riscv64 und aarch64.

Das Distro kann sowohl als eigenständiges Betriebssystem in Virtualisierungssystemen, in Containern und auf herkömmlicher Hardware installiert werden, als auch in bereits installierten GNU/Linux-Distributionen als Plattform für die Bereitstellung von Anwendungen genutzt werden. Nutzer profitieren von Funktionen wie Abhängigkeitsmanagement, reproduzierbaren Builds, rootfreier Ausführung, Rollbacks auf frühere Versionen bei Problemen, Konfigurationsverwaltung und Klonen von Umgebungen (Erstellung einer exakten Kopie der Softwareumgebung auf anderen Rechnern).

Hauptneuheiten:

  • Experimentelle Unterstützung für den GNU Hurd-Kernel (x86_64-gnu) wurde hinzugefügt. Der Installer bietet die Option, Hurd statt des Linux-Kernels zu verwenden.
  • Die Unterstützung für die RISC-V-Architektur (riscv64-linux) wurde hinzugefügt.
  • Die GNOME-Sitzung wurde auf die Version GNOME 46 aktualisiert (zuvor war GNOME 42 enthalten) und verwendet nun standardmäßig Wayland. Die Modularität des Dienstes gnome-desktop-service-type wurde erweitert, sodass nun die Liste der standardmäßig installierten GNOME-Anwendungen konfiguriert werden kann.
  • Ein neuer Servicetyp plasma-desktop-service-type wurde hinzugefügt, um eine Umgebung mit dem KDE Plasma 6.5 Desktop bereitzustellen.
    Das Paketverwaltungssystem GNU Guix 1.5 und das auf ihm basierende Betriebssystem sind verfügbar.
  • Es besteht die Möglichkeit, den Hintergrundprozess Guix ohne Root-Berechtigungen zu starten. Bei der Installation in Distributionen, die nicht Guix System sind, wird standardmäßig der Rootless-Modus verwendet. In bestehenden Installationen kann dieser Modus aktiviert werden, indem „(privileged? #f)“ in der guix-configuration festgelegt wird. Dieser Modus wird unter Verwendung von Benutzer-Namensräumen (user namespace) und AppArmor-Profilen realisiert.
  • Der Befehl „guix graph“ unterstützt nun Backends für GraphML und CycloneDX JSON, was die Generierung vollständiger SBOMs (Software Bill of Materials) ermöglicht.
  • Dem Befehl „guix shell“ wurden die Optionen „—nesting“ zur Verwendung von Guix in Containern und „—emulate-fhs“ zum Ausführen von Anwendungen mit einer Dateisystemstruktur hinzugefügt, die der FHS-Spezifikation (Filesystem Hierarchy Standard) entspricht.
  • In das Team "guix pack" wurden Backend-Module für die Erstellung von Paketen im RPM- und AppImage-Format integriert, die in anderen Distributionen ohne Guix verwendet werden können.
  • Die Funktion "guix locate" wurde implementiert, um Pakete zu finden, die die angegebene Datei enthalten.
  • Eine neue Version des GNU Shepherd 1.0 Init-Systems wurde integriert, die Unterstützung für Dienste bietet, die regelmäßig Befehle oder Code in Scheme gemäß einem festgelegten Zeitplan ausführen. Die Möglichkeit, den Linux-Kernel mithilfe des kexec-Mechanismus neu zu starten, wurde hinzugefügt. Neue Dienste wurden implementiert: log-rotation (rotation und Löschung veralteter Logs), system-log (Ersatz von syslogd), timer (Ausführung von Befehlen zu festgelegten Zeiten) und transient (Ausführung von Befehlen im Hintergrund). In Guix werden die Dienste system-log und log-rotation anstelle von syslogd und Rottlog verwendet.
  • Eine vollständige Unterstützung für das Bootstrapping der Compiler Zig und Mono aus dem Quellcode wurde realisiert.
  • Das Set "setuid-programs" wurde in der Spezifikation "operating-system" durch "privileged-programs" ersetzt (anstelle des suid-Flags zur Erlangung von Privilegien werden Linux-Capabilities verwendet).
  • Etwa 40 neue Systemdienste wurden hinzugefügt, darunter Forgejo Runner, RabbitMQ, iwd und dhcpcd.
  • Die Versionen von Programmen in 8911 Paketen wurden aktualisiert, und 12525 neue Pakete wurden hinzugefügt. Unter anderem wurden die Versionen von GNOME 46.10, KDE Plasma 6.5, linux-libre 6.17.12, MATE 1.28.2, Xfce 4.20.0, lxde 0.99.3, xorg-server 21.1.21, GCC 15.2.0, LLVM 21.1.8, GIMP 3.0.4, glibc 2.41, go 1.25.3, Librewolf 140, icecat 140.6.0-gnu1 (firefox), icedtea 3.19.0, inkscape 1.3.2, julia 1.8.5, libreoffice 25.2.5.2, openjdk 25, perl 5.36.0, python 3.11.14, racket 8.18, rust 1.85.1 und r 4.5.2, sbcl 2.5.8 aktualisiert.

Wir erinnern daran, dass der Paketmanager GNU Guix auf den Konzepten des Nix-Projekts basiert und neben den typischen Paketverwaltungsfunktionen auch Möglichkeiten wie transaktionale Updates, die Möglichkeit, Updates rückgängig zu machen, den Betrieb ohne Superuser-Rechte, die Unterstützung benutzerspezifischer Profile sowie die gleichzeitige Installation mehrerer Versionen eines Programms bietet. Darüber hinaus enthält er Werkzeuge zur Bereinigung von nicht mehr verwendeten Paketversionen. Zur Definition von Anwendungsbau-Szenarien und Paketbildungsregeln wird empfohlen, eine spezialisierte, hochgradig abstrahierte, domänenspezifische Sprache und Komponenten der Guile Scheme API zu verwenden, die alle Paketverwaltungsoperationen in der funktionalen Programmiersprache Scheme ermöglichen.

Es besteht die Möglichkeit, Pakete zu verwenden, die für den Nix-Paketmanager erstellt und im Nixpkgs-Repository bereitgestellt wurden. Neben Paketoperationen ist auch die Erstellung von Skripten zur Verwaltung der Anwendungs-Konfiguration möglich. Bei der Paketkompilierung werden automatisch alle zugehörigen Abhängigkeiten heruntergeladen und kompiliert. Sowohl die Bereitstellung fertiger Binärpakete aus dem Repository als auch die Kompilierung aus Quelltexten mit allen Abhängigkeiten sind möglich. Es stehen zudem Werkzeuge zur Verfügung, um die Versionen der installierten Programme durch die Organisation der Aktualisierungsinstallation aus einem externen Repository aktuell zu halten.

Die Build-Umgebung für Pakete wird in Form eines Containers erstellt, der alle zur Ausführung der Anwendungen erforderlichen Komponenten enthält. Dies ermöglicht die Bildung eines Paket-Sets, das unabhängig von der Zusammensetzung der zugrunde liegenden Systemumgebung des Distributors funktioniert, in dem Guix als Erweiterung eingesetzt wird. Zwischen den Guix-Paketen können Abhängigkeiten definiert werden, wobei die Suche nach bereits installierten Abhängigkeiten durch Scannen der Hash-IDs im Verzeichnis der installierten Pakete erfolgt. Pakete werden in einer separaten Verzeichnisstruktur oder Unterverzeichnissen im Benutzerverzeichnis installiert, was ein paralleles Nebeneinander mit anderen Paketmanagern ermöglicht und die Unterstützung verschiedener Distributionen sicherstellt. Zum Beispiel wird ein Paket installiert als /nix/store/452a4978f3b1b428064a2b64a0c6f41-firefox-147.0.1/, wobei „452a49…“ eine eindeutige Paket-ID ist, die zur Verwaltung der Abhängigkeiten verwendet wird.

Die Distribution enthält ausschließlich freie Komponenten und wird mit dem GNU Linux-Libre-Kernel geliefert, der von nicht-freien Binärfirmware-Elementen bereinigt ist. Zum Zusammenstellen wird GCC 15.2 verwendet. Als Init-System kommt der Dienstmanager GNU Shepherd (ehemals dmd) zum Einsatz, der als Alternative zu SysV-init mit Unterstützung für Abhängigkeiten entwickelt wurde. Der Steuerdaemon und die Utilities von Shepherd sind in Guile (einer Implementierung der Sprache Scheme) geschrieben, die auch zur Definition der Startparameter von Diensten verwendet wird. Das Basis-Image unterstützt den Betrieb im Konsolenmodus, aber es sind 29.932 vorgefertigte Pakete verfügbar, darunter Komponenten des Grafik-Stacks, Fenster- und Composite-Manager, Desktop-Umgebungen wie GNOME, KDE und Xfce sowie eine Auswahl grafischer Anwendungen.

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster