Software-update: NixOS 24.05

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. Kort geleden is versie 24.05 van NixOS uitgekomen en de belangrijkste veranderingen die daarin zijn aangebracht zijn hieronder voor je op een rijtje gezet.

Release 24.05 (“Uakari”) Highlights

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

  • The default kernel package has been updated from 6.1 to 6.6. All supported kernels remain available.
  • For each supporting version of the Linux kernel, firmware blobs are compressed with zstd. For firmware blobs this means an increase of 4.4% in size, however a significantly higher decompression speed.
  • NixOS now installs a stub ELF loader that prints an informative error message when users attempt to run binaries not made for NixOS.
    • This can be disabled through the environment.stub-ld.enable option.
    • If you use programs.nix-ld.enable, no changes are needed. The stub will be disabled automatically.
  • On flake-based NixOS configurations using nixpkgs.lib.nixosSystem, NixOS will automatically set NIX_PATH and the system-wide flake registry (/etc/nix/registry.json) to point <nixpkgs> and the unqualified flake path nixpkgs to the version of nixpkgs used to build the system.
    This makes nix run nixpkgs#hello and nix-build '<nixpkgs>' -A hello work out of the box with no added configuration, reusing dependencies already on the system. This may be undesirable if Nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled. To disable it, set nixpkgs.flake.setNixPath and nixpkgs.flake.setFlakeRegistry to false.
  • NixOS AMIs are now uploaded regularly to a new AWS Account. Instructions on how to use them can be found on https://nixos.github.io/amis. We are working on integrating the data into the NixOS homepage. The list in nixos/modules/virtualisation/amazon-ec2-amis.nix will stop being updated and will be removed in the future.
  • It is now possible to have a completely perlless system (i.e. a system without perl). Previously, the NixOS activation depended on two perl scripts which can now be replaced via an opt-in mechanism. To make your system perlless, you can use the new perlless profile:
    { modulesPath, ... }: {
      imports = [ "${modulesPath}/profiles/perlless.nix" ];
    }
    
  • Cinnamon has been updated to 6.0. Please be aware that the Wayland session is still experimental in this release and could potentially affect Xorg sessions. We suggest a reboot when switching between sessions.
  • GNOME has been updated to 46 “Kathmandu”. Refer to the release notes for more details. Notably this release brings experimental VRR support, default GTK renderer changes and WebDAV support in Online Accounts. This release we have also stopped including the legacy and unsupported Adwaita-Dark theme by default.
  • Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with services.desktopManager.lomiri.enable = true. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
  • LXQt has been updated to 2.0, which is based on Qt 6 and features Wayland support for many applications.
  • MATE has been updated to 1.28.
    • To properly support panel plugins built with Wayland (in-process) support, we are introducing the services.xserver.desktopManager.mate.extraPanelApplets option, please use that for installing panel applets.
    • Similarly, please use the services.xserver.desktopManager.mate.extraCajaExtensions option for installing Caja extensions.
    • To use the Wayland session, enable services.xserver.desktopManager.mate.enableWaylandSession. This is opt-in for now as it is in early an stage and introduces a new set of Wayfire closures. Due to known issues with LightDM, we suggest using SDDM as the display manager.
  • Plasma 6 is now available and can be installed with services.xserver.desktopManager.plasma6.enable = true;. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.

NixOS

Versienummer 24.05
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

07-06-2024 • 10:49

43

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

43
43
10
1
0
33
Wijzig sortering
Voor mensen de interesseert zijn om te starten met nix, hier zijn wat nuttige resources:
- https://nixos-and-flakes.thiscute.world/
- https://nix.dev
- Goede starter config: https://github.com/Misterio77/nix-starter-configs (begin met minimal!)

Je hoeft niet zoveel op de syntax te letten, voornamelijk knippen en plakken van het internet.
Wat blijft het toch met Linux en het domme knip- en plakwerk?

Ik ken het echt al heel lang, maar iets waar ik nogsteeds op zit te wachten, is dat ze eens afstappen van de terminal.

Dat was 25-30 jaar geleden nog wel iets, maar anno 2024 is blindelings dingen van het web kopiëren alles behalve veilig. Daarnaast ook totaal niet nodig (zie Android).

Ik heb het ruim 8 jaar als mijn main desktop OS gebruikt.
Een periode daarvan ook echt geprobeerd de terminal te vermijden.
Helaas zonder succes.

Mijn ervaring is dan ook echt wel anders.
Ik was namelijk wel helemaal klaar om bijna elk weekend wel weer iets te moeten fixen.

Ik krijg de indruk dat dit bij NixOs nog een stukje erger gaat worden.....
Ik ken het echt al heel lang, maar iets waar ik nogsteeds op zit te wachten, is dat ze eens afstappen van de terminal.
Hier kunnen we simpel over zijn, dat zal niet snel gebeuren. De reden daarvoor is dat je met de terminal gewoon sneller en meer gedaan kan krijgen dan dat oeverloze en geestdodende rondklikken voor configuratie. Fundamenteel is dat een hamer gemaakt van Lithium. Uiteindelijk krijg je de job wellicht gedaan maar oef wat een onplezierig proces is dat zeg. En aan 't eind kan je 't voor een nieuwe machine allemaal opnieuw gaan doen. Wat voor automatisering is dat?

