Seems like this distro is getting a lot of traction recently. Has anyone tried it? Is it any good?
Being using it for almost 2 years. Was very weird at the beginning because of the “declarative” approach they used. But once you get used to it… Its a life changer.
Your whole system is defined in a file called configuration.nix
. This file
describes everything about your system: all packages installed, which Desktop
Environment / Window Manager to use, and also configuration for almost
everything (e.g. zsh or neovim). When “switching” (which is basically
installing/updating the system), Nix looks at the configuration and changes your
system according to what you’ve declared in the configuration.nix
, installing
or uninstalling packages for instance.
So, the state of your system is “declared” in a single file, which can be tracked in git or backed up wherever. If you have mulitple systems, you can also share parts of your config between them, which makes configuring and customizing stuff a lot easier.
There are a lot of other aspects, but thats the basic gist of it
Is it a big learning curve? Is this the emacs equivalent of OS configuration/installation?
edit: another question - Could I play around with it by installing in qemu and if I like that, take my configuration.nix from qemu and install it as my main OS?
That sounds really cool… so you could just take that file, do a clean install of nix, then put that file back and it’ll install all your old packages and stuff?
Oh my bad. Yeah you can configure almost anything in a declarative way on the /etc/nixos/configuration.nix
file:
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
Or
services.xserver = {
enable = true;
display manager.gdm.enable = true;
};
You can define a lot more (programs, users) and then you build the config file to take effect. By default NixOS is immutable so you can’t change anything in the root partition and if there is something that broke you can rollback to a previous build!
I’ve played with it an a few occasions, and I like what they’re going for. However, I just couldn’t put it onto a production computer.
Right or wrong, I feel like I’d have to over-write a LOT of muscle-memory from using regular distros for the past 8 years to use it regularly. If I’d been working in dev-ops, I may feel differently.
I feel like nix could be a good ‘project’ distro, but I would hesitate on installing it on my main computer until I was quite familiar with it and had a few months with it on another computer.
I am both a fan of NixOS and The Linux Experiment, but I’m kind of surprised he liked it so much.