wurde der Paketmanager und das darauf basierende Betriebssystem GuixSD GNU/Linux (Guix System Distribution). Die erhebliche VersionsĂ€nderung resultiert aus dem Abschluss aller , die fĂŒr die Bildung dieser bedeutenden Veröffentlichung gesetzt wurden. Die Veröffentlichung ist das Ergebnis von sieben Jahren Arbeit an dem Projekt und wird als bereit fĂŒr den tĂ€glichen Einsatz angesehen. Zum Download stehen Images fĂŒr die Installation auf USB-Flash (243 MB) und fĂŒr den Einsatz in Virtualisierungssystemen (474 MB) zur VerfĂŒgung. UnterstĂŒtzt werden die Architekturen i686, x86_64, armv7 und aarch64.
Das Betriebssystem ermöglicht die Installation sowohl als in Virtualisierungssystemen, in Containern und auf Standardhardware, als auch in bereits installierten GNU/Linux-Distributionen, fungiert als Plattform fĂŒr den Einsatz von Anwendungen. Dem Benutzer werden Funktionen wie Dependency-Management, reproduzierbare Builds, Root-freiheit, Rollbacks bei Problemen, Konfigurationsverwaltung, Klonen von Umgebungen (Erstellung einer genauen Kopie der Softwareumgebung auf anderen Computern) usw. bereitgestellt.
Haupt :
- Ein neuer , der im Textmodus arbeitet;
- Ein neues Image fĂŒr virtuelle Maschinen, das sowohl fĂŒr die Erkundung der Distribution als auch fĂŒr die Erstellung von Arbeitsumgebungen fĂŒr die Entwicklung geeignet ist;
- Neue Systemdienste wie cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent und zabbix-server wurden hinzugefĂŒgt;
- Die Versionen der Software in 2104 Paketen wurden aktualisiert, darunter 1102 neue Pakete. Unter anderem wurden die Versionen von clojure 1.10.0, cups 2.2.11, emacs 26.2, gcc 8.3.0, gdb 8.2.1, ghc 8.4.3,
gimp 2.10.10, glibc 2.28, gnome 3.28.2, gnupg 2.2.15, go 1.12.1,
guile 2.2.4, icecat 60.6.1-guix1, icedtea 3.7.0, inkscape 0.92.4,
libreoffice 6.1.5.2, linux-libre 5.0.10, mate 1.22.0, ocaml 4.07.1,
octave 5.1.0, openjdk 11.28, python 3.7.0, rust 1.34.0, r 3.6.0,
sbcl 1.5.1, shepherd 0.6.0, xfce 4.12.1 und xorg-server 1.20.4; - Der Service-Manager GNU Shepherd wurde auf die Version aktualisiert , die den One-Shot-Modus fĂŒr Dienste implementiert, bei dem ein Dienst sofort nach erfolgreichem Start als gestoppt markiert wird. Dies kann erforderlich sein, um einmalige Aufgaben vor anderen Diensten auszufĂŒhren, beispielsweise fĂŒr Bereinigung oder Initialisierung;
- FĂŒr den Befehl âguix packageâ wurden typische Aliase anderer Paketmanager wie âinstallâ, âremoveâ, âupgradeâ und âsearchâ hinzugefĂŒgt. Zum Suchen eines Pakets kann der Befehl âguix searchâ verwendet werden, fĂŒr die Installation âguix installâ und fĂŒr die Aktualisierung âguix pullâ und âguix upgradeâ;
- Der Paketmanager hat jetzt einen Fortschrittsindikator fĂŒr die AusfĂŒhrung von Operationen und eine farbliche Hervorhebung von Diagnosemeldungen. StandardmĂ€Ăig werden die meisten Befehle jetzt ohne detaillierte Ausgabe auf dem Bildschirm ausgefĂŒhrt, die mit der separaten Option â-vâ (âverbosity) aktiviert werden kann.
- Im Paketmanager guix wurde der neue Befehl âguix system delete-generationsâ sowie die Optionen âguix pack âsave-provenanceâ, âguix pull ânewsâ, âguix environment âpreserveâ, âguix gc âlist-rootsâ, âguix gc âdelete-generationsâ und âguix weather âcoverageâ hinzugefĂŒgt.
- Neue Optionen wurden hinzugefĂŒgt ââwith-git-urlâ und ââwith-branchâ.
- In das Distribution wurden die Konfigurationsfelder âkeyboard-layoutâ zur Bestimmung des Tastaturlayouts, âxorg-configurationâ zur Konfiguration des X-Servers, âlabelâ zur Kennzeichnung der Partition und âessential-servicesâ zur Festlegung der grundlegenden Dienste integriert.
- Der Befehl âguix pack -RRâ wurde hinzugefĂŒgt, um tar-Archive mit portablen ausfĂŒhrbaren Dateien zu erstellen, die sowohl relativ zu den Pfaden im Benutzernamensraum als auch relativ zu PRoot ausgefĂŒhrt werden können.
- In âguix pullâ wurde die Erstellung eines Paket-Caches zur Beschleunigung der SuchvorgĂ€nge nach Namen implementiert und die Einbettung des Pakets âglibc-utf8-localesâ ermöglicht.
- Es wird eine vollstĂ€ndige Wiederholbarkeit (bit fĂŒr bit) der von dem Befehl âguix systemâ generierten ISO-Images gewĂ€hrleistet;
- GDM wird anstelle von SLiM als Login-Manager verwendet;
- Die UnterstĂŒtzung fĂŒr den Guix-Build mit Guile 2.0 wurde eingestellt.
Wir erinnern daran, dass der Paketmanager GNU Guix auf den Entwicklungen des Projekts basiert und neben typischen Funktionen der Paketverwaltung unterstĂŒtzt er auch Möglichkeiten wie transaktionale Updates, die Möglichkeit, Updates zurĂŒckzusetzen, Betrieb ohne Superuser-Rechte, die UnterstĂŒtzung benutzerspezifischer Profile, die gleichzeitige Installation mehrerer Versionen eines Programms und Werkzeuge zur MĂŒllabfuhr (Identifizierung und Eliminierung nicht genutzter Paketversionen). FĂŒr die Definition von Anwendungsszenarien und der Regeln fĂŒr die Paketbildung wird empfohlen, eine spezialisierte, hochgradige, domĂ€nenorientierte Sprache und die Komponenten der Guile Scheme API zu verwenden, die alle Operationen zur Paketverwaltung in der funktionalen Programmiersprache Scheme ausfĂŒhren.
Es besteht die Möglichkeit, Pakete zu verwenden, die fĂŒr den Nix-Paketmanager vorbereitet und im Repository abgelegt sind.
. Neben Paketoperationen können auch Skripte zur Verwaltung der Anwendungs-Konfiguration erstellt werden. Beim Erstellen eines Pakets werden automatisch alle zugehörigen AbhÀngigkeiten heruntergeladen und kompiliert. Sowohl das Herunterladen von fertigen BinÀrpaketen aus dem Repository als auch die Erstellung aus Quelltexten mit allen AbhÀngigkeiten sind möglich. Es wurden Mittel implementiert, um die Versionen der installierten Programme auf dem neuesten Stand zu halten, indem Updates aus einem externen Repository organisiert werden.
Die Build-Umgebung fĂŒr Pakete wird als Container eingerichtet, der alle erforderlichen Komponenten fĂŒr den Betrieb von Anwendungen enthĂ€lt. Dadurch entsteht ein Paketset, das unabhĂ€ngig von der Konfiguration der zugrunde liegenden Systemumgebung des Distributors eingesetzt werden kann, in dem Guix als Erweiterung verwendet wird. Zwischen Guix-Paketen können AbhĂ€ngigkeiten definiert werden, wobei zur ĂberprĂŒfung bereits installierter AbhĂ€ngigkeiten Hash-IDs im Verzeichnis der installierten Pakete gescannt werden. Pakete werden in einem separaten Verzeichnisbaum oder Unterverzeichnis im Benutzerkatalog installiert, was ein paralleles Nebeneinander mit anderen Paketmanagern ermöglicht und eine breite UnterstĂŒtzung fĂŒr bestehende Distributionen gewĂ€hrleistet. Beispielsweise wird ein Paket installiert als /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, wobei âf42d58âŠâ die eindeutige Paket-ID ist, die zur Kontrolle 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 Elementen der BinĂ€rfirmware bereinigt wurde. Zum Build-Prozess wird GCC 8.3 verwendet. Als Init-System kommt ein Service-Manager zum Einsatz. (), der als Alternative zu SysV-init mit UnterstĂŒtzung fĂŒr AbhĂ€ngigkeiten entwickelt wird. Der Steuerdaemon und die Utilities von Shepherd sind in Guile (einer Implementierung der Programmiersprache Scheme) geschrieben, die auch zur Festlegung der Startparameter fĂŒr die Services verwendet wird. Das Basis-Image unterstĂŒtzt den Betrieb im Konsolenmodus, aber zur Installation sind 9714 vorgefertigte Pakete verfĂŒgbar, darunter auch Komponenten des grafischen Stacks auf Basis von X.Org, die Fenstermanager dwm und ratpoison, die Desktop-Umgebung Xfce sowie eine Auswahl an Grafik-Anwendungen.
Quelle: opennet.ru