Daarnaast is de Cli een onmisbaar stuk gereedschap voor wat voor software development dan ook, dus om die reden alleen al zal het blijven bestaan zolang software bestaat en ontwikkeld wordt.
Dan kunnen we er ook heel simpel over zijn en zal Linux nooit mainstream kunnen worden.

Gemiste kans wat mij betreft door zo onnodig principieel over iets te blijven.
Spijtig, vooral als je ziet hoe hard achteruit de alternatieven zijn, met name Windows.

Het merendeel van de wereld heeft namelijk geen zin, tijd of kennis om continu allerlei regels tekst uit hun hoofd te leren.
Dat argument werkt alleen als je plezier en aanleg hebt voor zulk soort dingen.

Het idee dat het sneller zou werken, hangt daar volledig 100% aan vast.

Wat ik overigens nog veel geestdodender vind. Is hersenloos stukjes tekst copy-pasten in een terminal die pas gevonden zijn naar minuten lang zoeken op het internet.
Dan kunnen we er ook heel simpel over zijn en zal Linux nooit mainstream kunnen worden.
Waar heb ik ook alweer geclaimd dat ik dat überhaupt wil? Je doet nogal wat aannames over iemand die je nooit hebt ontmoet.
Gemiste kans wat mij betreft door zo onnodig principieel over iets te blijven.
Spijtig, vooral als je ziet hoe hard achteruit de alternatieven zijn, met name Windows.
Nou ja het is een fundamentele bouwsteen.
En itt tot de alternatieven waar je nu over zucht, worden dingen in de FOSS wereld doorgaans gedaan met een "get it right" attitude, niet een "get rich" mindset. Daar komen vervolgens allerlei verschillen vandaan, en daar mag je van vinden wat je maar wil, maar woorden alleen veranderen niets.

Of je doet het op de FOSS - en de democratische, overigens - manier: in plaats van maar verzuchten dat iets niet is zoals je wil, make it happen yourself.
Het merendeel van de wereld heeft namelijk geen zin, tijd of kennis om continu allerlei regels tekst uit hun hoofd te leren.
Dat argument werkt alleen als je plezier en aanleg hebt voor zulk soort dingen.
En mensen zoals ik hebben geen tijd om naar eindeloos en ondankbaar (je betaalt er immers niet voor) geklaag aan te horen. Het levert niemand wat op, mij niet, en jou ook niet. Realiseer je dat dit geen commercieel product is, maar veel meer op een gegeven paard lijkt. En je kijkt 't vrolijk in de bek terwijl je zelf geen vinger lift om mee te helpen het beter te maken.
Wat ik overigens nog veel geestdodender vind. Is hersenloos stukjes tekst copy-pasten in een terminal die pas gevonden zijn naar minuten lang zoeken op het internet.
Naja, mensen die weten wat ze doen copy/pasten helemaal niet dus.
Maar je hebt je GUI, maak daar dan vrolijk gebruik van en blijf lekker bij Windows ¯\_(ツ)_/¯

[Reactie gewijzigd door Jeanpaul145 op 23 juli 2024 12:20]

Ik heb toch nooit gezegd dat jij die dingen geclaimd hebt?

Het was gewoon een algemene opmerking over de staat van Linux in zijn geheel.
De rest is ook vanuit dat oogpunt geschreven.

Dat is overigens geen geklaag, maar dat heet feedback, brainstormen en ideeën creëren.

Maar goed, een echt constructief gesprek is het zo niet.
Zeker niet met allerlei vingerwijzen, van dingen waar ik toevallig wel een actieve rol in heb gespeeld om dingen te veranderen.

Jammer.
Och daar heb je nu chatGPT voor, dus ik verwacht dat de terminal waar je gewoon tegen praat dit jaar nog komt als het er niet al is.
In tegenstelling met normale linux systemen, installeer je Nix via configuratiebestanden. Er is slechts één commando (`nixos-rebuild switch --flake .`) om de gehele configuratie toe te passen.

Je bent dus niet aan het kopieren en plakken naar een terminal (wat onveilig is), maar naar een configuratie bestand (wat veiliger is). Je kunt het immer lezen voordat je het toepast.

Bijvoorbeeld het switchen naar KDE kan met het volgende plakken in je configuratie bestand (bron):
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
Als dit je niet bevalt, kan je misschien Gnome installeren.

Omdat Nix 100% via configuratiebestanden werkt, is KDE weg als je die drie regels weghaalt. MAar als Gnome niet werkt, of je bent iets vergeten te installeren. Dan kan je via het bootmenu terugstappen naar een ouder moment.

[Reactie gewijzigd door Whazor op 23 juli 2024 12:20]

