@
ookhoi Hartelijk dank voor je uitgebreide reactie. Wat ik er uit kan destilleren, is dat NixOS je de mogelijkheid biedt, om heel snel een andere configuratie (van desktop naar back-upserver) uit te rollen en daarna net zo makkelijk weer terug te gaan naar de vorige configuratie. Ik moet zeggen dat ik dat wel indrukwekkend vind, maar ik zie nog altijd geen ultieme oplossing voor een bestaand probleem.
Eerst even ruilen dan maar:
Gentoo is een source based distributie, met een geheel eigen "package manager" genaamd "Portage". Het is geïnspireerd op de BSD "ports collections" waarbij je ook eerst de broncode download/uitcheckt, om vervolgens de software lokaal te compileren. Voor het compileren kun je uiteraard allerhande variabelen meegeven. Portage maakt hiervoor gebruik van zogenaamde useflags, die je, op meerdere niveaus kunt definiëren in de /etc/portage directory.
Een voorbeeld:
In de globale file "/etc/portage/make.conf" definieer je systeembrede zaken zoals compiler optimizations, je videokaart, je systeemtaal, en dus je globale useflags, bijvoorbeeld: "USE="X gtk gnome NetworkManager egl wayland -berkdb mtp-systemd -qt5 -qt6 -kde". Een flag met een "-" ervoor betekent geen ondersteuning meecompileren.
Daarnaast heb je nog een aantal bestanden in de Portage directory om meer fine tuned te werk te gaan:
package.mask: hier kun je pakketten, bepaalde versies van pakketten, of bijvoorbeeld versies kleiner of groter dan, van pakketten uitsluiten van installatie.
package.use: Hier kun je op pakket niveau useflags definiëren. Dus als ik voor librecad wel qt6 ondersteuning wil, kan ik dat hier aangeven.
package.accept_keywords: hier kun je per pakket aangeven of je uit "testing" wilt compileren, waar standaard "stable" wordt gebruikt.
Er zijn nog meer manieren om invloed uit te oefenen op je systeem, maar voor nu laat ik het even hierbij. Het compileren zelf doe je middels het "emerge" commando. Alles gaat verder vanzelf aan de hand van je config.
Vanzelfsprekend is installeren op Gentoo zesduizend keer langzamer dan welke binary based distro dan ook. Je initiële installatie duurt ongeveer twee dagen op een modern systeem en dat is als je Gentoo kent en weet wat je aan het doen bent.
MAARRR..... met mijn portage directory in git, kan ik dus met minimale aanpassingen in de config, exact hetzelfde systeem bouwen, maar dan op een Intel chipset, inplaats van een AMD-chipset.
Enige puntje is de kernel, want die moet je ook zelf configureren en bouwen op Gentoo. Dat is wat minder portable, omdat Gentoo daar geen mechanismen voor heeft. Dat is dan ook een ding waarop je systeem kan breken, maar dat geldt voor elk systeem waar je zelf de kernel bouwt.
Terug naar de vergelijking met NixOS:
Ik zie nu wel dat NixOS echt anders is dan de meeste andere distro's. Met name het vooraf bepalen van hoe je je systeem wilt en daarna "PLOP*" daar staat het, is echt wel kick ass! Ik kan dat met Gentoo ook, maar dan ben ik een paar uur aan het compileren :-D
Toch blijft bij mij de vraag bestaan waarom je dit voor dagelijks gebruik zou willen. Zoals gezegd blijft mijn Gentoo met gemak tien jaar draaien en kan ik tussendoor even wisselen van Gnome naar KDE, van PHP op Apache, naar Python op Nginx en vice versa. Ik doe dat alleen echt nooit! Ik heb specifieke voorkeuren en daar blijf ik al decennia bij.
Jouw voorbeeld van de back-upserver, zou ik oplossen door het cronbestand van mijn back-upserver, zolang op mijn desktop te draaien. Verder draait mijn enkele server al die zaken waarvoor jij losse servers hebt draaien. Niet helemaal natuurlijk, want ik heb ook een pi-hole en een home-assistant draaien op single-boards.
Maar ik ga naar aanleiding van jouw post, toch eens experimenteren met nix (de package-manager) op bijvoorbeeld mijn Odroid-N2+ (home assistant). Nogmaals dank voor je uitgebreide verslag.