Software-update: NixOS 22.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. Donderdag is versie 22.11 van NixOS uitgekomen en de belangrijkste veranderingen die daarin zijn aangebracht zijn hieronder voor je op een rijtje gezet.

Release 22.11 (“Raccoon”) highlights

In addition to numerous new and upgraded packages, this release includes the following highlights:

  • Software that uses the crypt password hashing API is now using the implementation provided by libxcrypt instead of glibc’s, which enables support for more secure algorithms.
    • Support for algorithms that libxcrypt does not consider strong are deprecated as of this release, and will be removed in NixOS 23.05.
    • This includes system login passwords. Given this, we strongly encourage all users to update their system passwords, as you will be unable to login if password hashes are not migrated by the time their support is removed.
      • When using users.users.<name>.hashedPassword to configure user passwords, run mkpasswd, and use the yescrypt hash that is provided as the new value.
      • On the other hand, for interactively configured user passwords, simply re-set the passwords for all users with passwd.
      • This release introduces warnings for the use of deprecated hash algorithms for both methods of configuring passwords. To make sure you migrated correctly, run nixos-rebuild switch.
  • The NixOS documentation is now generated from markdown. While docbook is still part of the documentation build process, it’s a big step towards the full migration.
  • aarch64-linux is now included in the nixos-22.11 and nixos-22.11-small channels. This means that when those channel update, both x86_64-linux and aarch64-linux will be available in the binary cache.
  • aarch64-linux ISOs are now available on the downloads page.
  • nsncd is now available as a replacement of nscd.
    nscd is responsible for resolving hostnames, users and more in NixOS and has been a long standing source of bugs, such as sporadic network freezes. More context in this issue. Help us test the new implementation by setting services.nscd.enableNsncd to true. We plan to use nsncd by default in NixOS 23.05.
  • Linode cloud images are now supported by importing ${modulesPath}/virtualisation/linode-image.nix and accessing system.build.linodeImage on the output.
  • hardware.nvidia has a new option, hardware.nvidia.open, that can be used to enable the usage of NVIDIA’s open-source kernel driver. Note that the driver’s support for GeForce and Workstation GPUs is still alpha quality, see the release announcement for more information.
  • The emacs package now makes use of native compilation which means:
    • Emacs packages from Nixpkgs, builtin or not, will do native compilation ahead of time so you can enjoy the benefit of native compilation without compiling them on you machine;
    • Emacs packages from somewhere else, e.g. package-install, will perform asynchronously deferred native compilation. If you do not want this, maybe to avoid CPU consumption for compilation, you can use (setq native-comp-deferred-compilation nil) to disable it while still benefiting from native compilation for packages from Nixpkgs.

NixOS

Versienummer 22.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

03-12-2022 • 19:17

19

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 (19)

