wydanie menedżera pakietów i zbudowanego na jego podstawie dystrybucji GuixSD GNU/Linux (Guix System Distribution). Znacząca zmiana numeru wersji jest spowodowana zakończeniem realizacji wszystkich , które zostały postawione dla utworzenia znaczącego wydania. Wydanie podsumowuje siedem lat pracy nad projektem i jest uznawane za gotowe do codziennego użytku. Do pobrania obrazy do instalacji na USB Flash (243 MB) oraz do wykorzystania w systemach wirtualizacji (474 MB). Obsługiwana jest praca na architekturach i686, x86_64, armv7 i aarch64.
Dystrybucja umożliwia instalację zarówno jako w systemach wirtualizacji, w kontenerach i na zwykłym sprzęcie, jak i w już zainstalowanych dystrybucjach GNU/Linux, pełniąc rolę platformy do wdrażania aplikacji. Użytkownikom oferowane są funkcje takie jak zarządzanie zależnościami, powtarzalne kompilacje, praca bez uprawnień root, powrót do wcześniejszych wersji w przypadku problemów, zarządzanie konfiguracją, klonowanie środowisk (tworzenie dokładnej kopii środowiska programistycznego na innych komputerach) itp.
Podstawowe :
- Dodano nowy , działający w trybie tekstowym;
- nowy obraz dla maszyn wirtualnych, odpowiedni zarówno do zapoznania się z dystrybucją, jak i do tworzenia środowisk roboczych dla programowania;
- Dodano nowe usługi systemowe cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent i zabbix-server;
- Zaktualizowano wersje programów w 2104 pakietach, dodano 1102 nowe pakiety. W tym zaktualizowano wersje 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 i xorg-server 1.20.4; - Zarządca usług GNU Shepherd zaktualizowany do wersji , w której wprowadzono tryb pracy serwisów one-shot, w którym serwis natychmiast po pomyślnym uruchomieniu jest oznaczany jako zatrzymany, co może być wymagane do uruchomienia jednorazowych zadań przed innymi serwisami, na przykład do przeprowadzenia czyszczenia lub inicjalizacji;
- Do polecenia „guix package” dodano typowe dla innych menedżerów pakietów aliasy „install”, „remove”, „upgrade” i „search”. Aby wyszukać pakiet, można użyć polecenia „guix search”, do instalacji „guix install”, a do aktualizacji „guix pull” i „guix upgrade”;
- Do menedżera pakietów dodano wskaźnik postępu operacji oraz kolorowe wyróżnienie komunikatów diagnostycznych. Domyślnie większość poleceń jest teraz uruchamiana bez szczegółowego wyjścia na ekran, które można włączyć osobną opcją „-v” (—verbosity);
- Do menedżera pakietów guix dodano nowe polecenie „guix system delete-generations” oraz opcje „guix pack —save-provenance”, „guix pull —news”, „guix environment —preserve”, „guix gc —list-roots”, „guix gc —delete-generations”, „guix weather —coverage”;
- Dodano nowe opcje „—with-git-url” i „—with-branch”;
- Do dystrybucji dodano pola konfiguracyjne „keyboard-layout” do określenia układu klawiatury, „xorg-configuration” do konfiguracji serwera X, „label” do etykietowania partycji oraz „essential-services” do określenia podstawowych usług;
- Dodano polecenie „guix pack -RR” do tworzenia archiwów tar z przenośnymi plikami wykonywalnymi, które mogą być uruchamiane zarówno w odniesieniu do ścieżek w przestrzeni nazw użytkownika, jak i w odniesieniu do PRoot;
- W „guix pull” zapewniono formowanie cache'a pakietów w celu przyspieszenia operacji wyszukiwania po nazwie i zapewniono wbudowanie pakietu „glibc-utf8-locales”;
- Zagwarantowano pełną powtarzalność (bit po bicie) obrazów ISO generowanych przez polecenie „guix system”;
- Jako menedżera logowania użyto GDM zamiast SLiM;
- Zaprzestano wsparcia dla kompilacji Guix przy użyciu Guile 2.0.
Przypomnijmy, że menedżer pakietów GNU Guix oparty jest na dorobku projektu i oprócz typowych funkcji zarządzania pakietami wspiera takie możliwości jak przeprowadzanie transakcyjnych aktualizacji, możliwość wycofania aktualizacji, praca bez uzyskiwania uprawnień superużytkownika, wsparcie dla powiązanych z użytkownikami profili, możliwość jednoczesnej instalacji wielu wersji jednego programu, oraz środki do sprzątania (identyfikacja i usuwanie nieużywanych wersji pakietów). Aby określić scenariusze budowy aplikacji oraz zasady tworzenia pakietów, proponuje się użycie wyspecjalizowanego, wysokopoziomowego języka z orientacją na przedmioty oraz komponentów Guile Scheme API, umożliwiających wykonywanie wszystkich operacji zarządzania pakietami w funkcjonalnym języku programowania Scheme.
Obsługiwana jest możliwość używania pakietów przygotowanych dla menedżera pakietów Nix i umieszczonych w repozytorium
Oprócz operacji z pakietami możliwe jest tworzenie skryptów do zarządzania konfiguracją aplikacji. Przy budowie pakietu automatycznie ładują się i kompilują wszystkie związane z nim zależności. Możliwa jest zarówno instalacja gotowych binarnych pakietów z repozytorium, jak i budowa z kodu źródłowego z wszystkimi zależnościami. Zrealizowano narzędzia do utrzymywania wersji zainstalowanych programów w aktualnym stanie poprzez organizację instalacji aktualizacji z zewnętrznego repozytorium.
Środowisko budowy pakietów tworzy się w postaci kontenera, zawierającego wszystkie niezbędne komponenty do działania aplikacji, co pozwala na stworzenie zestawu pakietów, które mogą działać niezależnie od składu podstawowego środowiska systemowego dystrybucji, w której Guix używane jest jako nakładka. Między pakietami Guix możliwe jest określenie zależności, przy czym do wyszukiwania już zainstalowanych zależności używane jest skanowanie identyfikatorów haszy w katalogu zainstalowanych pakietów. Pakiety instalowane są w oddzielnym drzewie katalogów lub podkatalogu w katalogu użytkownika, co pozwala na ich równoległe współistnienie z innymi menedżerami pakietów i zapewnia wsparcie dla szerokiej gamy istniejących dystrybucji. Na przykład pakiet jest instalowany jako /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, gdzie „f42d58…” jest unikalnym identyfikatorem pakietu używanym do zarządzania zależnościami.
Dystrybucja zawiera tylko wolne komponenty i dostarczana jest z jądrem GNU Linux-Libre, oczyszczonym z niespokojnych elementów binarnych firmware. Do budowy używana jest GCC 8.3. Jako system inicjalizacji stosowany jest menedżer usług (), rozwijany jako alternatywa dla SysV-init z wsparciem dla zależności. Zarządzający demon i narzędzia Shepherd napisane są w języku Guile (jedna z realizacji języka Scheme), który również służy do określania parametrów uruchamiania usług. Podstawowy obraz wspiera pracę w trybie konsolowym, ale do instalacji 9714 gotowych pakietów, w tym komponenty stosu graficznego opartego na X.Org, menedżery okien dwm i ratpoison, środowisko graficzne Xfce, a także zbiór aplikacji graficznych.
Źródło: opennet.ru