Duidelijk en dank voor de uitleg.

Dit is echter weer een goed voorbeeld waarvan ik denk waarom het niet gebruiksvriendelijker kan?
Waarom altijd maar weer de route om mensen het bos in te sturen (manuals, forums, yt videos etc) om vervolgens alles handmatig te moeten plakken of aanpassen in een config bestand?

Dit kan toch ook allemaal netjes in een configuratie of setup scherm direct met een gedegen uitleg er direct bij?

Nog beter is een korte wizard aan het begin van elke setup
Dat is echter amper meer werk als programmeur.

Natuurlijk komen jij, ik en anderen hier er wel uit.

Ik spreek voornamelijk voor mensen die extreem graag willen switchen, maar zoiets meer dan overweldigend vinden.
Als iemand van Windows naar Linux zou over gaan, dan is dat in de meeste gevallen niet direct naar Arch, Gentoo, NixOS of iets vergelijkbaar maar meestal iets op Ubuntu gebaseerd en die zijn een stuk gebruikers vriendelijke voor mensen die van Windows komen.
Er zijn wel een paar pogingen om zo’n GUI te maken voor NixOS, maar nog niets wat aan te bevelen valt.

Ik wel denk dat het ooit komt. Debian was vroeger ook moeilijk te gebruiken. Maar met Debian is nu Ubuntu gemaakt, wat gebruiksvriendelijk is. Zo heeft Valve ook Arch gebruikt voor de SteamDeck.

Nix heeft bepaalde innovaties die nuttig voor een vriendelijk desktop OS. Zoals het kunnen draaien van meerdere applicatie versies door elkaar, het terugdraaien van software. Zoals ik eerder al zei, ik kan zonder angst Gnome voor KDE verwisselen.
Ik heb het ruim 8 jaar als mijn main desktop OS gebruikt.
Een periode daarvan ook echt geprobeerd de terminal te vermijden.
Helaas zonder succes.
Misschien moet je is een Immutable/Atomic distributie gebruiken. Ik ben sinds kort over naar Silverblue, ik gebruik de terminal wel voor updates en Flatpaks te installeren maar ik heb 'm niet perse nodig want alles is via de Software winkel te doen dus ook het installeren van Flatpaks en systeem updates.

https://itsfoss.com/immutable-linux-distros
https://fedoraproject.org/atomic-desktops

Er is trouwens niks mis met een terminal te gebruiken. Bijvoorbeeld het is makkelijker iemand op een forum te helpen door te vragen wat uit te voeren in de terminal en daarvan de output te delen dan. 10 screenshots maken van een grafisch menu , dan 10 screenshots posten en dan dat die persoon weer hetzelfde doet.

[Reactie gewijzigd door Hydranet op 23 juli 2024 12:20]

De terminal is 1 van de voornaamste redenen waarom ik het liefst met linux werk
Als je geen terminal wil, gebruik dan gewoon Windows...
Als je onder Windows meer met packages wil werken zijn er alternatieven zoals Chocolatey, die wel een gui hebben, maar als je een lijst met vaste programma's wil installeren op een nieuwe Windows kan je sneller met (na installeren van Chocolatey) choco install [lijst met gewenste programma's] opgeven en de boel wordt geinstalleerd. Bijwerken van al die programma's kan via choco upgrade all -y. Dus net zo cli-based als onder linux met apt of yum. En daar kan je net zo goed een gui gebruiken (Software [met wel soms onduidelijk welk programma open-source is], of iets als Synaptic, waar je wel even aan het zoeken bent).
En in Windows moet je voor meer systeemzaken toch ook snel CMD of Powershell openen (okee, ook voor het installeren van Chocolatey is een admin Powershell nodig).
Voordeel van Linux is dat je (over het algemeen) één paneel hebt om alle software te updaten, die grosso modo ook niet zo dwingend is als de update van Windows (te vaak gehad dat de pc nog aanstond met een conversie maar door Windows zelf vrolijk halverwege een reboot had gedaan om te updaten), en dat is dan alleen Windows zelf (of misschien andere MS progs als Office).
Dus het blijft een beetje appels pinguins met peren ramen vergelijken.
Ik weet niet precies wat je probeert te bereiken met jouw rant, maar jouw terminal -angst laat vooral zien dat je de waarde ervan niet ziet of begrijpt. Helemaal prima verder, maar je conclusies zijn verder niet op feiten of daadwerkelijke ervaring met NixOS gebaseerd.

Het rondklikken in Windows (procedureel) is precies het tegenovergestelde van OS-as-code wat Nix in feite is. Het rondklikken om je config goed te krijgen is moeilijk te automatiseren of te reproduceren. Hoe lang duurt het voordat je alles weer OK hebt als je Windows op een nieuwe computer installeert? In Nix? 5 minuten.

[Reactie gewijzigd door terabyte op 23 juli 2024 12:20]