19
19
10
1
0
6
Wijzig sortering
Kan iemand een paar voorbeelden geven van situaties waar dit fijner kan werken tov apt of yum?
- Atomic rollbacks, d.w.z. als je een rollback doet en bv stroom valt uit in 't midden, dan krijg je of de oude configuratie, of de nieuwe, maar geen mix van beide. Op OS niveau kan VZIW niets anders hieraan tippen: veen Windows, geen MacOS, en distros gebaseerd op apt, yum, pacman etc ook niet.
- Elke software package (waarbij verschillende versies van dezelfde library of application als verschillende packages worden gezien) wordt in een uniek pad op je file system geïnstalleerd, wat oa DLL / dependency hell volledig oplost. Dit omdat bv openssl 1.1 en openssl 3.0 tegelijkertijd naast elkaar op het systeem kunnen bestaan, en andere packages kiezen zelf waar ze gebruik van maken.
- Vanwege de atomic rollback support ben ik minder bang om te experimenteren met bepaalde settings. Niet iets dat ik per se zag aankomen, en dus ook niet echt origineel een motiverende factor, maar toch mooi meegenomen.
- Je systeembrede settings staan allemaal opgeslagen in 1 file, namelijk /etc/nixos/configuration.nix. Dit betekent dat een nieuwe machine opzetten op basis van een bestaande install doodeenvoudig én snel is. Toegegeven, er is iets van een learning curve met de Nix taal, maar het is een competent stuk software en geschikt voor z'n taak.
- Omdat NixOS gebouwd is op basis van os immutability, is er een kwaliteit van "als het werkt op mijn machine dan werkt het ook op jouw machine, en vice versa". Dit is met nadruk niet het geval met andere package managers en OSen, en het is een extreem prettige eigenschap omdat het veel minder ruimte laat voor lastig te fixen heisenbugs. Het resultaat is dan ook een stabieler systeem.
Rollbacks (zonder afhankelijk te zijn van filesystem of een externe tool), volledige OS declarative in config files (dus alles in dezelfde syntax en in enkele, vaste bestandjes).
Momenteel automatiseer ik dergelijke dingen met Ansible die onderliggend dan uiteindelijk package managers als apt aanroept, maar ik erger me regelmatig aan wat ik moet doen om iets terug te draaien, expliciet moeten aangeven dat iets 'absent' is voelt enorm slordig en er blijven meestal nog steeds dingen achter op het systeem.

Toch hier eens mee spelen, erg interessant concept.
Je slaat hier precies de spijker op zijn kop met Ansible. Met Ansible kan je idempotency garanderen. Maar als je een mutatie uitvoert na een initiële run van een Ansible playbook, dan zijn eigenlijk alle garanties verdwenen. Ik had gehoopt dat Ansible zou uitsterven na de opkomst van immutable infrastructure, maar mensen blijven er maar naar teruggrijpen.
Ik zou vooral Ansible voor 2 taken blijven gebruiken: 1 voor het opzetten van de bouwblokken waaruit de Immutable infra is opgebouwd. Dan kun je eenvoudig van technologie wisselen zonder dat je specifieke zaken moet regelen. Ansible kan dat redelijk hoog-niveau doen. Dus RHEL <> DEBIAN waar de een handiger is dan de ander. 2 reporting. Je kunt met Ansible ook heel goed inventarisaties doen op verschillende platformen zonder daar specifieke zaken voor te doen.
Momenteel automatiseer ik dergelijke dingen met Ansible die onderliggend dan uiteindelijk package managers als apt aanroept, maar ik erger me regelmatig aan wat ik moet doen om iets terug te draaien,
Als je denkt dat je je nu al ergert: Ansible (en Puppet) is speelgoed vergeleken met Nix. Dat geldt trouwens ook voor Apt en Yum (met Nix beheer je zowel je configuratie als je packages).

Al mijn servers en laptops, en de laptops van m'n kinderen draaien NixOS. Het is zo robuust dat al die devices de rolling release unstable volgen, en m'n router/firewall doet zichzelf zelfs rebooten bij kernel- of module-updates zoveel vertrouwen heb ik erin.

Interessante paper van Eelco van een paar jaar terug waarin een voorloper van Nix (Maak) beschreven wordt:
https://web.archive.org/w...ubs/iscsd-scm11-final.pdf
Naast de reacties die je al hebt gekregen, zie ook de comments op download: NixOS 20.09 en download: NixOS 21.05
Ik had deze distro al een tijdje in het vizier, maar heb het nog niet aangedurfd om deze te installeren. Binnenkort heb ik vakantie en ga "the plunge" toch maar eens wagen. Zal mij benieuwen. De leercurve van deze distro is wel ietsje steiler dan een "normale" Linux distro, is mij verteld. Maar als je het eenmaal eigen hebt gemaakt schijn je er een krachtig en mooi OS te hebben. Vooral de rollback feature schijnt erg goed te werken.

Nederlandse distro's doen het goed tegenwoordig, en daar mogen we blij mee zijn. NixOS, maar ook EndeavourOS (Arch-based) komt uit Nederland. Nice!
TL;DR: NixOS is heel handig en robuust, en ik moedig je aan het vooral te proberen.

