I think the big difference is:
- Nix: the filesytem is rarely the right datastructure (I agree) other things are needed.
- Nix: Store and Nix too is more freeform, package / distro norms provided by higher layers (Nixpkgs, NixOS)
I think the big difference is:
- Nix: the filesytem is rarely the right datastructure (I agree) other things are needed.
- Nix: Store and Nix too is more freeform, package / distro norms provided by higher layers (Nixpkgs, NixOS)
Just wondering if you can compare/contrast NixOS with something like Fedora Silverblue or Fedora CoreOS.
Silverblue is still pretty much imperative, you install/remove RPM packages and that's it, you use Flatpak for everything else. NixOS you have to describe your entire system in a programming language. NixOS gives you so much more freedom to do what you want, but you have to work for it, learn a language, learn it's constructs, etc.
I enjoy both though, feels like the right direction to go, you just need to choose how you want to interact with your OS.
I personally think containerization is just too much a PITA to use for software that doesn't live in a bubble, e.g. desktop software. The capabilities revolution (Capsicum or CloudABI) would be more secure and easier to program with, so we just need to force our way there, and then everything will take care of itself.
Most people just want to cargo-cult what others do, and most things initially get popular because some way of deploying software requires it / makes it the path of least resistance. None of that is about practicality, just short-sightedness and ecosystem effects.
Has that been your experience?
With Ubuntu, Debian, and even Arch, it's pretty much install and go.
Also, it requires significant disk space, which I usually don't have on my laptops.
If you just want the ability to install arbitrary versions of packages along side each other/have painless roll backs/bake config files into your install you can do that there.
Once you get comfy with nix on top of another distro then think about whether you want that approach with the entire stack.
I'm also waiting for the parts of my new desktop to come in and I'm excited that all it takes is cloning my config repo and applying to get to exactly the same setup. With Arch I would have reinstalled to clear the cruft that has accumulated, however with NixOS I can just audit my configs to see an entire list of cruft and easily undo it by removing lines.
One of my hobbies is recycling older machines. I've installed NixOS on Chromebooks with 16GB internal drives. It's possible if you remember to garbage collect after each successful upgrade (and stick to 64-bit machines).
I tend to treat my laptops as disposable and keep my important data on a file server so I don't rely on local disk space.
I do the same, except I use an extensive dotfiles, config, and bootstrap script repo[0].
So I like the idea of Nix for that reason. It's going to be hard to let go of Debian/Ubuntu, but I'd really like to have a perfectly reproducible environment like Nix.
Thanks for your reply.
0. however, I also unfortunately have to use Windows sometimes,so I dual boot, and that takes up significant room on my smallish laptop drive
Nix/lorri/direnv, in particular basically obsoletes nvm, rbenv, etc.