Wat zou ik dit OS graag gebruiken op mijn desktop en laptop maar ik vind de syntax gewoon té ingewikkeld en niet leuk om te leren. Hiermee wordt het gewoon 'werk' om mijn systemen te onderhouden.
Integendeel, uit ervaring kan ik zeggen dat ik nu minder dan ooit aan onderhoud van m'n OS en applicaties hoef te doen.
Ook het opzetten van een nieuwe machine is gereduceerd tot een paar minuten, waarbij verreweg de meeste tijd wordt besteed aan downloaden en installeren van packages.

V.w.b. de taal, ja Nix is anders, en dus ff wennen. Het goede nieuws is dat als je het echt gaat gebruiken ipv het te vermijden, je het snel oppakt.
Wat sommige mensen ook enorm helpt is de realisatie dat Nix eigenlijk in de basis gewoon json-achtige objecten zijn (associative datastructuur met values gebonden aan keys), met functies erbij zodat bv iets als `mkDerivation` aangeboden kan worden, een functie die veel handwerk automatiseert. In de basis is dat alles wat Nix is. Een hoop andere syntactische constructs (bv `with <name>`) zijn dingen die Nix in de loop der tijd heeft geëvolueerd om dingen makkelijker te maken voor gebruikers en derivation auteurs.

Ik vermoed dat je ergens een gap hebt in je kennis (kan gebeuren, k ben er zelf ook niet immuun voor) zodanig dat als je die gap zou overbruggen, alles gewoon klikt voor je v.w.b. Nix/NixOS.

Snuffel ff rond op https://nix.dev, het is een rijke site met allerlei Nix resources, inclusief een overzicht van hoe Nix de taal werkt.

[Reactie gewijzigd door Jeanpaul145 op 23 juli 2024 12:20]

Ook het opzetten van een nieuwe machine is gereduceerd tot een paar minuten, waarbij verreweg de meeste tijd wordt besteed aan downloaden en installeren van packages.
Uit werkelijk interesse wat is nou het voordeel hier aan. Mijn desktop systeem die herinstalleer ik toch niet dagelijks, wekelijks, maandelijks of jaarlijks? Voor een server kan ik mij het wel voorstellen maar in server omgevingen word nu meestal iets zoals Ansible of Puppet(of iets vergelijkbaars) gebruikt.

Mij lijkt NixOS ook wel interessant maar ik zie de voordelen er voor mezelf er niet in en ik heb op veel plekken gehoord en gelezen dat de officiële documentatie erg beroerd is vergeleken met de documentatie van veel andere distributies. Ik heb zelf nog even naar de documentatie gekeken en ik vind het echt heel onduidelijk hoe je nou NixOS moet installeren en configureren, behalve dat je iets met curl moet uitvoeren maar er word geen voorbeeld gegeven voor het bestand wat je de hele config in zet, heb dus bijvoorbeeld hier gekeken:

https://nixos.wiki/wiki/For_Beginners
https://nixos.wiki/wiki/NixOS_Installation_Guide

En heb nu ook geen zin om dagen/weken te gaan besteden om weer een nieuwe distributie te gaan leren alleen voor het dagelijks gebruik. Ik ben een paar maanden terug over gegaan naar een Immutable/Atomic distributie en dat bevalt mij eigenlijk wel goed en het koste mij ook niet heel veel tijd om de principes te begrijpen.

Dus wat zijn de voordelen van een desktop gebruiker perspectief behalve dat een desktop systeem herpoduceerbaar is en zij er nog andere voordelen tegen over een normale distributie of een Immutable/Atomic distributie?

[Reactie gewijzigd door Hydranet op 23 juli 2024 12:20]

