GNU Guix 1.4 pakethanterare och distribution baserad på den tillgängliga

GNU Guix 1.4-pakethanteraren och GNU/Linux-distributionen byggd på dess bas släpptes. För nedladdning har bilder genererats för installation på USB Flash (814 MB) och användning i virtualiseringssystem (1.1 GB). Stöder drift på arkitekturerna i686, x86_64, Power9, armv7 och aarch64.

Distributionen tillåter installation både som ett fristående OS i virtualiseringssystem, i containrar och på konventionell utrustning, och kan lanseras i redan installerade GNU/Linux-distributioner, och fungerar som en plattform för att distribuera applikationer. Användaren förses med sådana funktioner som att ta hänsyn till beroenden, repeterbara builds, arbeta utan root, återgå till tidigare versioner vid problem, konfigurationshantering, kloning av miljöer (skapa en exakt kopia av mjukvarumiljön på andra datorer), etc. .

Huvudsakliga innovationer:

  • Förbättrad hantering av mjukvarumiljöer. Kommandot "guix environment" har ersatts av det nya kommandot "guix shell", som låter dig inte bara skapa byggmiljöer för utvecklare, utan också använda miljöer för att bekanta dig med program utan att återspeglas i profilen och utan att utföra " guix installera”. Till exempel, för att ladda ner och starta supertuxkart-spelet, kan du köra "guix shell supertuxkart - supertuxkart". Efter nedladdning kommer paketet att sparas i cachen och nästa lansering kräver inte att det extraheras på nytt.

    För att förenkla skapandet av miljöer för utvecklare ger "guix-skalet" stöd för guix.scm- och manifest.scm-filer som beskriver miljöns sammansättning (alternativet "--export-manifest" kan användas för att generera filer). För att skapa behållare där den klassiska systemkataloghierarkin emuleras, erbjuder "guix-skalet" alternativen "-container -emulate-fhs".

  • Lade till kommandot "guix home" för att styra hemmiljön. Guix låter dig definiera alla komponenter i din hemmiljö, inklusive paket, tjänster och filer som börjar med en punkt. Genom att använda kommandot "guix home" kan instanser av den beskrivna hemmiljön återskapas i $HOME-katalogen eller i en container, till exempel för att överföra din miljö till en ny dator.
  • Lade till alternativet "-f deb" till kommandot "guix pack" för att skapa separata deb-paket som kan installeras på Debian.
  • För att skapa olika typer av systemavbildningar (rå, QCOW2, ISO8660 CD/DVD, Docker och WSL2) föreslås ett universellt "guix system image"-kommando, som låter dig bestämma lagringstyp, partitioner och operativsystem för den skapade bilden .
  • Alternativet "—tune" har lagts till i kommandona för att bygga paket, vilket gör att du kan specificera processormikroarkitekturen för vilken specifika optimeringar kommer att aktiveras (till exempel kan AVX-512 SIMD-instruktioner användas på nya AMD- och Intel-processorer) .
  • Installationsprogrammet implementerar en mekanism för att automatiskt spara viktig felsökningsinformation i händelse av ett installationsfel.
  • Applikationsstarttiden har minskat genom att använda en cache under dynamisk länkning, vilket minskar anrop till stat och öppna systemanrop vid sökning efter bibliotek.
  • En ny version av GNU Shepherd 0.9-initieringssystemet har använts, som implementerar konceptet med temporära tjänster (transient) och möjligheten att skapa tjänster aktiverade av nätverksaktivitet (i stil med systemd socket-aktivering).
  • Lade till ett nytt gränssnitt för att ställa in swap-partitionsstorleken i operativsystemets konfiguration.
  • Gränssnittet för att ställa in en statisk nätverkskonfiguration har gjorts om, vilket nu erbjuder en deklarativ analog av inställningar i stil med ip-kommandot.
  • Lade till 15 nya systemtjänster, inklusive Jami, Samba, fail2ban och Gitile.
  • Lanserade packages.guix.gnu.org för paketnavigering.
  • Versioner av program i 6573 paket uppdaterades, 5311 nya paket lades till. Bland annat uppdaterade versioner av 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. Tog bort över 500 paket med Python 2.

GNU Guix 1.4 pakethanterare och distribution baserad på den tillgängliga

Låt oss komma ihåg att GNU Guix-pakethanteraren är baserad på utvecklingen av Nix-projektet och, förutom typiska pakethanteringsfunktioner, stöder sådana funktioner som att utföra transaktionsuppdateringar, möjligheten att återställa uppdateringar, arbeta utan att erhålla superanvändarprivilegier, stödja profiler knutna till enskilda användare, möjligheten att samtidigt installera flera versioner av ett program, skräpinsamlingsverktyg (identifiera och ta bort oanvända versioner av paket). För att definiera scenarier för applikationsbyggande och paketbildningsregler, föreslås det att du använder ett specialiserat domänspecifikt språk på hög nivå och Guile Scheme API-komponenter, som låter dig utföra alla pakethanteringsoperationer i det funktionella programmeringsspråket Scheme.

Möjligheten att använda paket förberedda för Nix-pakethanteraren och placerade i Nixpkgs-förvaret stöds. Förutom operationer med paket är det möjligt att skapa skript för att hantera applikationskonfigurationer. När ett paket byggs, laddas och byggs alla beroenden som är kopplade till det automatiskt. Det är möjligt att antingen ladda ner färdiga binära paket från förvaret eller bygga från källtexter med alla beroenden. Verktyg har implementerats för att hålla versioner av installerade program uppdaterade genom att organisera installationen av uppdateringar från ett externt arkiv.

Byggmiljön för paket bildas i form av en behållare som innehåller alla komponenter som behövs för att applikationen ska fungera, vilket gör att du kan skapa en uppsättning paket som kan fungera utan hänsyn till sammansättningen av distributionens bassystemmiljö, där Guix används som ett tillägg. Beroenden kan fastställas mellan Guix-paket genom att skanna identifierarhashar i katalogen för installerade paket för att hitta förekomsten av redan installerade beroenden. Paketen installeras i ett separat katalogträd eller underkatalog i användarens katalog, vilket gör att det kan samexistera parallellt med andra pakethanterare och ge stöd för ett brett utbud av befintliga distributioner. Till exempel installeras paketet som /nix/store/452a5978f3b1b426064a2b64a0c6f41-firefox-108.0.1/, där "452a59..." är den unika paketidentifieraren som används för beroendeövervakning.

Distributionen innehåller endast gratiskomponenter och kommer med GNU Linux-Libre-kärnan, rensad från icke-fria element av binär firmware. GCC 12.2 används för montering. GNU Shepherd-servicehanteraren (tidigare dmd) används som ett initieringssystem, utvecklat som ett alternativ till SysV-init med beroendestöd. Shepherd-kontrolldemonen och verktygen är skrivna i Guile (en av implementeringarna av Scheme-språket), som också används för att definiera parametrar för att starta tjänster. Basbilden stöder arbete i konsolläge, men 20526 XNUMX färdiga paket är förberedda för installation, inklusive komponenter i den X.Org-baserade grafikstacken, dwm och ratpoison fönsterhanterare, GNOME och Xfce stationära datorer, samt ett urval av grafiska applikationer.

Källa: opennet.ru

Lägg en kommentar