Toon posts:

NixOS - onderschat revolutionair

Pagina: 1
Acties:

Acties:
  • +11Henk 'm!

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
Ik gebruik sinds 1998 Linux, en volgens mij heb ik nu eindelijk de heilige graal op het gebied van Linux distro's gevonden: NixOS.
zie: nixos.org



Totaal verbazingwekkend is dat, ondanks dat buiten Tweakers om NixOS inderdaad gezien wordt als een grote innovatie, op Tweakers zelf 0 aandacht aan is besteed (0 hits op voorpagina), terwijl dit OS al sinds medio 2005 bestaat. Met deze topic wil ik NixOS in de schijnwerpers zetten, en aandacht besteden aan de verschillende use-cases die met NixOS op een hele elegante manier worden opgelost.

Wat is Nix?

NixOS is een Linux distributie, met een package manager die het mogelijk maakt om jouw configuratie (systeem, maar ook home directory, of projecten) declaratief te maken, in plaats van op te bouwen uit een sequentie van commando's en configuratiebestandjes

Declaratief, dus op basis van jouw definitie van hoe jouw ideale setup eruit ziet, zorgt NixOS dat jij die ideale configuratie hebt. Na een wijzing kun je altijd terug naar de vorige state. Kapotte systemen na upgrades, conflicterende packages, etc. kunnen daardoor niet voorkomen.

Onder de motorkop gebruik Nix een functionele programmeertaal waarmee je je systeem of configuratie kunt definieeren. Feitelijk bestaat jouw systeem uit een hoop Lego-blokjes die je inelkaar zet op de manier die voor jou ideaal is. De lego-blokjes (derivations) passen goed op elkaar, omdat de wetten van het functioneel programmeren (bijv. functiecompositie) ook in Nix gelden.

Nix is bedacht door een Nederlander, Dr. Eelco Dolstra, een informaticus die aan de Universiteit Utrecht op NixOS is gepromoveerd.
Voor diegenen die geinteresseerd zijn in de wetenschap achter NixOS, het proefschrift is hier te lezen:
https://nixos.org/~eelco/pubs/phd-thesis.pdf

Nix is dus niet het resultaat van een uit de hand gelopen uitprobeersel, het heeft een wetenschappelijke basis. Er is ontzettend goed over nagedacht, en dat merk je in het gebruik (als je bijvoorbeeld je eigen 'derivations' gaat definieren).

Wat kun je er mee?

Je kunt het gebruiken als zeer robuuste besturingssysteem (in plaats van... Debian, arch, of whatever), zowel geschikt voor desktop als server. Dan heb je al veel van de voordelen, maar je kunt er nog veel mee:

- Als je softwareontwikkelaar bent, kun je een project-specifieke configuratie maken, de voor collega's reproduceerbaar is (dus met de juiste libraries, tools en altijd de juiste versies voor dat project) - zonder dat het conflicteerd met andere projecten of je eigen systeem. Van vervuiling door libraries zal dus nooit meer sprake zijn. Altijd een schone werkomgeving!

- Voor Devops is het ook een hemel, Je kunt ook met Nix containers maken voor services (docker is dus niet meer nodig). Sowieso zijn allerlei producten die configuraties managen ook niet meer nodig (zoals Ansible) omdat dit juist een basisfunctie is van Nix

- Je hoeft je bestaande Linux distro niet op te geven, je kunt ook de Nix package manager gebruiken (dus Nix zonder OS) om de voordelen onder je eigen user account te ervaren

Nadelen

Nix is anders. Daardoor heeft het een steile leercurve. Als je niet bekend bent met het declaratief of functioneel denken, zul je een mentale shift moeten maken. Dat maakt het moeilijk, maar wat je er voor terugkrijgt is onbetaalbaar (in vrijheid en tijdswinst).

Dit beschouw ik overigens niet als nadeel van Nix zelf. Voorbeeld: Quantumcomputing is ook anders en zal daardoor een steile leercurve hebben, maar dat is niet de schuld van quantum computing, maar van het feit dat men het nog niet gewend is.


(Ik nodig anderen uit om deze openingpost uit te breiden/te verbeteren)


Heb jij NixOS al ontdekt?

[Voor 12% gewijzigd door terabyte op 01-06-2022 22:04. Reden: video]


Acties:
  • 0Henk 'm!
  • Pinned

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
amx schreef op zaterdag 7 maart 2020 @ 11:43:
inderdaad interessante openingpost. Persoonlijk (niet aanvallend bedoeld) had ik de pakkende inzet fijner gevonden als er direct een samenvatting wordt gegeven van waarom NixOS volgens jou de heilige graal is.

