release van de pakketbeheerder en de op basis daarvan gebouwde distributie GuixSD GNU/Linux (Guix System Distribution). De significante wijziging van het versienummer is het gevolg van de afronding van alle , die zijn vastgesteld voor het creëren van een belangrijke release. De lancering is het resultaat van zeven jaar werk aan het project en wordt erkend als klaar voor dagelijks gebruik. Voor download beelden voor installatie op USB Flash (243 MB) en gebruik in virtualisatiesystemen (474 MB). Ondersteuning voor i686, x86_64, armv7 en aarch64 architecturen.
De distributie staat installatie toe zowel als in virtualisatiesystemen, in containers en op standaardhardware, evenals in al geïnstalleerde GNU/Linux distributies, optredend als een platform voor het implementeren van toepassingen. Gebruikers krijgen functies zoals afhankelijkheidbeheer, reproduceerbare builds, werken zonder root, terugrollen naar vorige versies in geval van problemen, configuratiebeheer, omgevingen klonen (een exacte kopie van de programmastructuur op andere computers maken), enz.
Belangrijkste :
- Een nieuwe , werkend in tekstmodus;
- een nieuw beeld voor virtuele machines, geschikt zowel voor kennismaking met de distributie als voor het creëren van ontwikkelomgevingen;
- Nieuwe systeemdiensten toegevoegd: cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent en zabbix-server;
- Versies van software in 2104 pakketten zijn bijgewerkt en 1102 nieuwe pakketten zijn toegevoegd. Onder andere zijn de versies 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 en xorg-server 1.20.4; - De servicebeheerder GNU Shepherd is bijgewerkt naar versie , waarin een one-shot modus voor services is geïmplementeerd, waarbij de service na succesvolle lancering als gestopt wordt gemarkeerd. Dit kan nodig zijn voor het uitvoeren van eenmalige taken vóór andere services, bijvoorbeeld voor het uitvoeren van opschoningen of initialisaties;
- Voor het commando "guix package" zijn typische aliassen uit andere pakketbeheerders toegevoegd: "install", "remove", "upgrade" en "search". Voor het zoeken naar een pakket kan het commando "guix search" worden gebruikt, voor installatie "guix install" en voor upgrades "guix pull" en "guix upgrade";
- De pakketbeheerder heeft een voortgangsindicator voor de uitvoering van bewerkingen en kleuraanpassingen voor diagnostische berichten toegevoegd. Standaard worden de meeste opdrachten nu uitgevoerd zonder gedetailleerde uitvoer op het scherm, die kan worden ingeschakeld met een aparte optie «-v» (—verbosity);
- De pakketbeheerder Guix heeft een nieuwe opdracht «guix system delete-generations» en de opties «guix pack —save-provenance», «guix pull —news», «guix environment —preserve», «guix gc —list-roots», «guix gc —delete-generations», «guix weather —coverage» toegevoegd;
- Nieuwe opties zijn toegevoegd «—with-git-url» en «—with-branch»;
- De distributie heeft configuratievelden «keyboard-layout» toegevoegd voor het definiëren van de toetsenbordindeling, «xorg-configuration» voor het configureren van de X-server, «label» voor het labelen van de partitie en «essential-services» voor het definiëren van essentiële diensten;
- De opdracht «guix pack -RR» is toegevoegd voor het maken van tar-archieven met verplaatsbare uitvoerbare bestanden, die kunnen worden uitgevoerd met zowel relatieve paden in de gebruikersnaamruimte als met PRoot;
- In «guix pull» is caching van pakketten mogelijk gemaakt om de zoekoperaties op naam te versnellen, en is de invoeging van het pakket «glibc-utf8-locales» verzekerd;
- Volledige herhaalbaarheid (bit voor bit) van ISO-images, gegenereerd door de opdracht «guix system», is gegarandeerd;
- GDM is als inlogbeheerder ingezet in plaats van SLiM;
- De ondersteuning voor het bouwen van Guix met Guile 2.0 is beëindigd.
Ter herinnering, de pakketbeheerder GNU Guix is gebaseerd op de ontwikkelingen van het project en ondersteunt, naast de typische functies van pakketbeheer, mogelijkheden zoals het uitvoeren van transactionele updates, de mogelijkheid om updates terug te draaien, functioneren zonder superuserrechten, ondersteuning van per gebruiker gekoppelde profielen, de mogelijkheid om meerdere versies van hetzelfde programma gelijktijdig te installeren, en middelen voor het opruimen van ongebruikte pakketversies. Voor het definiëren van applicatiebouwscenario's en pakketvormingsregels wordt aangeraden om gebruik te maken van een gespecialiseerde, hoog-niveau, domein-specifieke taal en de componenten van de Guile Scheme API, die alle pakketbeheertaken in de functionele programmeertaal Scheme kunnen uitvoeren.
Het is mogelijk om pakketten te gebruiken die zijn voorbereid voor de Nix-pakketbeheerder en zich in de repository bevinden
. Naast pakketbewerkingen is het ook mogelijk om scripts te creëren voor het beheren van applicatieconfiguraties. Bij het samenstellen van een pakket worden automatisch alle bijbehorende afhankelijkheden gedownload en samengesteld. Zowel het downloaden van kant-en-klare binaire pakketten uit de repository als het samenstellen van de bronbestanden met alle afhankelijkheden is mogelijk. Er zijn instrumenten ontwikkeld om de versies van geïnstalleerde programma's up-to-date te houden via het organiseren van updates uit een externe repository.
De bouwomgeving voor pakketten wordt gevormd als een container die alle benodigde componenten voor de werking van applicaties bevat. Dit maakt het mogelijk om een set pakketten te creëren die kan functioneren zonder afhankelijk te zijn van de samenstelling van de basis systeemomgeving van de distributie waarin Guix als bovenliggende laag wordt gebruikt. Tussen Guix-pakketten kunnen afhankelijkheden worden gedefinieerd; daarbij wordt het zoeken naar beschikbare geïnstalleerde afhankelijkheden uitgevoerd door hashes van identiteitsgegevens in de directory van geïnstalleerde pakketten te scannen. Pakketten worden geïnstalleerd in een aparte directoryboom of subdirectory in de gebruikerscatalogus, wat parallelle coexistence met andere pakketbeheerders mogelijk maakt en ondersteuning biedt voor een breed scala aan bestaande distributies. Bijvoorbeeld, het pakket wordt geïnstalleerd als /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, waar "f42d58..." een unieke identificator is voor het pakket, gebruikt voor afhankelijkheidscontrole.
De distributie bevat uitsluitend vrije componenten en wordt geleverd met de GNU Linux-Libre-kernel, die is schoongemaakt van niet-vrije elementen in binaire firmware. Voor de compilatie wordt GCC 8.3 gebruikt. De init-systeem is de servicebeheerder (), ontwikkeld als alternatief voor SysV-init met afhankelijkheidsondersteuning. De beheerdemon en de utiliteiten van Shepherd zijn geschreven in de Guile-taal (een van de implementaties van de Scheme-taal), die ook wordt gebruikt voor het definiëren van het opstartparameters van diensten. Het basis-image ondersteunt werking in consolemodus, maar voor installatie 9714 kant-en-klare pakketten, waaronder componenten van de grafische stack op basis van X.Org, vensterbeheerders dwm en ratpoison, de desktop Xfce, evenals een verzameling grafische applicaties.
Bron: opennet.ru
