Hackspace, Jena, 2015-10-15
@theuni
NixOS
oder
Ein pures Potpourri
oder
“Warum tut mein Gehirn
plötzlich weh … ?”
Agenda
- Tutorial
- systematisch
- perfekt
- vollständig
- logisch
Agenda
- Warum?
- Wie?
- Und dann?
Warum?
Eine Distribution?
Debian, Suse, Ubuntu, Gentoo,
Red Hat, Fedora, Mint,
ArchLinux, …
Ein Paketmanager
Portage, Apt, Yum, Cygwin,
Homebrew, …
Eine Sprache
Shell, Python, Perl, C, C++,
Go, Tcl, …
Nochmal: warum?
First Things First
Was ist ein Paket?
Was ist ein
Paketmanager?
Was ist eine
Distribution?
Und wo ist da
jetzt das Problem?
Vollständige
Abhängigkeiten
Widersprüchliche
Abhängigkeiten
Wiederholbare
Installationen
Atomare Updates
Rollback
Installa...
Wie?
Purity
Das System das mein Paket
baut, hat nichts mit dem
Bau des Pakets zu tun.
Leeres CHROOT
Kein Netzwerkzugriff
Keine unbekan...
Jedem Tierchen, sein
Plaisierchen
/nix/store/<hash>-<name>-<version>
Pakete treten sich nicht auf den Füßen
rum.
Dass irge...
Meet the Family
Nix nixpkgs NixOS
+ Hydra + NixOps
Nix
Nix
Paketmanager
Funktional, Deklarativ
Eine “richtige” Sprache
Pakete sind … anders
Highlight: Template
Expressions
Syntax: Indented
Strings
Syntax: Path-
Strings
./build.sh
src/install
http://nixos.org
Syntax: flexible
attribute sets
Syntax: recursive
attribute sets
Magic
PatchELF (OMFG. Please
scream!)
Wrapper-Shell-Skripte
Symlink-Farm und PATH-
Management
Symlink-Farm
nixpkgs
Ein Haufen Nix-Package-
Expressions
Für Linux, BSD, OS X, Cygwin,
…
nixpkgs
Und eine Standardlibrary um
Expressions richtig zu
abstrahieren
Aua. Mein. Kopf.
Naja.
Alles ist eine Derivation.
Alles ist eine Expression.
Alles ist eine Function.
NixOS
Aus Paketen
werden Module
Gesamtes System als Nix-
Expression beschrieben
Unabhängig von der Laufzeit
Abstraktion und
Impl...
Und dann?
$ nixos-rebuild build
$ nixos-rebuild test
$ nixos-rebuild switch
$ nixos-rebuild boot
$ nixos-rebuild build-vm
$ nixos-re...
$ ssh ctheune@foo
foo> nix-env -i firefox
foo> nix-env --rollback
foo> nix-channel --add
$ nix-channel --rollback
$ nix-shell
Hydra
NixOps
Caveat emptor
Ok, jetzt lieber
interaktiv weiter.
“Options” und “Packages” auf der
Webseite
http://nixos.org/nix/manual
http://nixos.org/nixpkgs/manual
http://nixos.org/nix...
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
NixOS @ Hackspace Jena
Nächste SlideShare
Wird geladen in …5
×

NixOS @ Hackspace Jena

633 Aufrufe

Veröffentlicht am

Vortrag über NixOS: was daran aus meiner Perspektive interessant ist und warum einem immer mal der Kopf platzt.

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
633
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
48
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

NixOS @ Hackspace Jena

  1. 1. Hackspace, Jena, 2015-10-15 @theuni
  2. 2. NixOS
  3. 3. oder
  4. 4. Ein pures Potpourri
  5. 5. oder
  6. 6. “Warum tut mein Gehirn plötzlich weh … ?”
  7. 7. Agenda - Tutorial - systematisch - perfekt - vollständig - logisch
  8. 8. Agenda - Warum? - Wie? - Und dann?
  9. 9. Warum?
  10. 10. Eine Distribution? Debian, Suse, Ubuntu, Gentoo, Red Hat, Fedora, Mint, ArchLinux, …
  11. 11. Ein Paketmanager Portage, Apt, Yum, Cygwin, Homebrew, …
  12. 12. Eine Sprache Shell, Python, Perl, C, C++, Go, Tcl, …
  13. 13. Nochmal: warum?
  14. 14. First Things First
  15. 15. Was ist ein Paket?
  16. 16. Was ist ein Paketmanager?
  17. 17. Was ist eine Distribution?
  18. 18. Und wo ist da jetzt das Problem?
  19. 19. Vollständige Abhängigkeiten Widersprüchliche Abhängigkeiten Wiederholbare Installationen Atomare Updates Rollback Installation als Nicht-Root Verschiedene Runtimes klare Toolchain
  20. 20. Wie?
  21. 21. Purity
  22. 22. Das System das mein Paket baut, hat nichts mit dem Bau des Pakets zu tun. Leeres CHROOT Kein Netzwerkzugriff Keine unbekannten, zufälligen Abhängigkeiten vom Host oder aus dem Netzwerk
  23. 23. Jedem Tierchen, sein Plaisierchen /nix/store/<hash>-<name>-<version> Pakete treten sich nicht auf den Füßen rum. Dass irgendwas im Store liegt, hat noch gar nichts zu sagen.
  24. 24. Meet the Family Nix nixpkgs NixOS + Hydra + NixOps
  25. 25. Nix
  26. 26. Nix Paketmanager Funktional, Deklarativ Eine “richtige” Sprache Pakete sind … anders
  27. 27. Highlight: Template Expressions
  28. 28. Syntax: Indented Strings
  29. 29. Syntax: Path- Strings ./build.sh src/install http://nixos.org
  30. 30. Syntax: flexible attribute sets
  31. 31. Syntax: recursive attribute sets
  32. 32. Magic PatchELF (OMFG. Please scream!) Wrapper-Shell-Skripte Symlink-Farm und PATH- Management
  33. 33. Symlink-Farm
  34. 34. nixpkgs Ein Haufen Nix-Package- Expressions Für Linux, BSD, OS X, Cygwin, …
  35. 35. nixpkgs Und eine Standardlibrary um Expressions richtig zu abstrahieren
  36. 36. Aua. Mein. Kopf. Naja. Alles ist eine Derivation. Alles ist eine Expression. Alles ist eine Function.
  37. 37. NixOS
  38. 38. Aus Paketen werden Module Gesamtes System als Nix- Expression beschrieben Unabhängig von der Laufzeit Abstraktion und Implementation
  39. 39. Und dann?
  40. 40. $ nixos-rebuild build $ nixos-rebuild test $ nixos-rebuild switch $ nixos-rebuild boot $ nixos-rebuild build-vm $ nixos-rebuild switch --rollback
  41. 41. $ ssh ctheune@foo foo> nix-env -i firefox foo> nix-env --rollback foo> nix-channel --add
  42. 42. $ nix-channel --rollback
  43. 43. $ nix-shell
  44. 44. Hydra
  45. 45. NixOps
  46. 46. Caveat emptor
  47. 47. Ok, jetzt lieber interaktiv weiter.
  48. 48. “Options” und “Packages” auf der Webseite http://nixos.org/nix/manual http://nixos.org/nixpkgs/manual http://nixos.org/nixos/manual http://slides.com/garbas “Nix Pills”

×