(no title)
adsjhdashkj | 5 years ago
However one problem i never see solved from any "normal" distros is reproducible systems. Hypothetically if i used Nix as a Desktop my config would be bulletproof. .. but then i'm going through a fair amount of work configuring everything when, as established, i want none of it.
So i (as a user) seem to want some middleground between no effort installations / configurations of my Desktop, with reproducible snapshots/states/configs/something.
You can use Nixpkgs on other distros/OSs, so maybe that is enough. But is there a better way?
MarcScott|5 years ago
kevincox|5 years ago
And yes, the fact that I can configure all of my systems with a shared set of configs and have consistent and reproducible environments is fantastic.
I wrote up my thoughts about the switch here: https://kevincox.ca/2020/09/06/switching-to-desktop-nixos/
adsjhdashkj|5 years ago
While i've dabbled in Nix in the past some things felt more odd to me than perhaps they should have. Primarily the fact that it felt like all these configs were spread out and i didn't understand how Nix wanted me to version them.
Flakes (from early tests) seems to make this very clear. As it starts from a repo, so i'm attempting to make all my configs, including Home Manager (of which also feels weird lol) start from the Flakes installation.
Flakes also solves the reproducibility problem that i didn't get why NixOS had. So far it's really neat.
wesnel|5 years ago
I would imagine that you could use Home Manager on a non-NixOS system to at least create reproducible configs for the programs you use, although the OS as a whole would of course still be non-reproducible. However, I do not know how well Home Manager works on non-NixOS systems.
As you mention, just using Nix itself can be sufficient to get a reproducible set of packages on your system. I recall reading a blog post about someone who does this on both Ubuntu and MacOS.[1] The way this person does it is interesting because it’s more sophisticated than spawning the occasional ‘nix-shell’ or something. For example, they get the benefit of Nix “generations,” with a new generation being created each time they modify their declarative config files.
[0] https://github.com/nix-community/home-manager [1] https://www.nmattia.com/posts/2018-03-21-nix-reproducible-se...
sterlind|5 years ago
* Config files aren't always stored in text (e.g. KDE Plasma, Gnome)
* It's all-or-nothing usually, unless you can find a way to make the home-manager config your "base"
* Changing settings isn't integrated, and requires editing/rebuilding/reopening (e.g. I can't just hit Ctrl+ to increase font size in VS Code, I have to edit a config file, run home-manager switch, then usually reopen)
* Plugins, especially things like extension stores, are a hack and a half. You have to hunt for hashes, then change it every time your old version falls off the CDN.
It's a nice idea, in theory, but it only works in a vacuum.
yjftsjthsd-h|5 years ago
Edit: Oh, and obviously I keep the playbooks+roles in version control.
Ericson2314|5 years ago