cypeak schrieb:
zugegeben ich habe mich mit nixos noch nicht im detail beschäftigt, aber mir fehlt einwenig der größere sinn der distribution.
Hmm stell dir einfach grob sowas vor eine datei:
Mein System
Programme:
- firefox
- Gnome
- Program A B C
User:
- foo
- bar
- baz
Dienste
- Nextcloud
...
und nun hast du nen schönen Befehl:
Simsalabim-Zauber-mir-das-system
und dann ist es da, nun kopierst die datei auf den nächsten PC und sagst wieder Zauber mir das System und es wird gebaut.
Kannst theoretisch sogar sowas bauen wie:
if Hostname == "mein-htpc"
Kodi...
Du hast alle Configuration in dem System und wenn du irgendwas änderst und es irgendwas kaputt machen sollte oder was nicht funtzt kannst auch jederzeit nen Rollback machen.
Es kann nicht plötzlich nen Update irgendwo in ner /etc datei irgendwas überschreiben oder auf manuellen Merge warten oder was auch immer weil die Schritte zwischen System A und System B es automatisch erkennt was dazwischen passieren muss.
Hoffe das war halbwegs verständlich.
Du musst auch nicht manuell z.B. für Nextcloud her gehen und irgendwas in ne DB schreiben oder die DB manuell installieren oder sowas, oder irgendwelche spezielle Befehle eintippen.
Auch ist es Atomar heißt wenn irgendwas bei der neuen Einstellung nicht passt und es nicht funktioniert stoppt es und das Update wurde nicht halb angewendet sondern ganz oder gar nicht.
Auch hast du 1 Zentrale Datei in dem ALLE settings und alle Programme drin stehen.
Das ist z.B. die Definition meines Nextcloud servers:
C-ähnlich:
services.nextcloud = {
enable = true;
hostName = "<MY HOSTNAME>";
package = pkgs.nextcloud33;
phpOptions = {
"versions_retention_obligation" = "auto, 20";
"trashbin_retention_obligation" = "auto";
};
config = {
dbtype = "sqlite";
adminpassFile = "${pkgs.writeText "adminpass" "XXXXXXX"}";
};
};
Letzlich vielleicht irr ich mich grad, aber geht es auch um ein bisschen functional Ansatz wenig "Zustände".
Nimm dir an du installierst irgend ein Programm, und deinstallierst es wieder, hast es dazwischen mal genutzt, dann wird es wahrscheinlich irgendwelche Daten anlegen, das wird auch Nixos und Co nicht komplett verhindern, wenn du dann irgendwann 2 Jahre später das wieder installierst hat es vielleicht noch alte Configs rum legen die das Program anders verhalten lässt wie bei ner neuinstallation, wie gesagt das können diese Distros (nixos / guix) auch nicht ganz verhindern, aber zumindest /etc wird komplett gelöscht / neu angelegt, keine Leichen die das Verhalten nicht reproduzierbar machen... Klar er wird mir jetzt nicht nextcloud daten löschen nur weil ich den dienst aus der config mache und "update". Trotzdem gibt sowas eben weniger Probleme mit Updates oder sowas.
Ein Nixos ist ein Nixos und jede Config wird in jedem Nixos mehr oder weniger gleich funktionieren oder nicht funktionieren. Es altert quasi nicht wie ein klassisches Linux.