Ik ben recentelijk zelf dus ook overgestapt op NixOS. In mijn geval kwam het omdat Ubuntu gewoon consistent het bed onderscheet:
- Na een update is het herhaaldelijk gebeurd dat mijn grub update gesloopt is, wat Ik dan zelf fijntjes handmatig mag gaan fixen. Dit terwijl de config in kwestie aangemaakt is door Ubuntu zelf en na installatie niet door mij aangepast.
- De Nvidia drivers op Ubuntu zijn een ramp. De performance was om te huilen in Kubuntu 22.04, en ik kon regelmatig de case fans horen. Het wss eigenlijk pas na de overstap naar NixOS dat ik door kreeg hoe groot dat verschil is: ik zat al te kijken naar een nieuwe desktop ter vervanging van m'n 5 jaar oude Ryzen chip, maar na de overstap naar NixOS is alles zo soepel en vlot dat de beste machine rustig nog een tijdje meekan.
- Dit is een van de grootste ergernissen die ik had met Ubuntu: Snaps. Het idee erachter is een goede (package software met alle dependencies zodat applicaties makkelijk te distribueren zijn), maar de uitvoering is bagger op minimaal 2 manieren: 1. Performance. Ik merk dat verschil best tussen Firefox snap en Firefox native. 2. Snaps update policies zijn user-hostile in de zin dat je op een gegeven moment een notificatie krijgt dat je FF moet sluiten want er komt een update aan. Nou dan doe ik dat, gebeurt die update niet. Een apt update draaien maakt daarbij natuurlijk ook geen verschil. Maar als je FF open laat dan zal die zonder verdere ceremonie op een gegeven moment zichzelf afsluiten, en als je on opgeslagen data had dan heb je maar dikke pech. De drang om updates te pas en te onpas door de strot van gebruikers heen moet worden geduwd kan ik begrijpen als software developer maar als gebruiker word ik er echt giftig van. De beslissing over wat er moet gebeuren met mijn hardware en software, en wanneer dat moet gebeuren, ligt bij welgeteld 1 persoon, en dat ben ik.

Nou, een paar weken geleden na de zoveelste self-bork van Ubuntu was ik 't helemaal zat en heb op een oude laptop NixOS geïnstalleerd, bij wijze van proef. Dat beviel al heel snel zo goed dat m'n Ryzen workstation inmiddels ook over is.
In mijn ervaring werken dingen gewoon beter dan ze dat deden onder Ubuntu. Ik had destijds NixOS 22.05 geïnstalleerd, en heb inmiddels het equivalent van een apt dist-upgrade gedaan. Onder Ubuntu en zelfs non-stable Debian ben ik daar altijd huiverig voor geweest na het een paar keer geprobeerd te hebben rond 2012 en toen snel de pijnlijke les geleerd te hebben dat dat een Slecht Idee was. Zet dat eens naast m'n ervaring met NixOS: update de channel, draai `nixos-switch --rebuild`, en nul drama, een paar minuten en een reboot later draaide ik NixOS 22.11. Dat smaakt naar meer.

En als mooie bonus wordt emacs nu natively gecompileerd, waardoor het een flink stuk sneller is geworden. Niets dat ik niet op Ubuntu had kunnen krijgen met wat werk, maar op NixOS is het standaard met de juiste flags gebouwd. Echt supertof :)

[Reactie gewijzigd door Jeanpaul145 op 22 juli 2024 18:30]

NixOS is heel handig en robuust, en ik moedig je aan het vooral te proberen.
Ga ik zeker doen zodra ik vrij ben. Ik heb al een laptop geoptimaliseerd (extra geheugen en SSD erin) en klaargezet voor NixOS. Het zal mij benieuwen.