Uit werkelijk interesse wat is nou het voordeel hier aan. Mijn desktop systeem die herinstalleer ik toch niet dagelijks, wekelijks, maandelijks of jaarlijks? Voor een server kan ik mij het wel voorstellen maar in server omgevingen word nu meestal iets zoals Ansible of Puppet(of iets vergelijkbaars) gebruikt.
Een paar dingen:
- eind vorig jaar moest ik plots een nieuwe machine kopen. Niet lang hoeven rondklooien met allerlei settings verspreid over allerlei software is een heuse deugd op zo'n moment
- Inmiddels heb ik meerdere NixOS machines, en korte wachttijden gecombineerd met iets als Colmena (waarmee ik op afstand mn nixos installs kan beheren) maakt de totale job van het beheren van al die hosts (vooral de installs updaten) zo simpel als een 1-liner command, waarna ik dus bijna meteen verder kan met m'n leven.
word nu meestal iets zoals Ansible of Puppet(of iets vergelijkbaars) gebruikt.
Die oplossingen, zo populair als ze zijn, zijn eigenlijk hacks om om te gaan met een probleem dat Nix de package manager gewoon op een fundamenteel niveau oplost. Met andere woorden: dat soort problemen zijn in de Nix wereld gewoon non-issues.
Mij lijkt NixOS ook wel interessant maar ik zie de voordelen er voor mezelf er niet in en ik heb op veel plekken gehoord en gelezen dat de officiële documentatie erg beroerd is vergeleken met de documentatie van veel andere distributies
Dat is appels met peren vergelijken. Een distro als Debian of Arch heeft een heus leger aan volunteers.
Nu zit NixOS niet helemaal zonder, maar als minder populair project heeft het gewoon minder resources ter beschikking.
Dat gezegd hebbende, wat er wel is is gewoon prima mee te werken, en een groot deel komt ook gewoon neer op "begrijp nix-lang, en het model van Nix de package manager". Wanneer dat begrijp er eenmaals is alleen heel veel dingen vanzelf op hun plek in mijn ervaring. En als er dan nog zaken over zijn is er altijd het Discourse forum voor Nix en NixOS.
Ik heb zelf nog even naar de documentatie gekeken en ik vind het echt heel onduidelijk hoe je nou NixOS moet installeren en configureren
Hier is een uitgebreide handleiding beschikbaar die het hele proces uit de doeken doet.
En heb nu ook geen zin om dagen/weken te gaan besteden om weer een nieuwe distributie te gaan leren alleen voor het dagelijks gebruik
Dit is helaas geen probleem waarvoor een technologische oplossing beschikbaar is.
Dus wat zijn de voordelen van een desktop gebruiker perspectief behalve dat een desktop systeem herpoduceerbaar is en zij er nog andere voordelen tegen over een normale distributie of een Immutable/Atomic distributie?
Hier zijn een paar:
- ik hoef me nooit zorgen te maken over een gefaalde update. Als een update een ongewenst effect heeft, kan ik zonder veel moeite een rollback doen naar een vorige generation zoals dat heet.
- Mede tengevolge van het vorige punt is het risico van experimenteren met de configuratie m'n systeem naar 0 gedaald. En geen stress hebben voelt heel goed
- Ik heb al herhaaldelijk gebruik gemaakt van het feit dat de hele config in een file zit opgeslagen. Maar het opzetten van een nieuwe machine met alles erop en eraan doodsimpel én snel.

[Reactie gewijzigd door Jeanpaul145 op 23 juli 2024 12:20]

Bedankt voor je reactie! Dat je ineens een nieuwe pc moet kopen gebeurt niet vaak normaal gesproken. De documentatie die ik heb gelezen zeggen ze dat je bijvoorbeeld wel handmatig je disk moet partitioneren. Het lijkt mij dat je dat ook in je systeem configuratie bestand kan zetten? Verder kan ik nog niet begrijpen hoe het installeren werkt en hoe je systeem configuratie bestand er moet uit komen te zien, er staat geen eens een voorbeeld bij van de officiële documentatie die ik heb kunnen vinden. En kan ook geen documentatie waar een overzicht staat van wat je in dat bestand allemaal kan defineren.

Het enige wat ik er van begrijp van NixOS is dat je een commando kan gebruiken om je hele systeem te installeren en configuren en dat je systeem moet uitschrijven in een configuratie bestand. Verder is de documentatie beroerd omdat als je Googled je betere voorbeelden kan vinden hoe het te doen, maar ik gebruik liever officiële documenatie. Als ik nu zou gaan proberen om NixOS te installeren en configureren, zou ik binnen een dag mijn pc het ruim uit gooien vanwege frustratie. Ik zou het wel willen maar op dit moment krijg al hoofdpijn van het zoeken hoe te installeren en hoe dat configuratie bestand werkt enz.

Mischien dat ik er wel een keer een dag voor ga zitten, maar op dit moment zou ik er meer tegen op zien als het leuk vinden omdat het beginnen met NixOS zo chaotisch lijkt zelfs voor iemand die al heel lang Linux gebruikt.

[Reactie gewijzigd door Hydranet op 23 juli 2024 12:20]

Het leuke van NixOS is dat je een VM kunt starten en alles kunt leren en configureren en dan heel simpel je config meenemen naar een echte machine.

