Software-update: NixOS 23.11

NixOS logo (79 pix)NixOS is een Linux-distributie met een packagemanager die het mogelijk maakt om de configuratie declaratief te maken, in plaats van die op te bouwen uit een sequentie van commando's en configuratiebestanden. Onder de motorkap gebruikt Nix een functionele programmeertaal waarmee het systeem of de configuratie kan worden gedefinieerd. Nix is bedacht door Eelco Dolstra, een Nederlandse informaticus die aan de Universiteit van Utrecht op NixOS is gepromoveerd. Meer informatie over NixOS kan op ons eigen forum worden gevonden. Woensdag is versie 23.11 van NixOS uitgekomen en de belangrijkste veranderingen die daarin zijn aangebracht zijn hieronder voor je op een rijtje gezet.

Release 23.11 (“Tapir) Highlights
  • FoundationDB now defaults to major version 7.
  • PostgreSQL now defaults to major version 15.
  • GNOME has been updated to version 45, see the release notes for details. Notably, Loupe has replaced Eye of GNOME as the default image viewer, Snapshot has replaced Cheese as the default camera application, and Photos will no longer be installed.
  • Support for WiFi6 (IEEE 802.11ax) and WPA3-SAE-PK was enabled in the hostapd package, along with a significant rework of the hostapd module.
  • LXD now supports virtual machine instances to complement the existing container support
  • The nixos-rebuild command has been given a list-generations subcommand. See man nixos-rebuild for more details.
  • systemd has been updated from v253 to v254, see the release notes for more information on the changes.
    • boot.resumeDevice must be specified when hibernating if not in EFI mode.
    • systemd may warn your system about the permissions of your ESP partition (often /boot), this warning can be ignored for now, we are looking into a satisfying solution regarding this problem.
    • Updating with nixos-rebuild boot and rebooting is recommended, since in some rare cases the nixos-rebuild switch into the new generation on a live system might fail due to missing mount units.
  • sudo-rs, a reimplementation of sudo in Rust, is now supported. An experimental new module security.sudo-rs was added. Switching to it (via security.sudo-rs.enable = true;) introduces slight changes in sudo behaviour, due to sudo-rs’ current limitations:
    • terminfo-related environment variables aren’t preserved for root and wheel;
    • root and wheel are not given the ability to set (or preserve) arbitrary environment variables.

    Note: The sudo-rs module only takes configuration through security.sudo-rs, and in particular does not automatically use previously-set rules; this could be achieved with security.sudo-rs.extraRules = security.sudo.extraRules; for instance.

  • glibc has been updated from version 2.37 to 2.38, see the release notes for what was changed.
  • linuxPackages_testing_bcachefs is now soft-deprecated by linuxPackages_testing.
    • Please consider changing your NixOS configuration’s boot.kernelPackages to linuxPackages_testing until a stable kernel with bcachefs support is released.
  • All ROCm packages have been updated to 5.7.0.
    • ROCm package attribute sets are versioned: rocmPackages -> rocmPackages_5.
  • yarn-berry has been updated to 4.0.1. This means that NodeJS versions less than 18.12 are no longer supported by it. More details at the upstream changelog.
  • If the user has a custom shell enabled via users.users.${USERNAME}.shell = ${CUSTOMSHELL}, the assertion will require them to also set programs.${CUSTOMSHELL}.enable = true. This is generally safe behavior, but for anyone needing to opt out from the check users.users.${USERNAME}.ignoreShellProgramCheck = true will do the job.
  • Cassandra now defaults to 4.x, updated from 3.11.x.

NixOS

Versienummer 23.11
Releasestatus Final
Besturingssystemen Linux
Website NixOS
Download https://nixos.org/download.html
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

30-11-2023 • 08:55

16

Submitter: terabyte

Bron: NixOS

Update-historie

06-'24 NixOS 24.05 43
11-'23 NixOS 23.11 16
12-'22 NixOS 22.11 19
05-'22 NixOS 22.05 6
12-'21 NixOS 21.11 0
06-'21 NixOS 21.05 15
10-'20 NixOS 20.09 10
Meer historie

