NixOS is better because...

I’ve been curious about NixOS for quite some time. Reading about it I couldn’t see how the config sharing capabilities, setup, or rollabck would be better than Arch and sharing the list of installed packages, using downgrade or chroot.

So I decided to run NixOS in a VM and I’m still confused. An advantage I can see for NixOS is its better use of cores and parallel processing for packages install.

It’s clear that I’m missing something so please help me understand what it is.

Edit: Thank you to everyone in this great community! It’s always so nice to have a constructive and sane discussion.
After reading so many comments, they all confirm what I’ve read before and I may realize that my real problem is already having a stable system and no need for the great NixOS options that are very neat but would not benefit my specific and simplistic needs. That being said I can’t refrain myself from being curious and will continue testing NixOS.

The need for only 2 config files is the top of the iceberg but hiding more complex configuration to rely on. Not that I really have too much spare time but I do enjoy learning and tweaking NixOS. With its current development state, things are changing a lot so it can keep me busy for months. That’s probably what I was mostly looking for: another toy to play with.

Along my journey I will learn a lot about NixOS and may find a feature that will motivate my switch to it. Thanks again for all your precious feedback!

I’ll also take this opportunity to share the best help I’ve found so far to start with NixOS: github.com/MatthiasBenaets/nixos-config And his 3 hours (!) video: m.youtube.com/watch?v=AGVXJ-TIv3Y

dinckelman,

The appeal of it, to me, is the same as why Docker containers are really good. You write your definition, save it to git, for example, and if you ever need to setup your computer from scratch, if you restore that config, it’ll setup your computer exactly like it was before. But even besides that, being able to roll back if something goes wrong, is a big plus

wwwgem,
@wwwgem@lemmy.ml avatar

That’s what I keep reading and why I would like to give it a try. For now I’m still confused how this is easier/more efficient than sharing your list of packages, restoring a backup, or using downgrade in Arch. I’m really interested because I like to try new stuff, especially if they bring something of interest.

I really have hard time to see the difference for now after my first setup in a VM but also because imaging my full Arch system on a new machine 2 years ago only took me an hour and less than 10 command lines.

Again, I’m genuinely trying to understand what I’m missing. From my reading NixOS seems to be the only distro I could switch to.

BCsven,

my thoughts which may have inaccuracies: in NiXOS The package declares the exact version of dependencies needed. when you update nixos it takes up quite a bit of space because you may have some links to one library but another app uses something else and both are stored on drive, and your old install is still there to roll back to. On other distros a package lists dependencies, but during updates a single dependency may have a bug fix point release, and upRev. so the behaviour of that app you added may change depending on all it subparts changing. So when you install non nix today or 6 months that package also determines how it may function. if Dependencies updated in the meantime your install may act different. NiX prevents this since you have a repeatable install.

wwwgem,
@wwwgem@lemmy.ml avatar

Thanks for taking time to share this detailed thought. That’s an interesting point I forgot because I didn’t experience any related issues over 15 years with Arch but that’s still a nice approach. I can certainly see why this is a big plus for NixOS.

BCsven,

I haven’t had issues with my OpenSUSE Leap install in 7 years either, there is careful curating, and automated QA testing, and roll back snapshotting if you break something while messing about. But I have a NixOS machine also. It provides a nice way of configuring a repeatble system, which is probably a huge bebefit for folks making / deploying linux devices that are 100% repeatable.

wwwgem, (edited )
@wwwgem@lemmy.ml avatar

Right, I totally agree. If I would have to deploy my config on several machines or create dedicated config using a common base then I would have been convinced. I’m still not convinced from a dummy single user point of view but I still believe in this distro and like its approach so I’ll continue experimenting with it and we’ll see where my journey leads me.

At least for now I’m glad to have a new toy I can mess up with. With my Arch system I was getting this weird feeling where I was happy to have an efficient and stable machine while at the same time being bored to have nothing to test/tweak/destroy and rebuild. I mean I love to learn and discover new things so I experiment a bunch of applications and parameters I will never need anyway but it becomes harder and harder to find something that keeps me entertained for more than a day.

BCsven,

I hear you. My openSUSE Leap has been so stable that I got bored with nothing to tweak. Their MicroOS has an immutable system with config file setup capability, and sombody built this for it to make config file creation simple opensuse.github.io/fuel-ignition/editso that was fun for a while. But NixOS was a nice distraction also