Ik vermoed dat ik het niet helemaal snap, maar in welk opzicht is dit handiger dan bijvoorbeeld (recenter) Ubuntu Snap, of Flatpak, of is dat helemaal niet waarom nix package manager handiger, of intuitiever is? Voor de doorsnee applicaties dan.

[edit]

bronvermeldingen naar andere websites die wel vermelden waarom NixOS revolutionair zijn, overtuigen ook sneller
Bedankt voor de feedback. OP is nog works in progress, wat je ziet is de eerste versie, dus ik ga het nog zeker aanvullen.

Maar dan komt ook meteen (mijn) grote probleem: het kunnen zien waarom het revolutionair is en het leven makkelijk maakt (tov alle andere distros en Windows en Mac), is dat het een probleem oplost die veel mensen niet meer als probleem zien vanwege de vele workarounds. Het is dus een fundamentele oplossing voor een (voor normale gebruikers) onzichtbaar probleem. En het is voor mij dus moeilijk uit te leggen dat het een probleem oplost terwijl je het probleem niet eens ziet :-)

Het grote voordeel voor pure eindgebruikers is dat je systeem na een upgrade niet meer kapot kan gaan, en je altijd terug kunt naar een werkende vorige versie. Het maakt het ook makkelijker om (als niet-root-gebruiker) extra software te installeren zonder dat het ander software in de weg zit.

Maar, als je developer bent, of systeembeheerder, dan heb je vast van docker e.d. gehoord om dedicated omgevingen op te zetten, en daar shined Nix het meest, omdat al die extra tools niet meer nodig zijn (omdat het probleem in Nix fundamenteel is opgelost - dus je hebt geen oplossing nodig voor een niet-bestaand probleem)

[Voor 3% gewijzigd door terabyte op 07-03-2020 13:45]


  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
Vandaag is een nieuw versie van NixOS vrijgegeven:
https://nixos.org/nixos/m...es.html#sec-release-20.03

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
An opinionated guide for developers getting things done using the Nix ecosystem.

ik gebruik nu Nix op de Macbook die ik van mijn huidige opdrachtgever heb gekregen. Nix wordt in dit geval gebruikt om een volledig reproduceerbare ontwikkelomgeving in op te zetten, met alle libraries, tools, compilers, configuratie tot op de juiste versie (tot op commit niveau indien nodig) exact gepint en zonder clutter (dus per subproject een eigen 'shell.nix' bestand) zodat libs elkaar niet in de weg ziten.

[Voor 66% gewijzigd door terabyte op 22-08-2020 00:26]


  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
@patviev er is een site, repology.org waar van zo'n beetje alle bekende linux distro's de repositories met elkaar vergeleken worden. Dus je kunt voor de programma's waar jij in geinteresseerd bent kijken welke distro welke versie heeft en of Nix up-to-date genoeg is.

Je kunt kiezen voor Nix-unstable (vergelijk met bijv Arch - constante updates) en de Nix stable (elk half jaar nieuwe versie)

Hier is bijv een lijst van alle niet-up-to-date packages:
https://repology.org/proj...o=nix_unstable&outdated=1

[Voor 15% gewijzigd door terabyte op 22-08-2020 14:30]


  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
@86ul ik zou eerst proberen de Nix package manager te installeren op je bestaande distro, voordat je in 1x overspringt op NixOS - dan kun je eerst wennen aan hoe het werkt
https://nixos.org/download.html#nix-quick-install

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
trebor.ed schreef op zondag 1 november 2020 @ 14:54:

Nu zou ik graag deze configuratie willen reproduceren (naar productie), maar ik twijfel dus of ik hier de nixos package manager voor wil gebruiken of toch puppet, ansible etc ?
Als je Nix gebruikt heb je niet alleen de mogelijkheid de dependencies van je project exact reproduceerbaar te maken (tot op git commit indien nodig), maar heb je ook een functionele programmeertaal waardoor puppet/ansible etc overbodig worden.

De overweging is: wil je die taal leren (zie ook de genoemdenadelen in de OP)

Acties:
  • +3Henk 'm!

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter

Acties:
  • +2Henk 'm!

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
L0g0ff schreef op zondag 27 juni 2021 @ 22:35:
Nou ik heb gisteravond een 3 tal installatie pogingen gedaan vanuit de virtualbox image, de minimal image en de default gnome image. Maar elke keer kreeg ik meldingen dat verschillende gedownloade store package corrupt bleken en daardoor niet geïnstalleerd konden worden.

Bij het handmatige downloaden van de betreffende packages en deze met 7zip proberen uit te pakken kreeg ik ook bad compression achtige foutmeldingen.

