A new video from Nick at The Linux Experiment. I’m also sharing the PeerTube version for the sake of trying to expand my use of PeerTube and try to expand my video platform use beyond just YouTube.
NixOS is one of the few distros that legitimately offers something different. Some nice things:
- The entire OS install is managed through config files, so instead of dealing with a billion shitty DSLs, you only deal with one.
- Because of the above, builds are also reproducible.
- Because it ditches the FHS for the Nix store, you can do things like install multiple versions of the same library side-by-side, which is impossible with traditional Linux package management.
- It has the largest package repository of any Linux distro.
- Setting up dev environments is really nice because with Nix it’s like the entire OS has VirtualEnv.
- Because of the above, “it works on my machine” is an excuse of the past.
It’s very impressive and is a welcome innovation to the Linux ecosystem. Now if only they could improve the tooling and documentation.
I have been using a nixos build as my daily non work driver for a while now. As a DevOps guy, I appreciate the define once, build almost anywhere nature. When it is time to upgrade the laptop, just copy over the config and run. Then move over my personal data.
I know its not the same thing, but you can do that with ansible. I started building playbooks that do exactly that. I review/refresh the playbooks every couple of months, but I’ve tested it on VMs and its literally a curl command of a script I host on nextcloud. Then it runs that, installs ansible and does its thing.
There is a huge difference in the result. With NixOS you run a stateless system where ths main configuration is built during the startup and not editable during the run.
With Ansible you can generate the configuration as well for every run though. But in most cases you will write hard config files.
This is how I run my daily driver since a time. Coming from Redhat -> Suse -> Debian -> Gentoo -> Arch (-> Fedora) I feel very stable with NixOS.
The main system is NixOS with Flakes enabled, the user apps are installed with home-manager and on top a couple of desktop Flatpaks.
In between I did try to switch back to other distros taking less compilation time but there are so many features in Nix keeping me.
- the immutable system
- reproducible builds
- switchable generations
- easiness to maintain in a Git repo
- very fresh
I find Nix to be a really esoteric platform that completely inscrutable to a regular user. The people who do use it are extremely hostile to any tools that simplify the experience for the end user like Fleek. I would not recommend it for ANY regular user in any way, shape, or form.
Yeah this is unfortunately true. I love NixOS and I use it constantly but I’m also a professional developer so it’s pretty easy for me. If I weren’t I imagine it would be close to impossible.
Unfortunately it’s very difficult to browse or understand how to use Nix, and the Nix language itself is quite opaque.
I love the results, but I wish it were done in … basically anything other than Nix.
Theoretically there is Gnu Guix, which uses Guile… I have no clue what support for it is like though.
Nice to see a Guix mention! It’s in flux but I appreciate it’s motivation and the hard work being done. One language, kernel agnostic, functional to the core. It’s gained some traction with the reproducible research builds crowd. It always makes me think of The Rise of Worse is Better.
Oh interesting, I haven’t heard of it – is it also for reproducible systems?
Not my experience. It’s more like benevolent disinterest when it comes to users who can’t hack it on their own. The community is built around devops, functional programmers, as well as the odd enthusiast. Devops love it because it makes their work easier, functional programmer like its semantics and have no issue understanding it, and the odd enthusiast, well, is a hobbyist. If you’re not one of those groups you’re not catered for, it’s as simple as that. And as far as “make things easier for normies” is concerned: Much of that hinges on flakes not just stabilising but everything being switched over to them. The community isn’t going to start bending over backwards over features other people want to see, but not build themselves, but once the infrastructure is in place and it’s easy, heck, why not.
Fedora’s doing something similar with their Silverblue project, so check that out if you’re finding the learning curve to be too steep.
NixOS base + flatpak for Desktop apps sounds very interesting, one of the Linux Unplugged podcast hosts have been doing that setup for a while now, they also had a NixOS challenge some months ago