Binärgewitter

Binärgewitter Spezial #7: NixOS


Listen Later

Endlich ist sie da. Die Spezial Sendung zu NixOS. Felix und Jörg sind NixOS Jünger und lassen sich von Ingo mal befragen wie Nix und NixOS so funktionieren.

Was ist Nix?
  • Vieles aber vorallem ein Paketmanager für Linux und andere unixoide Systeme
  • Gleiche Liga wie apt (debian-alike), pacman (archlinux), dnf (fedora)
  • Aber einzigartige Funktionen, u.a
    • atomare Upgrades/Downgrades
    • konfliktfreie Installation verschiedener Versionen eines Paketes
    • Mehrbenutzerunterstützung
    • Vergleich Apt mit Nix
      • Befehl: apt install sl (die hässliche Eisenbahn)
      • Lädt Paketliste
      • Was muss installiert werden? (ncurses, libc)
      • Versionskonflikte?
      • LSB-Verzeichnisstruktur:
        • /usr/bin/sl
        • /usr/share/man/man1/sl.1.gz
        • nix-shell -p sl (zum ausprobieren)
        • Paketliste == nixexprs: (ein Art Bauanleitung für alle Pakete)
        • berechnet Bauanleitung für sl
        • checkt Binärcache
        • statt LSB, berechnet Pfad für das Paket /nix/store/-sl-:
          • ./bin/sl
          • ./man/man1/sl.1.gz
          • Bauanleitung einzigartig und vollständig -> einzigartiger Pfad
          • Funktionales Paketmanagement
            • Jedes Paket ist isoliert (sieht nur seine Abhängigkeiten)
            • Reproduzierbar (Selbe Quellen/Befehle beim Bauen -> selbes Ergebnis)
            • Generisch (nicht auf Sprache/Technologie beschränkt, baut Skripte, z.B Shell, setzt Umgebungsvariablen)
            • verlässlich: alle Abhängigkeiten sind vollständig, Updates überschreiben alte Versionen nicht -> Rollbacks möglich
            • Effizient: nur notwendige Schritte beim Neubauen und aktualisieren, Abhängigkeiten nur einmal vorhanden
            • Nix-Projekt
              • Nix
              • Nixpkgs
              • NixOS
              • Hydra
              • NixOps
              • Nixos-Konfiguration
                • deklarative Konfiguration
                • Konfigurationsmanagement für lau
                • Nix - Funktionsweise
                  • Idee: Alle packages werden isoliert voneinander:
                  • /nix/store/rpdqx...-firefox-3.5.4
                  • Pfad: 160-bit kryptografischen Hash aller Paketabhängigkeiten:
                    • Quellen, Bibliotheken, Kompiler, Buildskripte
                    • Nix - Expressions
                      • Nix Pakete werden mit Nix gebaut!
                      • jede Paketbeschreibung eine Funktion
                        • Eingabe: Abhängigkeiten des Paketes
                        • Ausgabe: Derivation -> Pfad
                        • kennt die Reihenfolge: Baut Abhängigkeiten vorher selbst (keine Zyklen)
                        • implizite Laufzeitabhängigkeiten
                        • lazy evaluation
                        • Nixpkgs
                          • source on github
                          • >13.000 Pakete für x86_64 linux
                            • contributors
                            • Search NixOS packages
                            • Abstraktionen für die meisten Buildsysteme
                              • (*alle* Haskellpakete)
                              • Aktuelle unterstützte Platformen (Binärpakete)
                                • Linux: (legacy: i686), x86_64, (aarch64)
                                • Mac OS X: x86_64
                                • bietet Abstraktion (Magie) für Buildsysteme/Sprachspezifische Paketmanager
                                  • Pakete sind einfach zu bauen
                                  • nixpkgs/nixos
                                    • NixOS ist Bestandteil von Nixpkgs
                                    • 689 Module
                                      • Systemeinstellungen (Zeitzone, Fonts, Benutzer)
                                      • Services (sshd, nginx, openstack, gitlab, …)
                                      • Hydra
                                        • Baut alle Pakete in nixpkgs
                                        • selber betreibbar (binary cache) - interessant für Firmen/Gruppen
                                        • Meisten Pakete müssen nicht selber gebaut werden:
                                          • allerdings einfach möglich (patches, neue Versionen aka Backports etc)
                                          • Entwicklungsumgebungen (nix-shell)
                                            • nix-shell liest default.nix oder shell.nix ein und startet ein bash mit konfigurierter Umgebung
                                            • in der alle Abhängigkeiten zum Bauen sichtbar sind
                                            • Einheitliche Abhängigkeiten, wenn man im Team arbeitet (ganz ohne docker)
                                            • NixOps
                                              • NixOps
                                              • dockt an verschiedene Cloud-Provider/SSH/VM-Manager:
                                                • AWS, GCE, Azure, Libvirt, Digitalocean, Hetzner, Virtualbox, NixOS-Container (nspawn)
                                                • Cluster hochziehen (Maschinen erstellen, Netzwerk konfigurieren, Instanzgrößen, Platten)
                                                • Andere coole Nix dinge
                                                  • home-manager
                                                  • nix im Shebang shebang
                                                  • nix closures per ssh verschicken
                                                  • NixIPFS
                                                  • Features in der Zukunft
                                                    • Ende Oktober NixCon in München
                                                    • Ende September: Release 17.09
                                                    • PR für besseres Cross-Kompilieren (z.B. arm32)
                                                    • nix 1.12
                                                    • Wie fange ich mit nix an
                                                      • Paketmanager auch unabhängig von NixOS nutzbar
                                                      • kann man in die shell pipen…
                                                        • sudo install -d -m755 -o $USER -g $USER /nix
                                                        • curl https://nixos.org/nix/install | sh
                                                        • …oder per Paketmanager installieren (AUR):
                                                        • Auch ohne root nutzbar
                                                        • Handbuch, Wiki, IRC: #nixos auf freenode, Nix Pills
                                                        • ...more
                                                          View all episodesView all episodes
                                                          Download on the App Store

                                                          BinärgewitterBy Binärgewitter Team

                                                          • 3.5
                                                          • 3.5
                                                          • 3.5
                                                          • 3.5
                                                          • 3.5

                                                          3.5

                                                          2 ratings


                                                          More shows like Binärgewitter

                                                          View all
                                                          Freak Show by Metaebene Personal Media - Tim Pritlove

                                                          Freak Show

                                                          9 Listeners

                                                          Sternengeschichten by Florian Freistetter

                                                          Sternengeschichten

                                                          48 Listeners

                                                          Methodisch inkorrekt! by Methodisch inkorrekt!

                                                          Methodisch inkorrekt!

                                                          14 Listeners

                                                          Lage der Nation - der Politik-Podcast aus Berlin by Philip Banse & Ulf Buermeyer

                                                          Lage der Nation - der Politik-Podcast aus Berlin

                                                          223 Listeners

                                                          Logbuch:Netzpolitik by Metaebene Personal Media - Tim Pritlove

                                                          Logbuch:Netzpolitik

                                                          6 Listeners

                                                          Hörchaos (AAC) by Thomas Brandt

                                                          Hörchaos (AAC)

                                                          0 Listeners

                                                          Off/On – der Podcast von netzpolitik.org by netzpolitik.org

                                                          Off/On – der Podcast von netzpolitik.org

                                                          0 Listeners

                                                          Die Wochendämmerung - Der stabile Wochenrückblick by Katrin Rönicke und Holger Klein (hauseins)

                                                          Die Wochendämmerung - Der stabile Wochenrückblick

                                                          12 Listeners

                                                          Spektrum-Podcast by detektor.fm – Das Podcast-Radio

                                                          Spektrum-Podcast

                                                          15 Listeners

                                                          Das Universum by Florian Freistetter, Ruth Grützbauch, Evi Pech

                                                          Das Universum

                                                          11 Listeners

                                                          GNU/Linux.ch by GNU/Linux.ch

                                                          GNU/Linux.ch

                                                          1 Listeners

                                                          Bit-Rauschen: Der Prozessor-Podcast von c’t by c't Magazin

                                                          Bit-Rauschen: Der Prozessor-Podcast von c’t

                                                          0 Listeners

                                                          UNFASSBAR – ein Simplicissimus Podcast by Simplicissimus

                                                          UNFASSBAR – ein Simplicissimus Podcast

                                                          25 Listeners

                                                          Urlaub im Userspace by Christian Stankowic, Jan Walther & Enrico Bartz

                                                          Urlaub im Userspace

                                                          0 Listeners