3 ms·
One big difference is that _the entire system_ is built using Nix, including configuration files. Nothing in /etc is editable, everything goes through /etc/nixo
by wmertens 12y ago
One big difference is that _the entire system_ is built using Nix, including configuration files. Nothing in /etc is editable, everything goes through /etc/nixos/configuration.nix followed by a `nixos-rebuild switch` (does the entire build before atomically switching) and a `nixos-rebuild switch --rollback` (takes a few seconds) if you panic.
The configuration is just a Nix expression so you can do whatever you like with it, it's not like a JSON file but actually integrates with your packages, allowing you to override settings etc. There are options which are the same as USE flags, for example you can turn off X with `environment.noXlibs=true` and the entire system would be rebuilt without X.
It's at the same time much simpler than portage and much more expressive.