but I also discourage people to install NixOS without having first learned at least some of the Nix language by practicing Nix in another Linux distribution.
I’m really hesitant to recommend people to start with Nix on non-NixOS because it is clearly a second-class citizen, which is not good for a first-time exposure.
Off the top of my head:
- openGL application simply segfault.
- you have to use nix-env instead of declarative configuration.nix
- on single user installs, the store is mutable so it can easily be corrupted (and this happens often: every time you run python, it compiles bytecode in the store)
- on distros without user namespaces (eg debian without special tuning) you end up disabling the sandbox, and some package don’t compile without it because they depend on /bin/sh being bash or because they still pick up FHS libs.
- on darwin there is (used to be) a bug were if you try to install an unsupported package (eg firefox) nix-env fails without an error message
We only do CI on sandboxed NixOS linux (at least, I don’t know about darwin) so everything else ends up worse user experience. I don’t want to recommend that to potential users.
Also (but this is more personnal) I found helpful to be stuck on NixOS and thus forced to install things the right way. If you are still on $distro, it is easy to give up on $yet-another-evaluation-error and decide to use the mutable, usual way.