sashanoraa,

Because your Nix config also configures your software, not just installs it. Admittedly, with base NixOS that’s more true with server software than desktop. But with the addition of home manager you can also configure many desktop apps in your Nix config.

wwwgem,
@wwwgem@lemmy.ml avatar

Thank you for this addition. I very much appreciate the fediverse community who is helping people to understand things, share their knowledge, and acting nicely (if we exclude some rare people who are clearly not used to live within a sane community). I’ve seen home manager but this raised one more question to me: what’s the added value compared to stow for example? Thanks again for sharing your thoughts.

sashanoraa,

I’ve never used stow so I can’t speak to it specifically. Home manager is nice for two reasons. If you’re already using NixOS you can have one unified config for your whole system. And because Nix is a programming language generation these configs, you may be able to do thing you wouldn’t otherwise. It also has some nice defaults that you may not get without.

wwwgem,
@wwwgem@lemmy.ml avatar

Due to the still early development of NixOS, Home manager is in some ways very similar to nix-env and flakes is still highly experimental. Also, the configuration parameters are changing quite significantly with the distro development. I’m sure this will all settle down when the distro will become more mature but to be honest that’s also what attracts me. I like chaos ^^ Seriously, this shows me some potential for great achievements. I will continue testing NixOS but for now I didn’t find THE reason to leave Arch yet. If I would have to deploy my config on several machines or create dedicated config using a common base then I would have been convinced. Will see where my journey leads me.

Auli,

Sure but not everything can be defined in the Nix config. Firewalls have an issue, some options for packages are not implemented yet. For example systemd networkd doesn’t have all the features implemented.

sashanoraa,

NixOS in it’s current form does have it’s limitations but it’s ever improving. I personally have never had issues doing what I needed to firewall wise, but I’ve not done much of anything complex. Mostly just opening ports and a little port redirecting.

kionite231,

for me personally I like to be able to install software temporarily using nix-shell command it’s awesome. the installed program will be gone once you leave the nix-shell. It’s just awesome for me.

zygo_histo_morpheus,

I agree, but you don’t need nixos if that’s all you want since you can get nix-shell on most linux distros

neosheo,
@neosheo@discuss.tchncs.de avatar

Don’t forget to run nix-collect-garbage tho. The program is actually still installed, the symlimk to $PATH is just deleted after exiting the nix-shell

wwwgem,
@wwwgem@lemmy.ml avatar

That’s indeed pretty neat.

onlinepersona,

Better in some ways, but it has the worst documentation of any distro I’ve seen so far. nixlang.wiki is trying to improve that

CC BY-NC-SA 4.0

Ramin_HAL9001, (edited )

What is good about NixOS (and GuixOS) is that they apply to package management the same principles that Git applies to managing source code. The Nix store is basically an append-only database (you might even call it a “blockchain”) of inter-dependent packages.

So from an individual computer user’s point of view, it is much safer to install and roll-back software with Nix than with an ordinary package manager that might allow you to accidentally delete package dependencies and break your system. With Nix, you can install packages that actually do break your system, but because of the append-only nature, you can actually roll-back the install automatically right from the Grub boot menu, no need to re-install anything.

Another advantage of NixOS, though this is more from a system operator’s point of view, is that you can guarantee reproducible builds. If the package you have installed has the same hash on all of your computers, that is a simple, human-verifiable proof that all of those systems are running the exact same build of the software. You can probably see that this is very useful for people running servers, like compute clusters, or doing things like A-B testing.

java,

I think if you have no answer, it could be that NixOS doesn’t solve any problem for you. In effect, it’s not better. Don’t buy into social media hype. It’s just a tool like any other.

wwwgem,
@wwwgem@lemmy.ml avatar

You’re spot on and that’s what this discussion helped me figure out: I have no problem. I knew that but I also thought that NixOS would bring something new to improve my Linux usage. So far I still see such improvements for servers or deployment on several machines but not for a single user with standard needs (and this statement may be wrong and due to my limited experience with NixOS).

But NixOS approach is quite different from others and I feel like I may discover something of interest to me once I learn more about it. Also, just for the sake of learning and discovering, I will continue experimenting with it for a while.

chayleaf,

