News NixOS 20.03: Linux 5.4 und KDE Plasma 5 treffen auf atomare Updates

SVΞN

Redakteur a.D.
Registriert
Juni 2007
Beiträge
22.987
NixOS geht mit seinen atomaren Updates und dem eigenständigen Paketmanager Nix eigene Wege und hebt sich so von anderen Linux-Distributionen am Markt ab. Mit seiner unorthodoxen Arbeitsweise bildet das Paketmanagement-Tool die Basis für die moderne Linux-Distribution, die sich vor allem für Mehrbenutzer-Arbeitsplätze eignet.

Zur News: NixOS 20.03: Linux 5.4 und KDE Plasma 5 treffen auf atomare Updates
 
  • Gefällt mir
Reaktionen: linuxxer, BieneMafia, Termy und 6 andere
Wer braucht schon ein OS? Ich hab nix OS. :evillol:

Ne aber mal im Ernst, wer denkt sich solche Namen aus? :D
 
  • Gefällt mir
Reaktionen: bad_sign, wesch2000, Tacheles und 2 andere
Funktiniert es auch als ein Live-System?
 
Ja du kannst das ISO direkt starten und verwenden. NIX (der Paketmanager) läuft übrigens auch auf allen anderen Linux Systemen wie z.B. Ubuntu/Debian oder Arch.

@SV3N Danke!
 
  • Gefällt mir
Reaktionen: linuxxer, storkstork, Tacheles und 2 andere
Das sieht echt gut aus.
Mir gefällt erstmal, vor allem der VM Modus bei Änderungen und der scheinbar einfache "Rückwärtsgang" bei Fehlern.
Ma (an)kucken
 
  • Gefällt mir
Reaktionen: SVΞN
Wenn man das Ganze noch auf die Spitze treiben will, kann man sogar Firefox inkl. Addons (mit home-manager [1]) komplett via Nix einrichten. Beispiel:

Code:
{ config, lib, pkgs, ... }:
{
  programs.firefox = {
    enable = true;
    extensions = lib.mkIf config.programs.firefox.enable (
      with pkgs.nur.repos.rycee.firefox-addons; [
        decentraleyes
        disconnect
        gesturefy
        google-search-link-fix
        gopass-bridge
        privacy-badger
        privacy-possum
        textern
        ublock-origin
        vimium
      ]
    );
  };
}

[1] https://github.com/rycee/home-manager
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: JustAnotherTux, linuxxer, AudioholicA und 3 andere
Rollbacks hab ich mit btrfs snapshots unter arch linux auch eingerichtet. Im notfall lassen sich damit ältere snapshots booten oder auch einzelne packete bzw. differenzen zwischen dem snapshot und aktuell wiederherstellen. Sehr praktisch wenn man es braucht.

Aber grössere updates vorher in einer vm testen zu können, rollbacks & gute mehrbenutzerkonfiguration macht nix os besonders für administation in unternehmen und schulen interessant. Ich probier recht selten andere os aus, aber nix os gesellt sich schonmal auf meine probierliste hinzu.
 
Was'n das für'n Blödsinn. Wer braucht denn so viele Programme.
Früher hat ein Rechenschieber und ein Blatt Papiert doch auch gereicht.
Heute gibt es für alles ein eigenes Programm und davon auch noch mehrere.
Statt ein Bild auf Papier zu malen, braucht man Gimp, Photoshop, Paint etc.

Oh, falscher Thread es geht ja um Betriebssysteme...
Bitte "Programme" durch "Betriebssysteme" austauschen :D

Ne Spass. Ist doch schön, dass es Auswahl gibt. Möchte auch nicht jeden Tag nur Pellkartoffeln essen.
 
Der Artikel kratzt nur an der Oberfläche aber trotzdem gut das über die Distro geschrieben wird, sie hat es verdient denn anders als die 500 andere Distros die nur Ubuntu mit einem anderen Standartpaketset sind ist dies ein echter anderer Distrozweig so wie debian / fedora / suse. Nixos ist sogar verschiedener wie die davor genannten, weil die größtenteils nur andere Paketmanager benutzen, Nixos benutzt nicht nur eine andere Implementation eines Paketmanagers sondern ein ganz anderes Grundprinzip von Packetmanager und ein andere Verzeichnisstruktur.