Ik heb vind het nixos concept echt prachtig maar ik heb de handdoek in de ring gegooid. Ik heb besloten me liever op docker te focussen als ik modulair wil bouwen en testen.

Zeker toen ik na het troubleshooten op dit artikel stuitte:
https://hands-on.cloud/why-you-should-never-ever-use-nixos/
Die foutmeldingen zeggen me niets. Volgende keer (als je het een kans geeft) post het dan hier of op discourse.nixos.org dan krijg je (snel(ler)) hulp.

De keuze voor bij docker blijven respecteer ik, maar dat gelinkte artikel is pure FUD

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
Ronnie N schreef op maandag 6 december 2021 @ 12:05:
[...]


Zo nu en dan kijk ik met een schuin oog naar deze distro/package manager. Maar wordt ergens toch tegen gehouden door de veronderstelde learning curve.
Als je al functioneel programmeren kent, is de taal makkelijk te leren/begrijpen.
Als je tot nu toe alleen imperatief denkt (in commando's en scripts, in plaats van declaraties) dan is het eerst de mentale shift die je moet maken. Hoe lang dat duurt kan ik niet zeggen, is een beetje IQ afhankelijk :-) :+

De stap hoeft niet in 1 keer, je kunt ook eerst alleen de package manager op je huidige distro draaien.

Ik heb het eerst geinstalleerd op Arch Linux, daarna vooral locale development omgevingen op Arch met Nix gebruikt, daarna containers gemaakt obv Nix configuraties. Binnen 2 weken volledig overgestapt op NixOS op mijn laptop en binnen 2 maanden NixOS op al mijn systemen/servers/containers.

support kun je krijgen op reddit, discourse.nixos.org, de Nix wiki, etc.
Hoelang duurt het ongeveer voordat je je eerste systeem een beetje stabiel kunt draaien en hoe 'bleeding edge' zijn de beschikbare packages?
Een stabiel systeem, als je een VM of oude laptop (maw: niets te verliezen) hebt en je volgt de instructies nauwgezet dan heb je binnen een half uur een werkend systeem.

En vanaf dat moment ook moelijk kapot te krijgen omdat je altijd naar een vorige versie van je config kunt.
Arch Linux kreeg ik vaak genoeg kapot na een upgrade. Bij Nix hoef je -mits genoeg diskspace- geen zorgen te maken, je kunt met je config experimenteren en updaten zoveel je wilt.

De packages van nixpkgs-unstable zijn compleet en up-to-date, zie dit plaatje.
Hoe verder in de rechterbovenhoek des te beter:
https://repology.org/repositories/graphs
zie ook https://search.nixos.org/packages
als je iets mist, kun je een issue openen op Github NixOS/nixpkgs

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
silverball schreef op maandag 6 december 2021 @ 16:12:
[...]

Hetzelfde hier. Ik heb wel +-4 jaar geleden NixOS een keer kortstondig geprobeerd maar vond de cli en de taal maar moeilijk in te komen voor een beginner en miste er voor mij veel documentatie. In nix CLI 2.0 zouden veel zaken beter worden, vermoedelijk is deze versie er al dus ik ga overal fris in.

Ook wil ik eens kijken naar de concurrentie; GNU Guix maar dat is hier offtopic.
in 21.11 zit nog niet de nieuwe Nix CLI, omdat het backward slecht compatibel is. Voor nieuwelingen geen enkel probleem, maar voor bestaande gebruikers bleek het nogal een issue.

Als je nix unstable draait, dan heb je wel de nieuwe Nix CLI.
Ik zou het eerst op je huidige Linux distro draaien om er gevoel voor te krijgen.

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
dwm: https://nixos.wiki/wiki/Dwm

je kunt je home directory (user configs) managen met https://github.com/nix-community/home-manager
check handleiding voor alle ondersteunde apps en config opties

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
Het is wat configuration.nix is voor je systeem. maar dan voor je user account. Dus alle voordelen van Nix maar dan voor je home dir, dat gaat verder dan config in een git repo.

kwestie van tijd voordat jullie nut/voordelen van home-manager inzien. Nix en ecosysteem leer je in stapjes waarderen (er van uitgaande dat je niet afhaakt ;))


----

Hier nog een interessante video van een RedHat medewerker over Nix
https://tv.netwhood.onlin...85-40b5-bc7e-69d517d982ca
presentatie van interne presentatie bij RedHat
Pagina: 1



Nintendo Switch (OLED model) Apple iPhone SE (2022) LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S22 Garmin fēnix 7 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee