bridging the stepping stones using pieces of nixos
play

Bridging the stepping stones: using pieces of NixOS without full - PowerPoint PPT Presentation

Bridging the stepping stones: using pieces of NixOS without full commitment Michael Raskin 7c6f434c (TU Munich) 17.10.2020 Michael Raskin 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 1 / 17 Do you have to use (and do


  1. Bridging the stepping stones: using pieces of NixOS without full commitment Michael Raskin · 7c6f434c (TU Munich) 17.10.2020 Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 1 / 17

  2. Do you have to use… (and do you care) …Nix package manager yes, and doubling software installation space use is minor …Nixpkgs most likely, and it’s at most a few GiBs of clones/ stdenv …NixOS maybe, and it’s most a change to every habit about managing OS Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 2 / 17

  3. Do you have to use… (and do you care) …Nix package manager yes, and doubling software installation space use is minor …Nixpkgs most likely, and it’s at most a few GiBs of clones/ stdenv …NixOS maybe, and it’s most a change to every habit about managing OS Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 2 / 17

  4. Do you have to use… (and do you care) …Nix package manager yes, and doubling software installation space use is minor …Nixpkgs most likely, and it’s at most a few GiBs of clones/ stdenv …NixOS maybe, and it’s most a change to every habit about managing OS Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 2 / 17

  5. NixOS: enticing features NixOS has a ton of nice sides https://nixos.org/ list of NixOS features boils down to: your system is Nix package …and you have Nix around unless early boot broken, boots to consistent state declarative confjg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 3 / 17

  6. NixOS: enticing features NixOS has a ton of nice sides https://nixos.org/ list of NixOS features boils down to: your system is Nix package …and you have Nix around unless early boot broken, boots to consistent state declarative confjg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 3 / 17

  7. NixOS: enticing features NixOS has a ton of nice sides https://nixos.org/ list of NixOS features boils down to: your system is Nix package …and you have Nix around unless early boot broken, boots to consistent state declarative confjg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 3 / 17

  8. NixOS: enticing features NixOS has a ton of nice sides https://nixos.org/ list of NixOS features boils down to: your system is Nix package …and you have Nix around unless early boot broken, boots to consistent state declarative confjg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 3 / 17

  9. NixOS: control your expectations So I can safely experiment with… init systems? OS kernels? service overrides like with packages in Nixpkgs? …and no more complicated interactions between choices? Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 4 / 17

  10. NixOS: control your expectations So I can safely experiment with… init systems? OS kernels? service overrides like with packages in Nixpkgs? …and no more complicated interactions between choices? Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 4 / 17

  11. NixOS: control your expectations So I can safely experiment with… init systems? OS kernels? service overrides like with packages in Nixpkgs? …and no more complicated interactions between choices? …not exactly Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 4 / 17

  12. What NixOS hardcodes NixOS hardcodes: Linux systemd confjguration via module system global namespace and lots of moving parts …modules are less overridable than packages how your setup core is described Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 5 / 17

  13. What NixOS hardcodes NixOS hardcodes: Linux systemd confjguration via module system global namespace and lots of moving parts …modules are less overridable than packages how your setup core is described Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 5 / 17

  14. What NixOS hardcodes NixOS hardcodes: Linux systemd confjguration via module system global namespace and lots of moving parts …modules are less overridable than packages how your setup core is described Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 5 / 17

  15. What NixOS hardcodes NixOS hardcodes: Linux systemd confjguration via module system global namespace and lots of moving parts …modules are less overridable than packages how your setup core is described Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 5 / 17

  16. What NixOS hardcoding implies Trapped inside are less opinionated things: daemon confjg generator daemon start fmag knowledge …duplicated by nix-darwin home-manager nix-processmgmt Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 6 / 17

  17. What NixOS hardcoding implies Trapped inside are less opinionated things: daemon confjg generator daemon start fmag knowledge …duplicated by nix-darwin home-manager nix-processmgmt Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 6 / 17

  18. Is code really trapped? Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 7 / 17

  19. Is code really trapped? #invoke What do you want to invoke? Law of headlines You hear the answer: Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 7 / 17

  20. Is code really trapped? #invoke What do you want to invoke? Law of headlines You hear the answer: «… not exactly» Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 7 / 17

  21. Is code really trapped? Not completely Strategy: evaluate NixOS with confjguration talking only of the service grab the parts you care about contents of fjles for etc NixOS systemd unit generation can export Exec* to script — thanks for that! That’s what I use on my system for CUPS and Xorg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 8 / 17

  22. Is code really trapped? Not completely Strategy: evaluate NixOS with confjguration talking only of the service grab the parts you care about contents of fjles for etc NixOS systemd unit generation can export Exec* to script — thanks for that! That’s what I use on my system for CUPS and Xorg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 8 / 17

  23. Is code really trapped? Not completely Strategy: evaluate NixOS with confjguration talking only of the service grab the parts you care about contents of fjles for etc NixOS systemd unit generation can export Exec* to script — thanks for that! That’s what I use on my system for CUPS and Xorg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 8 / 17

  24. Is code really trapped? Not completely Strategy: evaluate NixOS with confjguration talking only of the service grab the parts you care about contents of fjles for etc NixOS systemd unit generation can export Exec* to script — thanks for that! That’s what I use on my system for CUPS and Xorg Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 8 / 17

  25. Current functionality in LangOS serviceScript : service name, confjg → script etcSelectTarget : fjlename, confjg → store path etcSelectPrefix : path prefjx, confjg → attrSet of store paths https://github.com/7c6f434c/lang-os/blob/master/use-from-nixos.nix Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 9 / 17

  26. Current functionality in LangOS serviceScript : service name, confjg → script etcSelectTarget : fjlename, confjg → store path etcSelectPrefix : path prefjx, confjg → attrSet of store paths https://github.com/7c6f434c/lang-os/blob/master/use-from-nixos.nix Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 9 / 17

  27. Implications — and limitations NixOS real value is a large database of confjg generators Many services already reusable (if you know how) But: pay attention: some arguments live in difgerent branches some services too complicated for working runner script might want to get the parts and assemble carefully some confjgs do not got to /etc , do not get option name, only referenced inside service Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 10 / 17

  28. Implications — and limitations NixOS real value is a large database of confjg generators Many services already reusable (if you know how) But: pay attention: some arguments live in difgerent branches some services too complicated for working runner script might want to get the parts and assemble carefully some confjgs do not got to /etc , do not get option name, only referenced inside service Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 10 / 17

  29. Implications — and limitations NixOS real value is a large database of confjg generators Many services already reusable (if you know how) But: pay attention: some arguments live in difgerent branches some services too complicated for working runner script might want to get the parts and assemble carefully some confjgs do not got to /etc , do not get option name, only referenced inside service Michael Raskin · 7c6f434c (TUM) NixOS pieces without commitment 17.10.2020 10 / 17

Recommend


More recommend