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 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.
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.
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
“Seriously, NixOS is the new Arch when it comes to telling people you use it” …as an Arch user, I feel both attacked and intrigued.
But seriously, it’s pretty amazing how far the community has come now that having to use the package manager through the command line and editing config files is considered a significant barrier to entry. I’m interested to give it a try to see if the purported advantages with respect to reproducibility and portability are actually robust enough to suit my own use cases.
Thanks for the tilvid link.
Nixos is quite interesting. It’s be good to understand a pro/con comparison between this and an immutable desktop. Sounds like the sims are the same, just achieved in different ways.
Is there a way to add the config of the current user to this cofig file?
What’s the point of a user config if they can’t change it themselves?
With NixOS you can install packages as a user without asking root, just don’t expect it to affect anything on the base system level, or for other users.
What’s the point of a user config if they can’t change it themselves?
Hmm, I’m not sure what you mean. Can you be more specific?
If you want something installed or configured system-wide, you do it in
/etc/nixos/configuration.nix
. Then, as a user of the system (or donning your user hat) you have your own configuration, local to$HOME
.Merging those would be rather pointless because the user can’t do that themselves, they’d have to ask
root
every time they change something.But that all said you might be looking for home manager.
Ah, got it. In that sense yes, but I’d like there to be a way to "push"current user configuration to the system wide one. How do you arrive at a good system wide configuration? By testing a cofiguration as a user and then deciding what works and what not, adjusting it and arriving at a result that you want now as a system wide.
In practice my system configuration is quite minimal, everything that can be installed as a user I install as user. It provides a login screen and DE selection menu (which only contains kde), a couple of daemons, such things, I literally don’t touch that files for months and months on end.