• Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 05-10 15:59

Mx. Alba

hen/hun/die/diens

danslo schreef op woensdag 3 juni 2026 @ 13:52:
Hoe ik bijna elk besturingssysteem zie is als "opaque cumulative state". Je voegt een pakketje toe, past wat config in /etc aan, daarna weer wat dotfiles in je home directory, bestanden in /opt or /usr/local, etc. Na een tijd heb je geen idee meer wat je hebt gedaan. Dat probleem lost NixOS voor mij op.

En meteen 3 vliegen in 1 klap ;-) Want een groot deel van je dotfiles wordt declaratief, en het is reproduceerbaar over meerdere omgevingen (bijv. je laptop).
Ik moet vooral denken aan wanneer je je computer vervangt en je weken bezig bent voor je alles weer een beetje hebt zoals je het had. In plaats daarvan ben je weken bezig om NixOS in te richten maar daarna is het een kwestie van configuratie kopiëren naar de nieuwe machine en Bob's your auntie!

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


  • ookhoi
  • Registratie: Maart 2007
  • Laatst online: 08:00
delphium schreef op woensdag 3 juni 2026 @ 12:59:
Ik begrijp je argument, maar voor mij geldt het simpelweg niet. Ik bouw/configureer mijn systemen en daar maak ik vervolgens tien jaar of langer gebruik van. Ik wijzig nooit, ik heb zeer weinig onderhoud
Maar je hebt in 10 jaar tjid toch major versies van software die aanpassingen aan je config vergen?
Met emerge kan je ook wel iets configureren met het "--config" argument. Ook heb je voor webapplicaties bijvoorbeeld webapp-config. Daarmee stel je basis dingen in zoals een port en een subdirectory. In de praktijk merk ik dat ik liever handmatig een configuratie doe, met bijvoorbeeld een reverse proxy en een letsencrypt certificaat.
Ik begrijp op zich wel dat je liever met de hand configureert als het alternatief via de commandline moet. Maar dat is niet te vergelijken met declaratief configureren. Ik moet er niet aan denken configuraties met de hand te doen. Wellicht een stukje beroepsdeformatie.
Misschien lees ik het verkeerd, maar waarom update je jouw systemen elk halfuur?
Omdat het kan :-) Voor de load maakt het niet uit of je om 8 uur update van een library hebt, en om 10 uur van een service, of dat je die beide updates tegelijk hebt om 15 uur.

Een andere reden is dat bij elke update ook mijn config-changes meegenomen worden zonder dat ik daarvoor met de hand alle systemen zelf af moet.
Kortom, ik zie nog steeds geen voordeel van NixOS, of nix, ten opzichter van wat ik nu gebruik.
En dat is helemaal prima natuurlijk. Daarom zijn er ook zo veel distributies.
Anyway, nogmaals dank voor al je uitgebreide uitleg en voorbeelden. Ik denk dat deze thread er in elk geval wel beter van is geworden ;)
100%!!

  • ookhoi
  • Registratie: Maart 2007
  • Laatst online: 08:00
Mx. Alba schreef op woensdag 3 juni 2026 @ 14:06:
Ik moet vooral denken aan wanneer je je computer vervangt en je weken bezig bent voor je alles weer een beetje hebt zoals je het had. In plaats daarvan ben je weken bezig om NixOS in te richten maar daarna is het een kwestie van configuratie kopiëren naar de nieuwe machine en Bob's your auntie!
Twee keer gehad. 1 keer met een managed Ubuntu en 1 keer met een managed Macbook. Beide keren geheugenproblemen. Beide keren was ik dezelfde dag weer helemaal up & running dankzij nix Home Manager inclusief m'n complete developer-setup :9

  • delphium
  • Registratie: November 2005
  • Laatst online: 03-10 17:35
Maar je hebt in 10 jaar tjid toch major versies van software die aanpassingen aan je config vergen?
Meestal maar kleine wijzigingen. Die handel je in Gentoo af met etc-update. je krijgt dan een diff van de oude en de nieuwe en die kan je mergen, of kiezen voor vervanging van oud of nieuw.

Voor grotere wijzigingen (postgresql bijv.), moet je soms een migratie uitvoeren, maar ook dat is met één commando gefixt.

