Deweloperzy NixOS zaprezentowali wersję NixOS 26.05 «Yarara» — nową stabilną wersję dystrybucji, opartej na deklaratywnej konfiguracji systemu i menedżerze pakietów Nix. Wersja ta będzie otrzymywać poprawki błędów oraz aktualizacje bezpieczeństwa do 31 grudnia 2026 roku, a poprzednia gałąź NixOS 25.11 «Xantusia» została uznana za przestarzałą i zakończy wsparcie 30 czerwca 2026 roku.
W przygotowaniu wydania uczestniczyli 2842 deweloperów, którzy wnieśli 59 703 commitów od ostatniego wydania. W Nixpkgs dodano 20 442 nowych pakietów, zaktualizowano 20 641 pakietów, usunięto 17 532 przestarzałych pakietów. W samym NixOS pojawiło się 85 nowych modułów i 1547 nowych parametrów konfiguracji.
Główne zmiany
Stage 1/initrd teraz domyślnie działa na systemd.
Wczesna faza rozruchu, odpowiedzialna za przygotowanie systemu przed uruchomieniem głównego systemu operacyjnego, została przeniesiona na systemd. Stara wersja skryptowa została uznana za przestarzałą i zaplanowana do usunięcia w NixOS 26.11. Tymczasowo można wrócić do poprzedniego działania przez boot.initrd.systemd.enable = false, ale deweloperzy tego rozwiązania nie zalecają. Dla systemów z dyskami LUKS osobno opisano szczegóły migracji, w tym poprawne wskazanie /dev/mapper/ oraz zmianę zachowania zapytania o hasło.Dodano system.nix jako alternatywny punkt wejścia do konfiguracji.
Oprócz klasycznych plików configuration.nix i flake.nix, teraz można używać system.nix. Pozwala to na konfigurację NixOS bez nix-channel, na przykład z wyraźnie przypiętym archiwum Nixpkgs. Domyślnie plik jest poszukiwany pod adresem /etc/nixos/system.nix, ale ścieżkę można zmienić za pomocą , --file i --attr.Jądro Linux domyślnie zaktualizowano z 6.12 do 6.18.
Reszta wspieranych gałęzi jądra pozostaje dostępna, jak wcześniej: użytkownik może wybrać potrzebną wersję przez konfigurację NixOS.D-Bus został domyślnie zastąpiony przez dbus-broker.
Zamiast klasycznej implementacji dbus teraz używany jest dbus-broker, który jest reklamowany jako bardziej wydajny i niezawodny, zachowując zgodność ze wzorcem implementacji D-Bus. Przełączenie implementacji wymaga ponownego uruchomienia, ponieważ bezpieczne ponowne uruchomienie D-Bus w trakcie sesji użytkownika jest niemożliwe. W razie potrzeby starą implementację można pozostawić poprzez services.dbus.implementation = "dbus".Testowy sterownik NixOS uzyskał backend oparty na systemd-nspawn.
Testy integracyjne mogą być teraz uruchamiane nie tylko w QEMU-VM, ale także w kontenerach systemd-nspawn. Powinno to przyspieszyć testy i zmniejszyć zużycie zasobów tam, gdzie pełna maszyna wirtualna nie jest potrzebna. Osobno zaznaczono możliwość testowania obciążeń GPU/CUDA dzięki mount-bind węzłów urządzeń hosta do kontenerów.Zaktualizowane kluczowe komponenty Nixpkgs.
GCC zaktualizowano z 14 do 15, Node.js domyślnie — z 22 LTS do 24 LTS, Ruby — z 3.3 do 3.4. Deweloperzy GCC i Node.js osobno ostrzegają o możliwych niezgodnych z wcześniejszymi wersjami zmianach.GNOME zaktualizowano do wersji 50 „Tokyo”.
W wydaniu zawarto GNOME 50, w którym ogłoszono ulepszenia dostępności, pracy z wyświetlaczami i inne zmiany w środowisku pulpitu.Ostatnie wydanie Nixpkgs z obsługą x86_64-darwin.
Nixpkgs 26.05 będzie ostatnim wydaniem z obsługą Intel macOS. Binarne pakiety i wsparcie dla platformy będą dostępne do końca cyklu życia 26.05, ale w 26.11 wsparcie dla x86_64-darwin oraz kompilacja ze źródeł zostaną zakończone.
Nowe moduły
W NixOS 26.05 dodano wiele nowych modułów dla usług i programów. Wśród nich wyróżniają się:
- services.openthread-border-router — moduł dla OpenThread Border Router, bramy między sieciami mesh Thread a sieciami IP.
- programs.atuin — integracja Atuin do synchronizacji, wyszukiwania i tworzenia kopii zapasowej historii powłoki.
- services.meshtasticd — wsparcie dla Meshtastic, zdecentralizowanej sieci mesh dla urządzeń o niskim poborze mocy.
- services.reaction — demon podobny do fail2ban: analizuje wyjście programów i może blokować adresy przy powtarzających się błędach autoryzacji.
- services.vinyl-cache — nowy moduł po przemianowaniu projektu Varnish Cache na Vinyl Cache; stary services.varnish pozostaje na razie dla migracji.
- services.rqbit — klient BitTorrent napisany w Rust z HTTP API i interfejsem webowym.
- services.tailscale.serve — deklaratywna konfiguracja Tailscale Serve do publikacji lokalnych usług w tailnet.
Dodano także moduły dla ImmichFrame, PdfDing, mangowc, papra, kiwix-serve, nohang, Clevis/LUKS askpass, Rustical, Ente Auth, linkding, Tinyauth, Dawarich, Perses, tabbyAPI, Headplane i wielu innych usług.
Zmiany dla administratorów i stacji roboczych
Konfiguracja NVIDIA stała się bardziej deklaratywna.
Dodano parameter hardware.nvidia.branch do wyboru gałęzi sterownika, zaktualizowano połączenie modułu NixOS z nowym układem pakietu nvidia-x11, a parametry kernel module można teraz ustawiać przez hardware.nvidia.moduleParams, po czym są zapisywane w konfiguracji modprobe, a nie przekazywane przez globalną linię poleceń jądra.Wine zaktualizowano do gałęzi 11.0.
Dla użytkowników uruchamiających aplikacje i gry Windows przez Wine oznacza to przejście na nową dużą gałąź Wine w ramach stabilnego zestawu pakietów NixOS 26.05.Certyfikaty ACME otrzymały dynamiczny czas odnawiania.
Jeśli security.acme.defaults.validMinDays nie jest ustawiony, NixOS teraz oblicza moment odnawiania z uwzględnieniem terminu ważności certyfikatu: dla zwykłych certyfikatów odnawianie ma miejsce po upływie dwóch trzecich czasu życia, dla krótkoterminowych - po upływie połowy okresu.OpenSSH zyskał nowe parametry.
Teraz można generować klucze hosta przez services.openssh.generateHostKeys = true, nawet jeśli sam serwer SSH nie jest włączony. Jest to przydatne dla systemów, które potrzebują kluczy hosta SSH do innych zadań, na przykład agenix lub sops-nix. Dodano także parametr services.openssh.enableRecommendedAlgorithms, który pozwala zrezygnować z zestawu algorytmów polecanych przez NixOS.Nextcloud domyślnie aktualizuje się do v33 dla nowych systemów.
Dla konfiguracji z system.stateVersion >= 26.05 domyślnie używane jest pkgs.nextcloud33. Programiści ostrzegają, że bezpośrednie aktualizowanie z Nextcloud 31 lub starszych wersji do 33 jest niemożliwe: najpierw trzeba przejść przez wersję pośrednią.Wyłączono hałaśliwe logowanie odrzuconych połączeń zapory.
Parametr networking.firewall.logRefusedConnections teraz domyślnie wynosi false, ponieważ na serwerach, dostępnych z internetu, takie wiadomości mogą szybko zapychać bufor pierścieniowy jądra i wypierać bardziej przydatne informacje diagnostyczne.glibc zaktualizowano do 2.42.
Nowa wersja nie czyni stosu wykonywalnym, jeśli wymaga tego biblioteka współdzielona. Programiści uważają takie przypadki za błędy i sugerują poprawę kompilacji poprzez -z,noexecstack lub usunięcie flagi za pomocą patchelf --clear-execstack; globalne włączanie starego zachowania nie jest zalecane z powodów bezpieczeństwa.
NixOS 26.05 – wydanie z zauważalnymi zmianami infrastrukturalnymi: przejście initrd na systemd, rezygnacja z domyślnego starego D-Bus, nowy sposób opisywania systemu za pomocą system.nix, duża aktualizacja Nixpkgs i przygotowania do usunięcia przestarzałych platform i modułów.
Źródło: linux.org.ru