Dat is waar ik nu ook mee bezig ben: eerste stapjes zetten, config proberen te begrijpen, en met home manager mijn huidige user-config op Ubuntu vast te leggen zodat ik straks heel makkelijk mijn distro kan vervangen door NixOS.
Ja dat klopt, alleen bij installeren zit toch nog wel een verschil in voor wanneer je installeert in bios mode vs uefi mode en wanneer je dingen zoals Qemu/KVM installeert. Maar ik ga het inderdaad wel een keer eerst in een vm installeren.
Bedankt voor je reactie! Dat je ineens een nieuwe pc moet kopen gebeurt niet vaak normaal gesproken.
Nee dat klopt, maar het leek me de moeite van het noemen toch waard omdat het me opviel hoe snel ik bij m'n nieuwe machine al het installatie- en configuratiewerk gedaan kreeg, met dank dus aan de declaratieve manier van configureren van Nix en NixOS.
De documentatie die ik heb gelezen zeggen ze dat je bijvoorbeeld wel handmatig je disk moet partitioneren.
Er is een grafische installer beschikbaar (een van de vele manieren om NixOS te installeren) die sterk lijkt op wat Ubuntu een lange tijd gebruikte.
Daarmee kan je sowieso handmatig je disk partitioneren, maar je kan de installer ook gewoon lekker z'n ding laten doen. Alleen eet je dan natuurlijk wat de pot schaft.
Het lijkt mij dat je dat ook in je systeem configuratie bestand kan zetten?
Sterker nog, dat is de manier om je systeem te configureren. Dat zet vervolgens de deur open voor hele toffe dingen, waaronder simpele maar effectieve backups van je hele systeem config (bv in een git repo), native DevOps, integratie met Docker voor wanneer dat wel wenselijk is (voor een NixOS gebruiker is dat vooral deployment van software naar een server denk ik), en nog veel meer.
Verder is de documentatie beroerd omdat als je Googled je betere voorbeelden kan vinden hoe het te doen, maar ik gebruik liever officiële documenatie.
Ik denk dat het vooral een discoverability issue is. Want er is uitstekende en uitgebreide documentatie beschikbaar. Maar blijkbaar is het vinden daarvan niet altijd zo simpel als wenselijk zou zijn.

https://nix.dev kende je al, kijk ook ff rond op
https://wiki.nixos.org/wiki/NixOS_Wiki
Met die 2 sites kan je denk ik een heel eind komen :)

[Reactie gewijzigd door Jeanpaul145 op 23 juli 2024 12:20]

Bedankt voor die links :)

Nou ik heb het in een vm draaien onder Qemu. Het viel mee, alleen nog zo even kijken waarom met uefi boot onder Qemu de iso niet wil booten om het daar mee te testen. Ik denk dat ik alleen nog moet uitzoeken wat het verschil is tussen "environment.systemPackages" en "packages = with pkgs" die onder de gebruiker deel staat. En daarna de verschillende package namen nog uitzoeken die ik nu gebruik en ik heb ook iets gehoord en gelezen over flakes dat je daar iets mee kan.
cat /etc/os-release
ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05.984.0b8e7a1ae5a9"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_END="2024-12-31"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"
Dus ik denk dat ik er wel kom nu ik een draaiend systeem heb op een encrypted btrfs partitie, moet alleen de resterende basis principes nog even zien te begrijpen zodat ik weet dat ik alles doe zoals het hoort met NixOS. Mag hopen dat dat in die wiki staat ;)
Ik heb intussen NixOS op mijn desktop geïnstalleerd, nadat ik door door deze link ben gegaan was het aardig makkelijk. Had niet gezien dat je een basis configuratie kan genereren net zoals je met Arch daar een commando voor hebt. Er zijn bepaalde dingen die ik nog niet helemaal snap, dus dat zal even tijd kosten en ervaring en misschien wel een andere manier instellingen dan ik gewend ben.
Ik verwacht dat je met de tijd zelf voordeel na voordeel zal ontdekken, bijvoorbeeld DLL hell is gewoon geen ding als je met Nix (en dus ook NixOS) werkt.
Erg bedankt voor je reacties en je advies en de links die je deelde. Achteraf was het toch niet moeilijker als Arch Linux. Ik moest er gewoon even voor gaan zitten :)

Het enige waar ik denk ik nog wel naar moeten kijken is Home Manager.
https://nixos.wiki/wiki/Home_Manager

En een handige manier om om te gaan met paden in my zsh configuratie van de drie plugins die ik gebruik, heb daar nog niks handigs voor kunnen vinden. Dus heb deze voor nu maar met de hand gecloned en vervolgens die paden in mijn zshrc gestopt.

Nog een laatste vraag, heb je nog wat algemeen advies nu ik het geïnstalleerd wat ik misschien nog niet zou kunnen weten omdat ik nog niet heel veel ervaring heb met NixOS?

[Reactie gewijzigd door Hydranet op 23 juli 2024 12:20]

Nog een laatste vraag, heb je nog wat algemeen advies nu ik het geïnstalleerd wat ik misschien nog niet zou kunnen weten omdat ik nog niet heel veel ervaring heb met NixOS?
Zeker:
- Standaard wordt de huidige stable channel geïnstalleerd. Denk dan aan wat Ubuntu en Fedora doen met elke 6 maanden een release. Maar er is ook het nixos-unstable channel, dat het rolling release model gebruikt. In tegenstelling tot wat de naam suggereert is het prima stabiel: ik heb nog nooit een rollback hoeven doen ten gevolge van het gebruik van nixos-unstable. Het is prima als je bij een stable channel blijft, maar het is de moeite waard om te weten dat de unstable optie er is.
- Als puur gebruiker haal je al veel voordeel uit Nix/NixOS. Maar uiteindelijk is het ook zo dat als je Nix lang begrijpt dat je er nog meer uit kan halen, door bv je eigen projecten erin te hangen. Het is niet iets dat je meteen hoeft te snappen dus je kan dat op je dooie gemak doen, en de moeite erin stoppen werpt zoete vruchten af.
- Af en toe komt het wel eens voor dat je een error krijgt wanneer je je config probeert te builden. Een enigszins zwak puntje van de Nix lang interpreter is dat errors heel erg thuis zitten (en beschreven worden in termen van) de Nix taal.
Wat dat concreet betekent is dat kennis van Nix helpt om bij zulke errors door te krijgen wat er echt aan de hand is. Gelukkig komt het niet al te vaak voor.
- Je begint gewoon lekker met 1 machine, maar mocht je ooit besluiten om NixOS op nog een machine te zetten, kijk dan ook ff naar Colmena. Dat maakt deployment naar meer dan 1 host doodsimpel.