Verder heb je op Gentoo eselect. Daarmee kun je meerdere slots vullen met verschillende versies van een pakket. Bijvoorbeeld Python, PHP, maar ook je kernel. Het gaat dan om major versies, dus python-13 vs python-14. Maar zelfs als je dit niet gebruikt en je doet gewoon je dagelijkse updates, regelt emerge dit allemaal vlekkeloos voor je.
Ik begrijp op zich wel dat je liever met de hand configureert als het alternatief via de commandline moet. Maar dat is niet te vergelijken met declaratief configureren. Ik moet er niet aan denken configuraties met de hand te doen. Wellicht een stukje beroepsdeformatie.
Welbeschouwd configureer jij ook met de hand. Je schrijft immers je declaraties. Ik neem aan dat die ook niet eeuwig houdbaar zijn. Ik schrijf configuraties en die bewaar ik in git. Heel af en toe zul je inderdaad iets moeten wijzigen, maar ik vermoed, jij niet minder vaak dan ik.
Omdat het kan :-) Voor de load maakt het niet uit of je om 8 uur update van een library hebt, en om 10 uur van een service, of dat je die beide updates tegelijk hebt om 15 uur.
Tja, ik zou ook mijn dagelijkse commando:
emerge --sync && emerge -DNuav @world 
Elk halfuur kunnen uitvoeren, maar dat is echt niet nodig. Wellicht dat jouw systemen de load makkelijk aan kunnen, maar je belast ook de systemen waar je de broncode vandaan haalt. Eens per dag lijkt me ruim voldoende en wellicht kun je zelfs met eens per week uit de voeten. Maar goed, dat moet je zelf weten.
Een andere reden is dat bij elke update ook mijn config-changes meegenomen worden zonder dat ik daarvoor met de hand alle systemen zelf af moet.
Welke config changes? Ik doe echt nooit config changes. Tenzij er echt grote dingen veranderen (apache 2.2 naar 2.4). Maar zelfs als ik wel een config change zou doen, wat is dan het voordeel van nix boven een git-repository?
En dat is helemaal prima natuurlijk. Daarom zijn er ook zo veel distributies.


[...]

100%!!
Ik weet niet of we nu heel erg off-topic bezig zijn, maar ik vind zelf de vergelijking met een andere oplossing best interessant en leerzaam.

  • terabyte
  • Registratie: September 2001
  • Laatst online: 28-09 12:45

terabyte

kan denken als een computer

Topicstarter
het is niet specifiek mijn doel om jou @delphium te converteren met deze topic (want gaat niet lukken :)) maar de kern van de zaak is: kun je het declaratief denken waarderen of niet. Want daar zit de uniekheid van NixOS tov alle andere OS-en (Linux distros, Windows, Mac etc). Alle andere OS-en zijn procedureel, zelfs als je het automatiseert.

Hoe dat declaratief denken vervolgens geïmplementeerd is (of je de de Nix taal of command wel of niet mooi vindt) is dan ook een implementatiedetail. Dat Nix is onderbouwd met een proefschrift waarin het probleem en de oplossing duidelijk beschreven wordt vind je ook niet terug bij welk ander OS dan ook.

Alleen het probleem met declaratief denken is dat de IT-massa het concept niet massaal omarmt. Het gaat even niet om Nix, maar bijv. declaratieve programmeertalen zoals Haskell zijn redelijk brilliant maar worden niet omarmd. En dat zie je ook terug bij andere declaratieve concepten zoals Nix. Alleen spreadsheets (Excel) en ReactJS in de frontend-wereld is een voorbeeld van een declaratieve mindset die de massa heeft weten te bereiken. Maar welk probleem loste ReactJS ook al weer op?

  • delphium
  • Registratie: November 2005
  • Laatst online: 03-10 17:35
terabyte schreef op zaterdag 27 juni 2026 @ 16:19:
het is niet specifiek mijn doel om jou @delphium te converteren met deze topic (want gaat niet lukken :)) maar de kern van de zaak is: kun je het declaratief denken waarderen of niet. Want daar zit de uniekheid van NixOS tov alle andere OS-en (Linux distros, Windows, Mac etc)....
Om eerlijk te zijn, zie ik het nut er niet van in. Ik geloof best dat als je er eenmaal mee werkt, het bepaalde voordelen heeft, maar ik zie echt geen enkele use case voor mij, waarin een declaratief systeem voordelen biedt t.o.v. de rolling release die ik nu gebruik.