Reacties (16)

16
16
9
0
0
7
Wijzig sortering
Lekker, NixOS voor alles. Mijn dev omgevingen, mijn computers, mijn servers, heerlijk 👍👍👍
Ik ken NixOS eigenlijk niet, maar is dit dan ook de situatie waarvoor het nuttig is? PC's, homelab, etc. Want voor productie omgevingen zie ik zo gauw eigenlijk meer nadelen dan voordelen tegenover je omgeving optuigen met, bijvoorbeeld, Ansible.
Ansible is een oplossing voor een probleem dat niet bestaat in de Nix-wereld
En de beste oplossing is de oplossing die niet nodig is.

Nix is gewoon goed ontworpen.
Maar je bent natuurlijk wel volledig gebonden aan Nix.
Het grappige vanuit mijn perspectief is dat dit een compleet non-event is:
Ik ben een nixos unstable gebruiker, en dat werkt als een rolling distro dus updates komen beschikbaar zodra ze er zijn, itt bij de volgende grote distro update.
Wat anders is bij nixos is dat dit gewoon stabiel werkt in de praktijk. Zelf heb ik in het afgelopen jaar nog geen breakage gezien, en dat was bij Ubuntu (toen ik dat nog gebruikte) wel echt anders.
Mwoah gebruik zelf ubuntu en debian met btrfs. Bij problemen binnen 5 seconden het laatste snapshot geboot en doorgaan :) ! Immutable configuratie in linux inmiddels flink achterhaald door betere filesystemen (zts, btrfs).
Debian stable is idd prima stabiel, maar kost me te veel werk om te configureren en te onderhouden.

Met Ubuntu heb ik herhaaldelijk gehad dat het OS zichzelf sloopte, en Snap is gewoon een ramp vanuit UX perspectief op elke mogelijke manier, maar werd me wel bij elke install door de strot geduwd. En ja ik kon het uninstallen blah blah en ik ben het zat dingen te moeten corrigeren die verkloot zijn door mensen die beter zouden moeten weten. Confugureerbaarheid is belangrijk, maar defaults ook.
Dus, NixOS. Doet wat ik wil, en specifiek ook niets dat ik niet wil.

Die 2 technologieën die je noemt (btrfs vs Nix) adresseren hele andere problemen en zijn totaal niet vergelijkbaar.

Maar als je dat toch per se zou willen doen, je argument kan ik triviaal 180° omdraaien: Met NixOS heb ik geen btrfs nodig om mijn systeem te kunnen snapshotten.

Maar you do you :)

[Reactie gewijzigd door Jeanpaul145 op 23 juli 2024 17:23]

Voor mij de ideale distro! Flinke leercurve, maar dat is het helemaal waard. Het declaratief kunnen definiëren van je hele systeem is echt fantastisch. En zeker als je meerdere systemen hebt zoals ik, dan kun je een gezamenlijke basis maken met specifieke onderdelen voor de verschillende systemen erbovenop. Dus dingen als htop, vim en shell-configuratie gewoon overal hetzelfde, maar op servers bepaalde diensten zoals nginx en/of databases en op laptops applicaties zoals firefox en thunderbird (inclusief config!).
OMG! Dit ziet er echt heel vet uit net even op youtube gekeken. O+ O+
"NixOS is een Linux-distributie met een packagemanager die het mogelijk maakt om de configuratie declaratief te maken, in plaats van die op te bouwen uit een sequentie van commando's en configuratiebestanden."

Kan iemand dit voor mij in Jip en Janneke taal uitleggen?
Normaliter heeft een Linux distributie een zogenaamde package manager. Dit is dus gewoon bijvoorbeeld op debían based distributies zoals Ubuntu "apt". Dit maakt het mogelijk om in je command line "apt install <programma>" te typen waarna je programma geïnstalleerd is. Dit commando zet alles op voor je, dus het installeert het programma op een locatie waar het vindbaar is, samen met alle configuratie die dit programma nodig heeft.

