GNU Guix-pakkehåndteringen 1.3 og GNU-distributionen baseret på den er blevet udgivet.LinuxDownloadbare billeder er tilgængelige til installation på et USB-flashdrev (610 MB) og brug i virtualiseringssystemer (972 MB). Understøttede arkitekturer omfatter i686, x86_64, Power9, armv7 og aarch64.
Distributionen tillader installation både som et selvstændigt operativsystem i virtualiseringssystemer, i containere og på almindelig hardware, og kørsel i allerede installerede GNU/Linux-distributioner.Linux, der fungerer som en platform til implementering af applikationer. Brugeren får adgang til funktioner som afhængighedsstyring, gentagelige builds, rodløs drift, tilbagerulning til tidligere versioner i tilfælde af problemer, konfigurationsstyring, miljøkloning (oprettelse af en nøjagtig kopi af softwaremiljøet på andre computere) og mere.
Vigtigste innovationer:
- Indledende understøttelse af POWER9-arkitekturen (powerpc64le-linux) er blevet implementeret.
- Det er muligt at bruge en deklarativ udrulningstilstand, hvor der i stedet for en række "guix install" og "guix remove" kommandoer køres en enkelt kommando "guix package –manifest=manifest.scm", der definerer i manifestet. scm fil alle programmer, der skal installeres. For at generere et manifest baseret på en eksisterende installationsprofil tilbyder kommandoen "guix package" "--export-manifest" og "--export-channels" mulighederne.
- Tilføjet muligheden for "--med-nyeste" pakketransformation, nyttig for dem, der ønsker at have de nyeste versioner af programmer, selvom en færdiglavet pakke til Guix endnu ikke er blevet genereret til applikationen. Også tilføjet er "--med-patch"-muligheden til at bygge en række pakker med en patch påført en eller flere af dem.
- "guix" kommandoerne implementerer output af anbefalinger med forslag til erstatninger i tilfælde af stavefejl eller tilstedeværelsen af alternative underkommandoer. $ guix-pakke --eksport-manifester guix-pakke: fejl: eksport-manifester: ikke genkendt valgtip: Mente du `eksport-manifest'?
- "Guix refresh" har tilføjet understøttelse til download af opdateringer fra SourceForge-hosting, samt en generisk html-tilstand til modtagelse af opdateringer fra projektets hjemmeside.
- Tilføjet en ny kommando "guix import go" til rekursiv import af pakker på Go-sproget under hensyntagen til afhængigheder. Kommandoen "guix import opam" understøtter nu Coq-pakker. "Guix-importkassen" tager højde for semantisk versionering i rekursiv indlæsningstilstand. Kommandoen "guix import nix" er blevet fjernet.
- Installationen af forudbyggede binære pakker (erstatning) er blevet optimeret, og arbejdet med kommandoen "guix system init" er blevet fremskyndet.
- Tilføjet "--profile" mulighed til kommandoen "guix environment".
- Tilføjet "--discover"-funktionen til guix-daemon til lokal netværksopdagelse servere, som leverer samlede binære pakker (erstatning) ved hjælp af mDNS/DNS-SD-protokollerne. Indstillingen "--advertise" er blevet tilføjet til kommandoen "guix publish" for at tillade afsendelse af meddelelser fra servere.
- Muligheden for at bruge Zstd-algoritmen til pakkekomprimering er blevet implementeret.
- I tilstanden "--verbosity=1" stoppes outputtet af downloadede URL'er.
- I stedet for "disk-image" og "vm-image" underkommandoer, foreslås den generelle "guix system image" kommando.
- I fordelingsbilledet for virtuel maskine Tilføjet understøttelse af SPICE-protokollen.
- En automatisk installationstilstand er blevet tilføjet til installationsscriptet.
- Tilføjet lvm-device-mapping-tjeneste for at understøtte LVM-volumenstyring (Linux Logisk volumenhåndtering).
- Tilføjet "guix system image -t rock64-raw" tilstand til generering af distributionsbilleder til Rock64 boards.
- Initrd har bcachefs-understøttelse aktiveret som standard.
- CUPS-printserveren har "brlaser"-tjenesten aktiveret som standard for at understøtte Brother-printere.
- Tilføjet nye systemtjenester: agate, cuirass-remote-worker, ipfs, keepalived, laminar, radicale, syncthing, transmission-daemon. wireguard, xorg-server.
- Versioner af programmer i 3100 pakker blev opdateret, 2009 nye pakker blev tilføjet. Inklusive opdaterede versioner af gcc 10.3.0, glibc 2.31, GNOME 3.34.5, gnupg 2.2.27, go 1.14.15, guile 3.0.5, icecat 78.10.0-guix0-preview1, icedtea 3.7.0, in.1.0.2 , julia 1.5.3, libreoffice 6.4.7.2, linux-libre 5.11.15, ocaml 4.11.1, oktav 6.2.0, openjdk 14.0, python 3.8.2, ketcher 8.0, rust 1.51.0, .b. 4.0.4, Xfce 2.1.3 og xorg-server 4.16.0.
- Rettet sårbarhed CVE-2021-27851 i guix-daemon, som giver en lokal bruger mulighed for at eskalere deres privilegier på systemet. Problemet er, at under udførelsen af kommandoen "guix build" forblev build-mappen skrivbar, og brugeren kunne oprette et hårdt link til en fil ejet af root og placeret uden for build-mappen, for eksempel "/etc/shadow" . Hvis "--keep-failed"-indstillingen blev angivet under opbygningen, ændrede guix-daemon i tilfælde af fejl ejeren af hele samlingstræet til den nuværende bruger, inklusive hårde links.
Husk på, at GNU Guix-pakkehåndteringen er baseret på udviklingen af Nix-projektet og, ud over de typiske pakkehåndteringsfunktioner, understøtter funktioner som transaktionsopdateringer, muligheden for at rulle opdateringer tilbage, arbejde uden at opnå superbrugerprivilegier, support til profiler forbundet med individuelle brugere, muligheden for samtidig at installere flere versioner af et program, affaldsindsamlingsværktøjer (identifikation og fjernelse af ubrugte versioner af pakker). For at definere applikationsopbygningsscripts og pakkeregler foreslås det at bruge et specialiseret domænespecifikt sprog på højt niveau og Guile Scheme API-komponenter, der giver dig mulighed for at udføre alle pakkehåndteringsoperationer i Scheme funktionelle programmeringssprog.
Muligheden for at bruge pakker, der er forberedt til Nix-pakkehåndteringen og hostet i Nixpkgs-lageret, understøttes. Ud over pakkehandlinger kan du oprette scripts til at administrere applikationskonfiguration. Når en pakke er bygget, downloades og bygges alle tilknyttede afhængigheder automatisk. Det er muligt både at downloade færdige binære pakker fra depotet, og bygge fra kilde med alle afhængigheder. Implementerede værktøjer til at holde versioner af installerede programmer opdaterede ved at organisere installationen af opdateringer fra et eksternt lager.
Byggemiljøet til pakker er dannet som en beholder, der indeholder alle de komponenter, der er nødvendige for driften af applikationer, som giver dig mulighed for at oprette et sæt pakker, der kan fungere uden hensyn til sammensætningen af distributionens basissystemmiljø, hvor Guix bruges som en tilføjelse. Afhængigheder kan bestemmes mellem Guix-pakker ved at scanne hash-id'erne i mappen med installerede pakker for at finde tilstedeværelsen af allerede installerede afhængigheder. Pakker installeres i et separat bibliotekstræ eller underbibliotek i brugerens bibliotek, hvilket gør det muligt at sameksistere med andre pakkeadministratorer og yde support til en lang række eksisterende distributioner. For eksempel installeres en pakke som /nix/store/452a5978f3b0b426064a2b64a0c6f41-firefox-88.0.0/ hvor "452a59..." er det unikke pakke-id, der bruges til at kontrollere afhængigheder.
Distributionen indeholder kun gratis komponenter og leveres med GNU-kernen. Linux-Libre, renset for ikke-fri binære firmware-elementer. GCC 9.3 bruges til kompilering. GNU Shepherd service manager (tidligere dmd), udviklet som et alternativ til SysV-init med afhængighedsunderstøttelse, bruges som initialiseringssystem. Shepherd-kontroldæmonen og værktøjerne er skrevet i Guile (en implementering af Scheme-sproget), som også bruges til at definere servicestartparametre. Basisbilledet understøtter konsoltilstand, men 17243 installationsklare pakker er tilgængelige, inklusive komponenter fra den X.Org-baserede grafikstak, vindueshåndteringerne dwm og ratpoison, Xfce-skrivebordet og et udvalg af grafiske applikationer.
Kilde: opennet.ru