Het komt op mij over als een systeem dat handig is voor mensen die veel experimenteren en elke drie weken hun installatie slopen. Dan heb je het zo weer terug in de gewenste staat. Maar zoals ik al schreef: ik doe decennia met mijn systemen, zonder herinstallatie. Ook ziet mijn systeem er niet hetzelfde uit als twee jaar geleden. Zeker mijn Gentoo-machines gaan geleidelijk met de tijd mee en met mijn behoeften en interesses.

Dus kan ik het declaratief denken waarderen? Ja, maar alleen voor hele specifieke usecases (wetenschap), maar voor normaal dagelijks desktopgebruik, niet echt.

  • terabyte
  • Registratie: September 2001
  • Laatst online: 28-09 12:45

terabyte

kan denken als een computer

Topicstarter
Prima, maar dan is de conclusie duidelijk: NixOS (als declaratief systeem) is niks voor jou

  • ookhoi
  • Registratie: Maart 2007
  • Laatst online: 08:00
review: Nederland maakt soeverein alternatief voor Windows en Office op basis van Linux
De Nederlandse overheid maakt een eigen digitale werkomgeving op basis van de Nederlandse Linux-distributie NixOS.

  • L0g0ff
  • Registratie: April 2001
  • Laatst online: 05-10 19:35

L0g0ff

omg

ookhoi schreef op donderdag 24 september 2026 @ 11:33:
review: Nederland maakt soeverein alternatief voor Windows en Office op basis van Linux
De Nederlandse overheid maakt een eigen digitale werkomgeving op basis van de Nederlandse Linux-distributie NixOS.
Ik vind het echt zo gaaf dat er steeds meer naar Linux wordt gekeken als serieus alternatief op de desktop. Dit geeft nixos ook echt een serieuze boost en dat helpt allemaal weer om wat minder afhankelijk te zijn van al die closed source oplossingen. En als we dan toch belastingcenten aan het uitdelen zijn stop ze dan ergens in waar iedereen profijt van heeft. Publieke sector met publieke code :)

Blog.wapnet.nl KompassOS.nl


  • eymey
  • Registratie: Februari 2000
  • Laatst online: 21:07
terabyte schreef op zaterdag 27 juni 2026 @ 16:19:
het is niet specifiek mijn doel om jou @delphium te converteren met deze topic (want gaat niet lukken :)) maar de kern van de zaak is: kun je het declaratief denken waarderen of niet. Want daar zit de uniekheid van NixOS tov alle andere OS-en (Linux distros, Windows, Mac etc). Alle andere OS-en zijn procedureel, zelfs als je het automatiseert.

Hoe dat declaratief denken vervolgens geïmplementeerd is (of je de de Nix taal of command wel of niet mooi vindt) is dan ook een implementatiedetail. Dat Nix is onderbouwd met een proefschrift waarin het probleem en de oplossing duidelijk beschreven wordt vind je ook niet terug bij welk ander OS dan ook.

Alleen het probleem met declaratief denken is dat de IT-massa het concept niet massaal omarmt. Het gaat even niet om Nix, maar bijv. declaratieve programmeertalen zoals Haskell zijn redelijk brilliant maar worden niet omarmd. En dat zie je ook terug bij andere declaratieve concepten zoals Nix. Alleen spreadsheets (Excel) en ReactJS in de frontend-wereld is een voorbeeld van een declaratieve mindset die de massa heeft weten te bereiken. Maar welk probleem loste ReactJS ook al weer op?
Tsja.... als ik zie hoe in de gemiddelde Linux beheeromgeving Ansible wordt misbruikt om allerlei one-off en ad hoc scripts parallel via SSH naar de hele servervloot te jagen....

Terwijl het veel ingebouwde manieren heeft om te beschrijven wat je wilt (bv. een package moet aanwezig zijn, of een bepaalde user met bepaalde eigenschappen) en Ansible dan zelf checkt of dit al het geval is, of dat het nog moet gebeuren. Maar goed, ansible is ook weer een minder voorbeeld, want het werkt in hoofdlijnen nog steeds 'imperatief'. Je moet nog steeds zelf de volgorde van uitvoering van taken bewaken en resources ook weer in een "not present" of andere staat omschrijven om ze te verwijderen (Thanks voor de correctie, @ookhoi , heb het aangepast).

