GNU Guix 1.4 Paketmanager und darauf basierende Distribution verfügbar

Der Paketmanager GNU Guix 1.4 und die darauf basierende GNU/Linux-Distribution wurden veröffentlicht. Zum Download wurden Images für die Installation auf USB-Flash (814 MB) und die Nutzung in Virtualisierungssystemen (1.1 GB) generiert. Es unterstützt die Architekturen i686, x86_64, Power9, armv7 und aarch64.

Das Distributionskit kann sowohl als eigenständiges Betriebssystem in Virtualisierungssystemen, in Containern und auf herkömmlichen Geräten installiert werden als auch in bereits installierten GNU/Linux-Distributionen ausgeführt werden und fungiert als Plattform für die Bereitstellung von Anwendungen. Dem Benutzer stehen Funktionen wie Abhängigkeitsbuchhaltung, wiederholbare Builds, Arbeiten ohne Root, Rollback auf frühere Versionen bei Problemen, Konfigurationsverwaltung, Umgebungsklonen (Erstellen einer exakten Kopie der Softwareumgebung auf anderen Computern) usw. zur Verfügung.

Wichtigste Neuerungen:

  • Verbesserte Verwaltung von Programmumgebungen. Der Befehl „Guix Environment“ wurde durch einen neuen Befehl „Guix Shell“ ersetzt, der es nicht nur ermöglicht, Build-Umgebungen für Entwickler zu erstellen, sondern auch Umgebungen zu verwenden, um sich mit Programmen vertraut zu machen, ohne sich im Profil widerzuspiegeln und ohne „Guix“ auszuführen Installieren". Um beispielsweise das Spiel Supertuxkart herunterzuladen und auszuführen, können Sie „Guix Shell Supertuxkart – Supertuxkart“ ausführen. Nach dem Herunterladen wird das Paket im Cache gespeichert und muss bei der nächsten Ausführung nicht erneut extrahiert werden.

    Um die Erstellung von Umgebungen für Entwickler in der „Guix-Shell“ zu vereinfachen, wird Unterstützung für die Dateien guix.scm und manifest.scm mit einer Beschreibung der Umgebungszusammensetzung bereitgestellt (zum Generieren kann die Option „--export-manifest“ verwendet werden). Dateien). Um Container zu erstellen, die die klassische Systemverzeichnishierarchie emulieren, bietet die „Guix-Shell“ die Optionen „-container --emulate-fhs“ an.

  • Befehl „guix home“ hinzugefügt, um die Heimumgebung zu verwalten. Mit Guix können Sie alle Komponenten der Heimumgebung definieren, einschließlich Pakete, Dienste und Dateien, die mit einem Punkt beginnen. Mit dem Befehl „guix home“ können Instanzen der beschriebenen Home-Umgebung im $HOME-Verzeichnis oder in einem Container neu erstellt werden, um beispielsweise die eigene Umgebung auf einen neuen Computer zu übertragen.
  • Option „-f deb“ zum Befehl „guix pack“ hinzugefügt, um eigenständige Deb-Pakete zu erstellen, die unter Debian installiert werden können.
  • Um verschiedene Arten von Systemabbildern (RAW, QCOW2, ISO8660 CD/DVD, Docker und WSL2) zu erstellen, wird ein universeller Befehl „Guix System Image“ vorgeschlagen, mit dem Sie den Speichertyp, die Partitionen und das Betriebssystem für die erstellten Images bestimmen können Bild.
  • Den Paketassemblierungsbefehlen wurde die Option „-tune“ hinzugefügt, mit der Sie die Prozessor-Mikroarchitektur angeben können, für die bestimmte Optimierungen aktiviert werden (z. B. AVX-512 SIMD-Anweisungen können auf neuen AMD- und Intel-CPUs verwendet werden).
  • Das Installationsprogramm implementiert einen Mechanismus zum automatischen Speichern wichtiger Debugging-Informationen im Falle einer abnormalen Installation.
  • Reduzierte Anwendungsstartzeit durch Verwendung des dynamischen Verknüpfungscache, um die Verwendung von Stat- und Open-Systemaufrufen bei der Suche nach Bibliotheken zu reduzieren.
  • Es handelt sich um eine neue Version des GNU Shepherd 0.9-Initialisierungssystems, das das Konzept temporärer Dienste (transient) und die Möglichkeit implementiert, Dienste zu erstellen, die während der Netzwerkaktivität aktiviert werden (im Stil der systemd-Socket-Aktivierung).
  • Es wurde eine neue Schnittstelle hinzugefügt, um die Größe der Swap-Partition in der Betriebssystemkonfiguration festzulegen.
  • Die Schnittstelle zum Festlegen einer statischen Netzwerkkonfiguration wurde neu gestaltet und bietet nun ein deklaratives Analogon der Einstellungen im Stil des IP-Befehls.
  • 15 neue Systemdienste hinzugefügt, darunter Jami, Samba, fail2ban und Gitile.
  • Die Website Packages.guix.gnu.org wurde für die Paketnavigation gestartet.
  • Aktualisierte Softwareversionen in 6573 Paketen, 5311 neue Pakete hinzugefügt. Unter anderem aktualisierte Versionen von GNOME 42, Qt 6, GCC 12.2.0, Glibc 2.33, Xfce 4.16, Linux-libre 6.0.10, LibreOffice 7.4.3.2, Emacs 28.2. Über 500 Pakete mit Python 2 entfernt.