In short, Nix reduces the setup time, both for your system and for your projects. If you find yourself spending a while setting stuff up (for example, after a reinstall; or maybe you want to run your project on another PC and need to install the right dependencies), Nix will help. Otherwise, if your desktop is vanilla Fedora or whatever and you don’t do much programming (or you don’t have any dependency management problems), Nix probably isn’t for you.

flashgnash,

For me it’s the fact that I have one source of truth for my whole system config that I can stick in git

If I want to clean up software I don’t need anymore I just remove them from the package list and they’re gone next rebuild

Also means when I reinstall or setup a new system I just run the installer, do a git pull, rebuild and I’ve instantly got all my tools, configured just how I like them

Also, if I want to make a big change I can build my system in a VM first to make sure it works first (not that I do that because it also lets me revert to an earlier build from grub if I need to)

I’ve also got both my laptop and my PC on basically identical configurations from the same git repo with each of them having a smaller config file for hardware specific stuff

chaorace,
@chaorace@lemmy.sdf.org avatar

You’ll understand when you’re older, son

wwwgem, (edited )
@wwwgem@lemmy.ml avatar

Or maybe I’m already too old for so much tech. But thanks for letting me think that I’m still a young boy ^^ Not helping with my question but pretty self satisfactory.

savvywolf,
@savvywolf@pawb.social avatar

I’m currently working on rebuilding a Debian web server that’s been around for 10 years and accrued configuration over that time in NixOS. It’s nice to have one single easy to understand file that fully defines the server and can be used to rebuild it if needed.

wwwgem,
@wwwgem@lemmy.ml avatar

I can see that from a server maintenance point of view. After having read so many great things about NixOS, I may have exaggerated my expectation and I may be the problem for being a user with too limited needs to get the full benefits of NixOS.

For me this single config file doesn’t save that much additional files and most of them would be files you configure only once during installation. Nonetheless I can see how “easier” it would be to save one file instead of 3 to reproduce your system and I can only imagine how much better it is from a server point of view.

cybersandwich,

You might be selling it a bit short. I am not a Nix user, but like you I’ve played around in a vm. The value proposition I see for “normal” users is when you end up tuning and configuring your system just the way you want it (everyone knows what I’m talking about–it happens over months or even years). In nix, you have to do those changes in the config so you can literally take that one file, plop it somewhere else and it’s your computer.

Likewise, I’ve been on this install of Pop for years and for several upgrade cycles. The amount of cruft; things I’ve installed and don’t use, config changes I made while following a tutorial then forgot about, manual tweaks for things that have been officially patched, etc. it would all be in a nix config for me to just… remove.

So I see that as the benefits of it.

That said, it definitely gives me vim vibes. Where the learning curve is pretty steep but once you master it, it’s close to tech Nirvana. Again, since I don’t use it I can’t say that for sure. Maybe one day I’ll have enough time to devote to it to really dive in. Right now, it’s frustrating to use because everything is harder and there aren’t many guides on how to do basic things like get dash-to-dock plugin working on popshell. Or even install and configure neovim. Ain’t nobody got time for that right now.

wwwgem, (edited )
@wwwgem@lemmy.ml avatar

Great feedback, thanks! I’ve appreciated being able to replicate my system in NixOS within only few hours. I found NixOS actually pretty easy to take a grasp on, though I still didn’t look at flakes in detail. You spot on the reason why I’m using Arch and a bunch of applications you can tweak to perfectly meet your own specific needs (neovim, neomutt, bspwm, rofi…).

I love spending time to config them and to learn new things. This is basically why I’m interested in NixOS as well. Being entirely satisfied with Arch and not being a distro hopper, the fact that I installed NixOS means a lot to me but now I need tangible reasons to fully move to it. Maybe time will help me in my decision.

All the great feedback in response to this post so far confirm how great NixOS is and I had no doubt about that. I may realize what it can bring me after some weeks of serious use. Thanks again for the time spent to write your feedback, very much appreciated

yianiris,
@yianiris@kafeneio.social avatar

NixOS is better because...

...broken link ... or non-existent reasoning?

@wwwgem

vole,
@vole@lemmy.world avatar

This is a text post, so the OP wrote text corresponding to the title. You should be able to see it at the top of the post. (Spoiler, OP is basically asking the community why NixOS is better, because they don’t quite understand the advantages of using NixOS.)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux@lemmy.ml
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #