Remember the days when everyone and their pet iguana was raving about Arch Linux? You couldn't escape the ever-so-subtle "I use Arch BTW" remarks in every Linux forum. Well, move over, Arch, because NixOS is here to steal your thunder! Nowadays, it seems that you can't browse YouTube or read a blog without stumbling upon someone extolling the virtues of NixOS and how it is the epitome of computing perfection. But hey, who needs critical analysis when we can jump on the hype train and declare NixOS as the new Arch? Because that's exactly what's going on. NixOS has now become the self-proclaimed prodigy that's poised to dethrone Arch Linux as the holy grail of Linux distributions. The time is calling, my friends! It's time for you – the seasoned Linux enthusiast – to dust off your keyboard warrior capes and embark on a new crusade. So, grab your Tux plushie (or, your pitchforks if you belong to the world of devils) and let's embark on an adventure through the enigmatic world of NixOS (and let the memes commence)!
It’s useful for quite a few things in practise:
This video shows off some of the cool things you can do with nix: https://youtube.com/watch?v=6Le0IbPRzOE&feature=share9
You update a programming by specifying the latest version of a program in config and rebuilding.
You update the OS by pointing to the channel you want to use and rebuilding.
You can time travel back to a previous state if anything goes wrong.
I expect so, some people.do use nix for gaming.
Oh yeah, and how do you handle kernels?
You specify the kernal in the config and rebuild, reboot.
Here are the docs if you’re interested: https://nixos.wiki/wiki/Linux_kernel
Sweet, thanks. If I can configure kernel and modules, that is good enough to start with.
How long does it take for you to rebuild?
Rebuilding after adding a single program doesn’t take too long (depends on the program but often less than a minuet).
Rebuilding after upgrading the channel takes longer on my slow internet as many programs have version upgrades that need to be downloaded. I think it took 30-60mins last time. I imagine it would be faster with better internet.
never had that issue before, as long as they have the same version and config
I have those on Gentoo sometimes, possibly because I overloaded USE too much, but that’s not something I have to deal with on Debian/Mint.
wasn’t that possible before with snapshotting (btrfs/lvm)?
If it allowed me to avoid systemd, I would be willing to give it a go. Perhaps I will try it in a VM, but it’s not going on any baremetal for now.
Pure:
If you uninstall a software it might still have residues. If you install a faulty driver, even if you uninstall it, it might still permanently mess the system configuration.
But with
nix
if you uninstall something it’s like it never existed in your system.Reproducible:
With
nix
all the apps in your OS are configure using a single or a few config file(s). So if you want to setup another system the same way you don’t have to go hunting for dotfiles.Because you are recommended to use only software present in the repositories. If you are the kind of person who doesn’t need software outside of your OS repositories then of course you might never need to worry about dependencies. Other people are doing the job for you.
But if you want to software not in the repos and even if you want to package it for your OS you might run into dependency issues. Never with
nix
. It’s more for people who don’t mind packaging software for themselves (and the community) and don’t want to deal with nasty dependency issues.Then you are very lucky. “It worked on my machine” is a meme for a reason.
I haven’t used snapshotting with those before. I guess the difference is that with nix it is done by the package manager by default, with btrfs/lvm you would have to set that up independently (please correct of this is not the case).