GNU Guix 1.4 Paketmanager und darauf basierende Distribution verfügbar

Denken Sie daran, dass der GNU Guix-Paketmanager auf den Entwicklungen des Nix-Projekts basiert und zusätzlich zu den typischen Paketverwaltungsfunktionen Funktionen wie Transaktionsaktualisierungen, die Möglichkeit zum Zurücksetzen von Aktualisierungen, Arbeiten ohne Erlangung von Superuser-Rechten und Unterstützung für Profile unterstützt im Zusammenhang mit einzelnen Benutzern, die Möglichkeit, mehrere Versionen eines Programms gleichzeitig zu installieren, Garbage-Collection-Tools (Identifizieren und Entfernen nicht verwendeter Versionen von Paketen). Um Anwendungserstellungsskripte und Verpackungsregeln zu definieren, wird vorgeschlagen, eine spezielle domänenspezifische Hochsprache und Guile Scheme-API-Komponenten zu verwenden, mit denen Sie alle Paketverwaltungsvorgänge in der funktionalen Programmiersprache Scheme ausführen können.

Die Möglichkeit, Pakete zu verwenden, die für den Nix-Paketmanager vorbereitet und im Nixpkgs-Repository gehostet werden, wird unterstützt. Zusätzlich zu Paketvorgängen können Sie Skripts erstellen, um die Anwendungskonfiguration zu verwalten. Wenn ein Paket erstellt wird, werden alle zugehörigen Abhängigkeiten automatisch heruntergeladen und erstellt. Es ist sowohl möglich, vorgefertigte Binärpakete aus dem Repository herunterzuladen als auch aus dem Quellcode mit allen Abhängigkeiten zu erstellen. Implementierte Tools, um Versionen installierter Programme auf dem neuesten Stand zu halten, indem die Installation von Updates aus einem externen Repository organisiert wird.

Die Build-Umgebung für Pakete besteht aus einem Container, der alle für den Betrieb von Anwendungen erforderlichen Komponenten enthält. Dadurch können Sie eine Reihe von Paketen erstellen, die unabhängig von der Zusammensetzung der Basissystemumgebung der Distribution, in der sich Guix befindet, funktionieren können wird als Add-on verwendet. Abhängigkeiten zwischen Guix-Paketen können ermittelt werden, indem die Hash-Identifikatoren im Verzeichnis der installierten Pakete gescannt werden, um das Vorhandensein bereits installierter Abhängigkeiten festzustellen. Pakete werden in einem separaten Verzeichnisbaum oder Unterverzeichnis im Verzeichnis des Benutzers installiert, was die Koexistenz mit anderen Paketmanagern ermöglicht und Unterstützung für eine Vielzahl vorhandener Distributionen bietet. Beispielsweise wird ein Paket als /nix/store/452a5978f3b1b426064a2b64a0c6f41-firefox-108.0.1/ installiert, wobei „452a59…“ die eindeutige Paket-ID ist, die zur Steuerung von Abhängigkeiten verwendet wird.

Die Distribution enthält nur kostenlose Komponenten und wird mit einem GNU Linux-Libre-Kernel ohne unfreie binäre Firmware-Elemente geliefert. Zum Erstellen wird GCC 12.2 verwendet. Als Initialisierungssystem wird der GNU Shepherd Service Manager (ehemals dmd) verwendet, der als Alternative zu SysV-init mit Abhängigkeitsunterstützung entwickelt wurde. Der Steuerungsdämon und die Shepherd-Dienstprogramme sind in der Guile-Sprache (einer der Implementierungen der Scheme-Sprache) geschrieben, die auch zum Definieren von Dienststartparametern verwendet wird. Das Basis-Image unterstützt den Konsolenmodus, es wurden jedoch 20526 vorgefertigte Pakete für die Installation vorbereitet, darunter X.Org-basierte Grafik-Stack-Komponenten, DWM- und Ratpoison-Fenstermanager, GNOME- und Xfce-Desktops sowie eine Auswahl grafischer Anwendungen.

Source: opennet.ru

Kommentar hinzufügen