De problemen die jij ervaart met Ubuntu (of een afgeleide ervan) herken ik zelf niet. Ik heb doorgaans nooit grote problemen gehad met Ubuntu en op Ubuntu gebaseerde distro's. Nu heb ik nog één Ubuntu-installatie en 3 Xubuntu's op diverse laptops draaien (in een multiboot met Windows en andere distro's), maar die gaan allemaal prima naast elkaar.

Heb je toevallig ook een dual- of multiboot met meerdere Linuces op één harde schijf? Zo ja, kijk eens hoe GRUB geïnstalleerd is? Zelf laat ik één distro GRUB in sda (de Master Boot Record) installeren, en de overige distro's GRUB in hun eigen partitie installeren. Dit zodat GRUB niet steeds wordt overschreven door de andere distro in de Master Boot Record, waardoor je tegen problemen op kan lopen. Enige kleine nadeel is dan dat je GRUB alleen in je "master-distro" kan verversen/vernieuwen. Dus als er bijvoorbeeld een kernelupdate is geweest in je "slave-distro", dan doe je de verversing van GRUB in je "master-distro". Ik doe het al jaren zo, en het zorgt nooit voor problemen.

Toen ik nog veel minder bedreven was in Linux en bij een dual- of multiboot GRUB elke distro steeds in sda installeerde kreeg ik weleens gezeik met een andere distro die ineens een kernel panic gaf na een GRUB-update op een andere distro. Vooral op Arch gebaseerde distro's (is mijn persoonlijke ervaring) willen niet erg lekker reageren als GRUB ineens is overschreven door een op Debian/Ubuntu gebaseerde distro. Dat kan te maken hebben dat GRUB van een op Arch gebaseerde distro (2.06) veel actueler is dan die van Debian of Ubuntu (2.04). Omgekeerd is het geen probleem. Sinds ik dat in ogenschouw neem leven al die distro's gebroederlijk naast elkaar. Op de computer waar ik dit bericht op tik staan 5 verschillende distro's (Manjaro, Linux Mint, Ubuntu MATE, KDE Neon en Debian 11.5 (Bullseye) + één Windows-installatie), waarbij Manjaro "de baas" is over GRUB. :)
Heb je toevallig ook een dual- of multiboot met meerdere Linuces op één harde schijf?
Neuh, het is überhaupt geen multiboot machine, alleen Ubuntu stond erop, nu dus NixOS. Dus dat is het probleem sowieso niet.
Wel is het zo dat mijn hardware (vooral de CPU, een 5 jaar oude Threadripper 1950X, en de GPU, een oude Nvidia 1050Ti) niet bepaald het meest populair is, en ik vermoed dat Ubuntu een aantal kernel settings heet getweaked t.o.v de defaults die niet lekker samengaan met mijn hardware.
Maar dan nog, vroeger (voor 20.04) werkte het wel prima.

Maar goed uitmaken doet 't niet meer. Ubuntu staat voor mij nu in de achteruitkijkspiegel, want NixOS bevalt echt heel goed :)
Upgrading ging veer vlot; ik heb de rollback feature niet nodig gehad.
Staat foutje in de tekst:
Donderdag is 22.05 van NixOS uitgekomen

Moet 22.11 zijn.
Ik denk dat deze toevoeging relevant is. Dit is duidelijk geen tikfout.
Het was geen toevoeging maar een tikfout. Bart (de auteur) had gewoon de tekst van de vorige versie (22.05) overgenomen en was vergeten het versienummer in de tekst aan te passen. Geeft niet, kan gebeuren. Dat valt op Tweakers in de categorie 'tikfouten', en daar is een feedback-knop voor (rechtsboven het artikel) en die verwijst naar dat het spel- en tikfoutjestopic.

En redacteur Yannick was het daarmee eens, want naar aanleiding van een melding in dat topic heeft hij de fout ondertussen gecorrigeerd. :)

[Reactie gewijzigd door Bergen op 22 juli 2024 18:30]

Poogt verdacht veel van dezelfde doelen te bereiken als een andere interessante - maar nooit geprobeerde niche distro - guix.
Andersom, aangezien guix een soort fork van Nix is.

Op dit item kan niet meer gereageerd worden.