Ich benutze es seit Jahren auf meinen Maschinen 2 Laptops 1 Netbook und ein server/htpc. So neben den atomaren Updates die natürlich Toll sind, hat man auch eine zentrale Konfigurationsdatei mit der man dem System anweist wie der nächste Zustand aussehen soll, man könnte es simplifiziert mit nem Makefile vergleichen nur mit dem Unterschied das Nixos weiß wie es von A -> B kommt ohne alles neu zu komplieren. Es erkennt quasi die Differenz und baut die Pakete die noch fehlen oder deinstalliert die Sachen.
Auch ist es nicht nur auf Paketmanagement begrenzt, einen Nutzer legt man z.B. auch über diese Konfiguration an. Das sieht dann z.B. so aus:

Code:
  users.extraUsers.black = {
    extraGroups = [ "networkmanager" "wheel" "libvirtd" "docker"];
    isNormalUser = true;
    uid = 1000;
  };

So wenn man diese eine Konfigurationsdatei nun sichert nur diese Datei, kann man wenn die Festplatte kaputt geht oder wenn man z.B. nen 2. Notebook hat auf dem man ungefaehr das gleiche Setup will einfach die Datei nehmen und auf das andere Geraet kopieren dann sagen:
nixos-rebuild switch
und es wird das System mit allen Settings / Benutzern etc wieder eingerichtet.

Das kann man mit nem Systembackup auch erreichen aber erstens ist das natuerlich groesser und zweitens kann man dieses System auch mit nem neueren "channel" machen, beim Backup bekommst dann genau das alte Setup und muss dann erstmal zu der aktuellen Version updaten, hier ist das ganze dann schon geupdated.

Man kann auch ALL seine Konfiguration Zentral mit einem Texteditor durchsuchen, statt in /etc 1000 unterordner durchsuchen oder per systemctl enable/disable Zuständen überprüfen/ändern.

Mal kleines Beispiel angenommen ich möchte Redshift verwenden, in anderem Linux muss ich das Paket installieren entweder im Userverzeichnis oder die Systemkonfiguration finden und verändern und dann vermutlich noch mit Systemctl enable redshift das Ding scharf stellen.

In Nixos werf ich das in die zentrale Config rein:
Code:
  services.redshift = {
    enable = true;
    brightness.day = "0.9";
    brightness.night = "0.7";
  };
  location = {
    latitude = 47.809602;
    longitude = 9.637983;
  };

sag nixos-rebuild switch und es ist aktiv. Nun beim 1. einrichten ist der Aufwand noch nicht so viel kleiner, aber sofern man die Linien raus gefunden hat muss man die Configdatei nicht suchen / herausfinden und den Befehl zum das enablen wie genau der Dienst heißt redshift/redshift-daemon oder was auch immer... muss man nicht raus finden.

Wenn du es aber 3 Monate später deaktivieren willst hast sicher schon vergessen wie die config datei hieß oder in welchem Unterordner sie lag bei ner normalen distro und musst das erst wieder googlen, hier konfigurierst die Zeilen wieder aus nixos-rebuild switch und es ist weg.

Da das System quasi keinen oder wenn dann nur mit wenigen kleinen ausnahmen optional Zustände hat, muellst sich das System so auch nicht zu wenn du ein redshift deinstallierst sind die Chancen hoch das die config Dateien nicht automatisch mit gelöscht werden etc.

Bei den meisten anderen Distros kommt man an irgend einen Punkt irgend ein Update läuft schieff oder irgendwas wo man neuinstallieren muss, und dann muss man wieder alles von vorne einrichten, bei Nixos fängst nie wieder bei 0 an.

Hoffe das erklärt einige Vorteile besser.
 
  • Gefällt mir
Reaktionen: JustAnotherTux, Penicillin, PvtConker und 9 andere
"Atomare Updates" hat mir bis eben nichts gesagt. Habe bei "atomaren" Updates erst vermutet das wäre ein Modebegriff um auzudrücken, dass jeder Kleinscheiß als update verteilt wird.

Nach ein wenig Sucherei habe ich dann aber doch auch mal einen Satz gefunden, der beschreibt, was denn überhaupt mit 'atomic' gemeint ist:
Since package management operations never overwrite packages in the Nix store but just add new versions in different paths, they are atomic.
Das Konzept klingt nun doch gar nicht so uninteressant.
 
@blackiwid
Dein Beispiel kannst du noch schöner machen:
Code:
let
  defaultUser = "black";
  hasDocker = config.virtualisation.docker.enable;
  hasNetworkManager = config.networking.networkmanager.enable;
in

