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:
  • +2Henk 'm!

  • De Nelis
  • Registratie: November 2001
  • Laatst online: 07-08 16:52

De Nelis

en anders maar niet...

Interessant OS. De url die je in de TS hebt geplaatst werkt niet overigens, het moet zijn nixos.org zonder www ervoor.

time is infinite, but each week is ten hours short..


Acties:
  • +2Henk 'm!
  • Pinned

  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 08-08 07:49
Een wat ouder blog artikel waar in beschreven wordt waarom je Nix/NixOS/NixOps wilt in plaats van Puppet/Chef/Ansible en Docker.
https://www.domenkozar.co...ugh-and-we-can-do-better/

Ik wil even benadrukken dat het belangrijk is om Nix en NixOS apart te zien. De ene is de package manager welke je op alle Linux distro's kan installeren alsmede Darwin/OSX (en er is een onofficiele versie voor Android, geen idee of dat werkt). De andere is een operating systeem waarbij niet alleen pakketten worden beheerd met Nix, maar ook de kernel, systemd en alle andere services. Er zijn community leden die andere OS'en hebben gebouwd rondom Nix.

Ook wel leuk project om te volgen is Mobile NixOS: NixOS op je mobieltje :)
https://mobile.nixos.org/
Mede vanwege de geweldige cross-compilatie ondersteuning in Nixpkgs is het ook relatief gezien makkelijker om daarmee aan de slag te gaan.

Ecosysteem

Officieel
- Nix is de package manager
- Nixpkgs is de package set
- NixOS is een operating system welke bestaat uit packages en services. Zelfde repo als nixpkgs
- Hydra is een CI oplossing
- NixOps voor het uitrollen van netwerken bestaande uit NixOS systemen
Onofficieel
- Hercules is een commerciel alternatief voor Hydra
- Morph is een alternatief voor NixOps
- Lading tooltjes voor het omzetten van allerlei lock files (Poetry (Python), NPM, Cargo, ...) naar Nix pakketten.

Nixpkgs

- heeft recepten voor pakketten
- heeft recepten voor services (NixOS)
- tools voor het bouwen van VM images en uitvoeren van VM via KVM als een "bouw" stap.
- NixOS system testing gebaseerd op de VM tools
- generieke bouwers voor Python, Rust, Java, ...
- 1000-en Python pakketten welke met elkaar werken
- enorm veel Machine Learning / Scientific computing pakketten inclusief ondersteuning voor Cuda en MKL
- ...

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • 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]


  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 08-08 07:49
Zie bijvoorbeeld dit wiki artikel voor NFS https://nixos.wiki/wiki/NFS#Client

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 08-08 07:49
86ul schreef op zaterdag 7 november 2020 @ 10:42:
Welke uitgebreide en goede handleidingen voor NixOS raad jij aan, @terabyte? Ik ga deze in 64b draaien via VirtualBox op M20C.
Simpelweg de NixOS handleiding https://nixos.org/manual/...ndex.html#ch-installation.

Zodra je het basis systeem heb geinstalleerd kan je de Packages en Options Search gebruiken voor het zoeken van pakketten om te installeren en services (bijv. je desktop manager) aan te zetten.

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


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

  • Ronnie N
  • Registratie: September 2010
  • Laatst online: 07-08 09:38
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. Hoelang duurt het ongeveer voordat je je eerste systeem een beetje stabiel kunt draaien en hoe 'bleeding edge' zijn de beschikbare packages?

  • 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

Acties:
  • +1Henk 'm!

  • idef1x
  • Registratie: Januari 2004
  • Laatst online: 20:21
Hmm je hebt gelijk...te snel op next next finish geclicked |:(
Afijn configuratie file aangepast en heb nu plasma 8)

[Voor 31% gewijzigd door idef1x op 01-06-2022 10:09]

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