Geniet van je upgrade zou ik zeggen :)
Na je advies ben ik over gegaan naar het "nixos"unstable" channel. waar moet ik aan zien dat het een stable channel is want mijn kernel is nog wel hetzelfde als eerst. Ik zie bijvoorbeeld dit.
En dit.
nixos-version
24.11pre636273.051f920625ab (Vicuña)
nixos-version
24.11pre636273.051f920625ab (Vicuña)
Hiervan afgaande zit je gewoon op nixos-unstable.
Het kan goed dat de kernel nog dezelfde versie is want zo heel lang geleden is het natuurlijk niet dat 24.05 uitgekomen is. Tussen kernel releases gaan er makkelijk 9-10 weken voorbij, 2 weken merge window, en 7+ weken stabilisatie.
Dat was mij even ontschoten, logisch dan.

Ik ben nog wel een andere website tegen gekomen die ik zelf ook wel handig vind als NixOS nieuwkomer.
https://nlewo.github.io/nixos-manual-sphinx/index.html
- ik hoef me nooit zorgen te maken over een gefaalde update. Als een update een ongewenst effect heeft, kan ik zonder veel moeite een rollback doen naar een vorige generation zoals dat heet.
- Mede tengevolge van het vorige punt is het risico van experimenteren met de configuratie m'n systeem naar 0 gedaald. En geen stress hebben voelt heel goed
Dit heb je met een Atomic/Immutable distributie ook.
Hier is een uitgebreide handleiding beschikbaar die het hele proces uit de doeken doet.
Bedankt! Ik zal 'm is door lezen.
Dit is helaas geen probleem waarvoor een technologische oplossing beschikbaar is.
Ik ben niet lui of zo want heb ook jaren Arch gedraaid en dat heeft mij de eerste keer een paar dagen gekost. Hoeveel tijd zou het kosten om de basis begrippen van NixOS door te krijgen om vervolgens daarop verder te kunnen bouwen dat je snel door hebt hoe het werkt en je daarna verder kan?
Ik ben niet lui of zo
Oh daar ging ik ook niet vanuit hoor. Het kwam meer op me over als frustratie, iets dat heel begrijpelijk is wanneer je iets werkend probeert te krijgen en het net niet wil lukken.
Hoeveel tijd zou het kosten om de basis begrippen van NixOS door te krijgen om vervolgens daarop verder te kunnen bouwen dat je snel door hebt hoe het werkt en je daarna verder kan?
Euhm dat hangt sterk samen met de voorkennis die je hebt van hoe Linux in 't algemeen werkt, en of je wellicht begrip hebt van functioneel programmeren (FP) .
Geen van beiden zijn vereist om met NixOS te werken, maar bijvoorbeeld kennis van FP brengt met zich mee dat je begrijpt wat lazy evaluation is. Dat helpt vervolgens in Nix de taal omdat dat ook lazy evaluation gebruikt.

Hoe meer van dit soort dingen je weet, hoe makkelijker het is om over te stappen omdat je minder hoeft te leren voordat alles klikt voor je.

Neemt natuurlijk niet weg dat je kan beginnen door gewoon de handleiding te volgen en gaandeweg begrip stukje bij beetje op te bouwen.

Zelf had ik een groot deel van de benodigde achtergrond al. Ik wist ook hoe ik mijn systeem kon rebuilden, en hoe ik de dingen die ik nodig had in m'n config file kon krijgen, op dag 1. Met dat stukje kennis kwam ik al heel ver als gebruiker.
Daarna was het gewoon telkens iets opzoeken als ik iets gedaan krijgen (bv openssh opzetten), en ook proberen te begrijpen hoe zo'n subsystem werkt in de context van NixOS.
Belangrijk is om te begrijpen dat dit een incrementeel proces kan zijn. Dan duurt het wellicht wat langer voordat dat "AHA!" moment komt maar in de tussentijd kan je dus wel gewoon verder met je leven.
Ik heb die handleiding door gelezen, dat is ieder geval al een stuk duidelijker als alle andere documentatie die ik ben tegen gekomen. Ik ga het proberen in een vm te installeren en kijken hoever ik kom.
Ik ben sinds een maand of 2 ook nixos gebruiker. Ik ben distro hopper bij uitstek. Waar de kracht zit van nix (voor mij) is dat ik als ik even wil rommelen gewoon een nieuwe config file aanmaak. Bijvoorbeeld minecraft/kde/hyprland of whatever. Vervolgens ga je lekker modules toevoegen om te kijken of je een minecraft setup kan maken. Een (docker) servertje, wat firewall regels, flatpak. Uiteindelijk werkt alles speel ik met mijn kids een spelletje en naderhand zet ik een # voor de ./minecraft.conf, ik doe een rebuild en alles is weer opgeruimd. Met deze methode kun je dus heel je systeem op zijn kop zetten en heb je het zo weer terug gedraaid. En breek je je systeem zo erg dat je niet eens meer een shell kan starten dan reboot je, kies je een vorige werkende build in het lijstje en je hebt weer een werkend systeem.

Als klap op de vuurpijl kun je ook nog eenvoudig integreren met distrobox. Dat kan onder andere met docker of podman en daarmee kun je bijvoorbeeld een debian box maken waar je een applicatie in zet die alleen op debian werkt. Dat mag zelfs een grafische X/wayland applicatie zijn. Met 1 commando export je dan een snelkoppeling naar je host systeem en je hebt gewoon een debian applicatie op je nixos.

Ik ben er blij mee :)
Klinkt wel interessant, niet dat ik veel dingen probeer op mijn systeem daar gebruik ik meestal een vm voor. Ik gebruik sinds een paar maanden een Atomic/Immtuble distributie en ben daar ook erg blij mee en daar kan ik ook toolbox of distrobox gebruiken. Dus ik vroeg mij af of het voor een desktop gebruik echt de moeite waard is. Hoeveel tijd gaat daar in zitten om goed met NixOS om te kunnen gaan, want ik neem aan dat de eerste keer een configuratie bestand schrijven er wel wat tijd in gaat zitten.
Als je geregeld je systeem op zijn kop wilt zetten en wil kunnen testen op je eigen systeem zonder de kans op breken dan zou ik zeggen investeer in die tijd. Als je blij bent met je huidige systeem dan zou ik lekker blijven waar je zit.

Ik zat laatst ook te kijken naar Bluefin (immutable op basis van silverblue) . Ik was daar ook wel gecharmeerd van. Maar dan moet je jezelf wel aanleren alles in vm's of boxes te stoppen. Maar dat is dan weer ingewikkeld als je een keer wilt switchen van gnome naar kde. Dan zit je echt met een berg pakketten opgescheept waar je niet meer van weet waar nu welk pakket voor nodig hebt. NixOS fixt dit voor je. NixOS activeert alleen wat je in je config hebt. Haal je iets eruit dan is het weg.

Zelf vind ik een VM op mijn host systeem altijd maar een beetje laggy werken. Nu heb ik zelf niet de luxe dat ik een videokaart door kan mappen want ik weet dat je echt wel goede performance kan krijgen dan. Vandaar dat mijn voorkeur uit gaan naar lokaal. Nixos is dan echt wel een prima keuze.
Ik heb nu een paar maanden Silverblue draaien, het schijnt zo te zijn dat als ik nu naar Kinoite zou willen dat ik gewoon moet rebasen naar een andere image en dan heb ik KDE zonder opnieuw te hoeven installeren. Maar ik heb sinds mijn reactie op dit topic zitten testen in een vm met NixOS en verbasend wekkend is het mij toch gelukt om een mooi test systeempje in elkaar te knutselen in een vm. Ik ben er nu toch wel van onder de indruk dus ik ga het ook maar is op mijn desktop systeem installeren.
Vraagje: wat is de policy van NixOS ivm package upgrades tussen twee versies door? Ik zie dat bvb podman met deze versie een bump heeft gekregen naar 5.0.3, maar netavark is gestrand op 1.7.0, daar waar ik versie 1.10.0 zou nodig hebben.

Werken ze zoals Debian Stable en is het dus zeer onwaarschijnlijk dat netavark wordt opgewaardeerd voorafgaand aan de nieuwe versie, of laten ze ruimte voor tussentijdse version bumps?

(Ik ben Debian en Archlinux gebruiker, maar wil de nieuwste podman+netavark kunnen gebruiken, en zou liever niet naar RH/Fedora migreren, daar waar NixOS mij toch wel triggert)
Zelf gebruik ik het nixos-unstable channel (denk rolling release model, niet Debian Sid) maar over het algemeen is het vooral een kwestie van wat individuele maintainers doen: als een maintainer een derivation update zodat het de nieuwste versie binnentrekt wanneer het uitgevoerd wordt, dan wordt dat meegenomen in de nieuwste NixOS stable versie.
Dus als ik op jouw plek stond zou ik ff rondsnuffelen op github, op zoek gaan naar de netavark derivation, kijken wie de maintainers zijn, en ze ff vragen om de derivation te upgraden naar netavark 1.10.0.
Nix taal is een soort JSON met functies

Op dit item kan niet meer gereageerd worden.