In NixOS is het hele concept van "ik vul een 'install programma' command in en zie wel waar het terecht kom, als ik het maar kan runnen" uit het raam gegooid en hebben ze gezegd "je kan je programma's alleen "installeren" door ze in een config te zetten in een specifieke config taal".

Dus je maakt een config waar in staat welke programma's je op je Linux systeem beschikbaar wil hebben, en dan bouw je die config en dan zorgt nix ervoor dat je programma's op je systeem komen te staan én dat je ze kan runnen.

Het voordeel hiervan is dat je altijd precies weet welke packages je geïnstalleerd hebt staan, en zodra je iets toevoegt wat kapot is of wat je systeem kapot maakt reboot je gewoon en start je de vorige configuratie van je nix, en dan is het net of er niks gebeurd is. Een ander voordeel is dat je dus nooit random over gebleven bestanden hebt staan van packages die je misschien ooit geïnstalleerd hebt gehad maar er weer af hebt gegooid. Nog een voordeel is dat je op elk willekeurig systeem* deze config kan bouwen en inladen, en het resultaat is een Linux installatie die op je 2 systemen precies hetzelfde doet. Nadelen zijn oa de steile leercurve van het leren van deze configuratie taal, en veel executables die niet open source zijn, zijn niet voor de hand liggend om te runnen.

*met dezelfde architectuur, met arm, mac, etc zitten er nog wat extra haken en ogen aan

Dus in plaats van voor elk programma wat je wil een install commando uit te voeren, heb je 1 config waar alle packages die je had gewild in staan. Deze komen dan uit de nix servers en worden op je systeem gedownload, en nix richt zijn symlinks dan zo in dat je al je packages kan runnen. Wat nix ook doet is alle dependencies van alle packages mee geven met de respectievelijke package, dus je zal nooit in de knoop komen met missende dependencies.
Dank je, kijk dat is een super uitleg. Misschien offtopic, maar wellicht weet je ook het antwoord op de volgende vraag:
Het lijkt erop dat Nixos het principe van een ‘vervuilde’ pc wil oplossen. Ik vraag mij al lange tijd af, waarom is er niet een distro waarbij je alles dat je installeert, inclusief alle dependancies, in een aparte container draait? Eigenlijk net zo als bij alle smartphone os-sen, zoals iOS en Android. Schijfruimte kost tegenwoordig nagenoeg niets en je zorgt er ook voor dat je nooit je systeem vervuilt. Volgens mij is het principe van shared libraries met de super goedkope opslag van tegenwoordig, compleet achterhaald.
Hmm, hier kan ik niet echt antwoord op geven, ik heb namelijk geen idee wat distros allemaal voor zichzelf bedenken. Wellicht dat ze niet zó afhankelijk willen zijn van de whims van de devs van container oplossingen, of niet zelf al die effort daarin willen steken.

Daarbij, het uitgangspunt van nix is niet zo zeer dat je een "clean" OS houdt, maar dat je systeem altijd reproduceerbaar is. Dus dat je een "clean" os daarmee makkelijk kan bewerkstelligen is slechts een bijkomstigheid.
En kan iemand in Jip en Janneke taal duidelijk maken of dit een distro is die door geen-command-line linux-geinteresseerde als desktop gebruikt kan worden? Ik heb de indruk van niet.
Ook zou ik de distro in live-modus willen uitproberen vanuit een USB-live-stick. Is dit mogelijk?
Zou het niet proberen. Configuratie gebeurd vaak via configuratiebestanden ipv klikken in een GUI en het "upgraden" van je systeem gebeurd normaliter ook via de CLI. Dit kan wel allemaal in GUI maar ik zou gewoon bij iets als een Ubuntu blijven wat dat betreft.
Nee, ja.

Wat je wel zou kunnen doen is een config van iemand "jatten" én deze runnen, wat je dan krijgt is iemand anders al zijn persoonlijke layout preferences, maar zou het wel moeten werken. Het wordt echter lastig als je dan iets nieuws wil installeren of een bug in de config tegen komt, want dan moet je in de config duiken om het te kunnen fixen, voor zowel nieuwe dingen instaleren als bugs fixen bedoel ik dan

Op dit item kan niet meer gereageerd worden.