NixOS has blown my mind with how businesses are utilizing it and the job offers I have received for managing it. You need to learn it!Article: https://christ...
They are very very different, much more so than say arch and mint are different. Listing what makes nix better than mint would be just a list of features mint is missing, wether these are relevant for you or not would decide if they make nix better. However there are some objective technical points that are just flat out better:
One config file describing your system. You change that file, you change the system. The system always is in the state described in that file.
Complex system changes that would require many steps are trivial since you only have to describe the outcome in your configuration file instead of how to get there. For example I can declare in the config file that I want a system using the current stable linux kernel with zen patches and Nvidia drivers that have 32 bit support.
Every update is a (seamless) reinstall. The entire system gets rebuilt as if it was a fresh install, sans your home directory and the settings you made ofc.
Concept of generations. Every time I change my config file or rebuilt my system(update) it is a new generation with its own entry in the bootloader. Btw, the config file also controls which bootloader your system uses, you can just say grub or systemd and nix takes care of the rest.
‘nix-shell -p program’ that little command will open a shell with the specified applications installed in it, after you close that shell the programs are gone. This is great for trying out apps without cluttering your system with their dependencies, or quickly using a app you know you won’t need permanently.
Choice between release based updates or bleeding edge rolling. Concept of generations does still apply, you can quickly try out the rolling release channel and if it doesn’t work out you can easily go back.
Trivial to change midstack applications. With midstack I mean things like cinnamon, gnome-shell or plasma base files. For example what if you wanted to switch from gnome to kde? A single word changed in the nix config file will rip out all of the gnome stack and put the plasma stack in instead. As if you never had gnome on your system, a reinstall for all intents and purposes. Again, trivial to change back.
Trivial to change midstack applications. With midstack I mean things like cinnamon, gnome-shell or plasma base files. For example what if you wanted to switch from gnome to kde? A single word changed in the nix config file will rip out all of the gnome stack and put the plasma stack in instead. As if you never had gnome on your system, a reinstall for all intents and purposes. Again, trivial to change back.
In case you’re doing this, I suggest you look into specialisations - it’s how I solved that particular issue. It’s not like you’re saving space with your approach anyways, as the files still live in your nice store anyways, otherwise you’d need to download them again every time when switching.
How is NixOS better than Linux Mint?
They are very very different, much more so than say arch and mint are different. Listing what makes nix better than mint would be just a list of features mint is missing, wether these are relevant for you or not would decide if they make nix better. However there are some objective technical points that are just flat out better:
One config file describing your system. You change that file, you change the system. The system always is in the state described in that file.
Complex system changes that would require many steps are trivial since you only have to describe the outcome in your configuration file instead of how to get there. For example I can declare in the config file that I want a system using the current stable linux kernel with zen patches and Nvidia drivers that have 32 bit support.
Every update is a (seamless) reinstall. The entire system gets rebuilt as if it was a fresh install, sans your home directory and the settings you made ofc.
Concept of generations. Every time I change my config file or rebuilt my system(update) it is a new generation with its own entry in the bootloader. Btw, the config file also controls which bootloader your system uses, you can just say grub or systemd and nix takes care of the rest.
‘nix-shell -p program’ that little command will open a shell with the specified applications installed in it, after you close that shell the programs are gone. This is great for trying out apps without cluttering your system with their dependencies, or quickly using a app you know you won’t need permanently.
Choice between release based updates or bleeding edge rolling. Concept of generations does still apply, you can quickly try out the rolling release channel and if it doesn’t work out you can easily go back.
Trivial to change midstack applications. With midstack I mean things like cinnamon, gnome-shell or plasma base files. For example what if you wanted to switch from gnome to kde? A single word changed in the nix config file will rip out all of the gnome stack and put the plasma stack in instead. As if you never had gnome on your system, a reinstall for all intents and purposes. Again, trivial to change back.
That’s just some of the advantages of nix.
In case you’re doing this, I suggest you look into specialisations - it’s how I solved that particular issue. It’s not like you’re saving space with your approach anyways, as the files still live in your nice store anyways, otherwise you’d need to download them again every time when switching.
Yes, that is helpful. Couldn’t help but groan though as I just got comfortable using flakes and home-manager for my config …
A bit of self-plug