{
  users.users.${defaultUser} = {
    isNormalUser = true;
    uid = 1000;
    home = "/home/${defaultUser}";
    description = "${defaultUser}";
    extraGroups = [ "wheel" ]
      ++ pkgs.lib.optional hasDocker "docker"
      ++ pkgs.lib.optional hasNetworkManager "networkmanager"
      ;
  };
}
Damit wird z.B. die Gruppe "docker" nur eingetragen, wenn du die Option: "virtualisation.docker.enable" auf "true" hast :)

Habe heute meinen Server und meinen NUC auf 20.03 umgestellt. Alles perfekt gelaufen!
 
  • Gefällt mir
Reaktionen: Linuxfreakgraz und blackiwid
Hörbört schrieb:
"Atomare Updates" hat mir bis eben nichts gesagt. Habe bei "atomaren" Updates erst vermutet das wäre ein Modebegriff um auzudrücken, dass jeder Kleinscheiß als update verteilt wird.

Nach ein wenig Sucherei habe ich dann aber doch auch mal einen Satz gefunden, der beschreibt, was denn überhaupt mit 'atomic' gemeint ist:

Das Konzept klingt nun doch gar nicht so uninteressant.

Atomar meint auch in anderen Zusammenhaengen das es kein zwischenstatus gibt zwischen VON -> ZU. Wenn ich den normalen cp befehl in linux benutze und der Strom geht im haus mitten drin weg, und man startet den Rechner neu ist die Datei wahrscheinlich da aber halt nur halb, also ein Zwischenstatus. Bei vielen Paketmanagern startet er irgendwann Dateien zu kopieren und zu veraendern wenn man das abwuergt hat man halb das neue paket halb das alte. Das kann bei Nixos so nicht passieren. Da erst das neue dazu installiert wird und dann am Ende noch ein Hardlink auf diese version gesetzt wird. Diese Operation des setzen des Hardlinks ist soweit ich weiss auch atomar entweder man setzt es auf das neue paket oder es ist noch auf dem alten es gibt keinen Zwischenzustand soweit ich weiß.
Ergänzung ()

Lord_X schrieb:
@blackiwid
Dein Beispiel kannst du noch schöner machen:

Damit wird z.B. die Gruppe "docker" nur eingetragen, wenn du die Option: "virtualisation.docker.enable" auf "true" hast :)

Habe heute meinen Server und meinen NUC auf 20.03 umgestellt. Alles perfekt gelaufen!

Naja seh keinen grossen Nachteil darin wenn du in 2 Gruppen bist die nicht viel bringen, ausser vielleicht das ein lsgroup oder so was bisschen aufgeräumter ist :D Oder vielleicht irgendwelche Sicherheitsvorteile?

Btw moechte mal noch die Nachteile des Ansatzes auch erleutern, es ist eben eine Abstraktionsschicht zwischen Linux und dem Nutzer, z.B. wenn man ein github repository mit irgend nem C programm oder so hat, aber kein Nixos paket da ist, kann man nicht einfach ins verzeichnis gehen und ./configure; make; make install machen was in anderen Linuxen geht (vorrausgesetzt die Abhaengigkeiten sind installiert) das heisst man muss dann ein Paket dafuer schreiben, und die Nix Sprache und die Doku zu und die API und die ganze Struktur koennte einfacher sein. Ein PKGBUILD in Arch schreiben oder umschreiben ist einfacher als ein Nix Paket zu schreiben.
 
  • Gefällt mir
Reaktionen: Linuxfreakgraz
@blackiwid Schöne Zusammenfassung. NixOS und Bedrock Linux sind wohl momentan die interessantesten Distributionen.

Beschäftige mich selber bzw. benutze seit circa 2-3 Wochen NixOS und würde gerne noch nix-shell hier erwähnen.

Obwohl man z.B. Python und notwendige Pakete systemweit installieren kann, kann man auch eine shell.nix Datei in einem Verzeichnis anlegen. In dieser definiert man dann welche Pakete verfügbar sein sollen und wenn man dann nix-shell ausführt gelangt man in eine Shell mit genau diesen Paketen ohne das eigentliche System zu verändern. Isolierte Umgebungen sind also mit an Bord.

Zusammen mit Tools wie lorri (automatisiert das Bauen der Umgebungen) und niv (bessere Verwaltung von Versionen) erlaubt einem das recht einfach das Arbeiten in definierten Umgebungen.
 
  • Gefällt mir
Reaktionen: PvtConker und Linuxfreakgraz
Zurück
Oben