En Terraform is al helemaal moeilijk te begrijpen voor velen die het voor het eerst zien, inclusief mijzelf.

Ik ben ook al te lang 'verpest' met een 'procedurele' manier van denken. En het is ook niet makkelijk om in een organisch gegroeide omgeving met veel legacy over te stappen op een declaratieve werkwijze.

Ik heb me ook nog niet genog in Nix verdiept om te beoordelen hoe ver het declaratief inrichten daar gaat. Maar gevoelsmatig heb je natuurlijk wel altijd een keer een punt waarop je bepaalde workloads/software wil gaan deployen en op een bepaalde manier wil configureren, die niet direct wordt ondersteund door het declaratieve framework. En dan ga je toch weer naar procedurele scripts grijpen, met het gevaar dat die ook het zorgvuldig declaratief geconfigureerde systeem ondermijnen.

Maar ik houd wel van het concept :)

[ Voor 28% gewijzigd door eymey op 27-09-2026 10:08 ]

Marstek Venus 5.12kWh v154, CT002 V118, CT003 V118 DSMR5.5, PV 11xEnphase IQ7+ Z-O, 5xEnphase IQ7+ N-W - ~4,7Wp theoretisch, ~3,5Wp praktijk.


  • ookhoi
  • Registratie: Maart 2007
  • Laatst online: 08:00
eymey schreef op vrijdag 25 september 2026 @ 11:33:
Tsja.... als ik zie hoe in de gemiddelde Linux beheeromgeving Ansible wordt misbruikt om allerlei one-off en ad hoc scripts parallel via SSH naar de hele servervloot te jagen....

Terwijl het eigenlijk ook bedoeld is als een declaratieve manier om de gewenste staat van servers te omschrijven en Ansible het dan uit te laten zoeken. En met Terraform hetzelfde.
Ansible is imperatief, niet delcaratief. Je kan in ansible alleen beschrijven wat je wilt dat er gebeurt. Niet wat de eindstaat moet zijn.

Terraform is net als nix declaratief. Je beschrijft de eindstaat. Verander of verwijder je iets met de hand, dan wordt dat door terraform en nix terug aangepast.

Haal je een resource weg in terraform of nix, dan verdwijnt die resource ook daadwerkelijk. Als je een resource verwijdert in ansible, dan moet je zelf (imperatief) zorgen dat het resultaat van die resource daadwerkelijk verdwijnt.

  • eymey
  • Registratie: Februari 2000
  • Laatst online: 21:07
ookhoi schreef op zaterdag 26 september 2026 @ 21:39:
[...]

Ansible is imperatief, niet delcaratief. Je kan in ansible alleen beschrijven wat je wilt dat er gebeurt. Niet wat de eindstaat moet zijn.

Terraform is net als nix declaratief. Je beschrijft de eindstaat. Verander of verwijder je iets met de hand, dan wordt dat door terraform en nix terug aangepast.

Haal je een resource weg in terraform of nix, dan verdwijnt die resource ook daadwerkelijk. Als je een resource verwijdert in ansible, dan moet je zelf (imperatief) zorgen dat het resultaat van die resource daadwerkelijk verdwijnt.
Mja, daar heb je inderdaad gelijk in. Thanks voor de correctie.

Maar goed, blijft wel mijn punt: Mensen hebben zelfs al moeite met de declaratieve modules in Ansible (bv. een shell script gebruiken om packages te installeren of users aan te maken, in plaats van gewoon declareren dat die er moeten zijn voor een bepaalde taak).

Marstek Venus 5.12kWh v154, CT002 V118, CT003 V118 DSMR5.5, PV 11xEnphase IQ7+ Z-O, 5xEnphase IQ7+ N-W - ~4,7Wp theoretisch, ~3,5Wp praktijk.


  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Het verbaast mij dat ze niet hebben gekeken naar bootc. Hoewel Nix interessant is, heeft het ook genoeg nadelen. Het grootste nadeel is dat iets als SELinux (ja, van de NSA) en Apparmor niet worden ondersteund. Het kan wel, maar wel met heel veel hoepels.

Voor iemand op de desktop is het minder een impact (zelf wil ik het liefst SELinux, ik neem de ingewikkelde syntax en dingen voor lief), maar voor Enterprise is het juist heel belangrijk.
Pagina: 1 2 Laatste