Arch or NixOS?

I’ve been here a week ago already asking if Arch would be fine for a laptop used for university, as stability is a notable factor in that and I’m already using EndeavourOS at home, but now I’m curious about something else too - what about Arch vs NixOS?

I heard that NixOS is pretty solid, as due to the one file for your entire system format you can both copy and restore your system easily whenever, apart from your normal files and application configurations of course.

Are there any major downsides to NixOS compared to Arch apart from the Arch Wiki being a bit less relevant? I’d also lose access to the AUR, but admittedly I don’t think I’ve ever actually needed it for anything, it’s just nice to have. Also, since NixOS has both rolling release and static release and you can mix and match if you wanna get packages from unstable or not, I’m not losing Arch’s bleeding edge, which is nice.

utopiah, (edited )

Going to sound like a boring pleb but… if your OS takes less than 1h to install and setup (which is my experience with Debian/Ubuntu on a SSD with a fiber connection, or even on a RPi with a modern microSD on an ADSL connection over WiFi) then it doesn’t matter much what you use. You grab a mug of coffee, click here or there from time to time and if your /home partition is saved you are good to go faster than most people even respond to an email.

utopiah,

I should add if you want to tinker “shallowly” containers are amazing. If you need to tinker deep, using a VM proper or even another physical machine (with a KVM or another keyboard and monitor) while your main machine remains untouched, it should NOT affect your uptime.

Trainguyrom,

I think the funniest part of this is I was recently preparing some laptops for work with Windows 10 and it literally took 6 hours thanks to slow updates, one laptop corrupting the keyboard and touchpad driver so completely it required a full reinstall (on a fresh install mind you) and other impressively terrible snags. Granted it would’ve been more like 1-2 hours if I started with an install image that wasn’t about 2 years old, but it was still impressive how much of a time sink it was

dinckelman,

I’ve been using Arch for almost 8 years, and I enjoy basically everything about it. Since Nix has been so popular lately, I thought I’d take a look at it too. I like what it does, but the documentation is really poor, and the learning curve is insanely steep. When flakes and nix-command become stable, I’ll be giving it another shot

cashews_best_nut,

I too am something of an Arch user

Btw

markstos,

I recommend first trying the Nix package manager on Arch to see how you like it. You can use it to install some things in your home directory without interfering with the Arch package manager.

Astaroth, (edited )

Disclaimer: I only tried NixOS for less than a month when I was a complete Linux noob, I have since then been daily driving Arch Linux for about 2 years now.


For me, at least on the surface level, NixOS just felt like Arch Linux, with more similarities than differences.

What was nice about NixOS was the single config file for everything, although iirc I had to reboot every time for it to be applied while with Arch you can just install something and run it immediately.

Edit: I either remembered it wrong or I was doing it wrong because you don’t have to reboot the whole system according to the reply from hallettj.

What I didn’t like however was all the packages that got installed (through the list in the config file) had really strange directories which I couldn’t find easily.

like on Arch the packages and the executables are basically all at /usr/lib/ and /usr/bin/ and iirc it was pretty much the same on NixOS, except on Arch I’ll have usr/lib/firefox but on nix it would be usr/lib/u123uadqasd782341kasjhiu3sh932s9sdasdsapzxcqw-firefox

Another thing is that it works great for everything you install through the Nix config file, but it’s not necessarily going to clean up any files created by programs that got installed through it when you remove the packages from the config file.

Like say you have installed steam and then you install some game through steam, well that game wasn’t added through the config file so there’s no guarantee that if you decide to remove steam that you will also remove whatever the programs steam installed or if they created some new files somewhere.

Of course the same thing already happens on other OSes as well, so you could say that it’s an upside that Nix is better at cleaning up after itself whenever you remove something, but also because it’s supposed to all be controlled through a single config it just feels that much worse when you have to hunt down some file somewhere.


Again these are mostly my anecdotes from 2 years ago when I was a complete noob. Maybe I wouldn’t have any issues if I tried it today. And chances are I was just trying to do something you shouldn’t even be doing.

Plus at the start I used KDE Plasma 5 on Nix and Arch, maybe it will go better if I use i3wm on NixOS like I’ve been doing for a year and half or so on Arch now.

At least I’m pretty sure that having daily driven Arch for 2 years now I would have much better chances with NixOS now than when I tried it with 0 experience on Linux.

So since you’ve already got the experience from using EndeavorOS you might not have any big problems using NixOS, or at least learn how it works pretty fast.

hallettj, (edited )
@hallettj@beehaw.org avatar

I want to make a small correction - this is not true:

iirc I had to reboot every time for it to be applied while with Arch you can just install something and run it immediately.

nixos-rebuild behaves like most package managers: it makes new packages available immediately, and restarts relevant systemd services. Like other distros you have to reboot to run a new kernel.

And cleaning up Steam games is as issue with most distros too. But I kinda see your point.

Btw Nix (both NixOS and the Nix package manager running in other distros) has this feature where you can run packages without “installing” them if you just want to run them once:


<span style="color:#323232;">$ nix shell nixpkgs#package-name
</span>

That puts you in a shell with one or more packages temporarily installed. The packages are downloaded to /nix/store/ as usual, but will get garbage-collected sometime after you close the shell.

Astaroth,

Thank you for the correction. It was 2 years ago + I was really inexperienced so I could be misremembering things and/or just have been doing things incorrectly

penquin,

My honest opinion? Neither. Just go with something that works out of the box like Linux mint until you’re done with school then you’ll have time to mess with your system. That’s what I did for a friend of mine when he went to college. Gave him a laptop with mint on it and never heard a single complaint from him. It has everything he needs. Focus on school now and worry about distros later.

markstos,

School is a time to learn and both Arch and NixOS provide plenty of opportunities for that.

penquin,

While true, but they also need a system that they don’t need to mess with so they can focus on their school. Unless they’re going into w degree that utilizes Linux then I guess it makes more sense.

Trainguyrom,

I have to agree, if you’re late or have assignments that don’t work correctly because of your special Arch/Nix install, you’re going to be in for a very rough time. College is when you need to focus on learning exactly what is prescribed by the professors and instructors. Anything else you learn is secondary, and your free time is best spent on extracurriculars and trying to make friends because thats the stuff that’s really hard to do after college. Y’know what’s not hard to do after college? Scavenge a junk computer for next to nothing and install NixOS and Arch on it

penquin,

I guess I’m not crazy after all for looking out for OP. I am getting downvoted for it. 😁

noddy,

I don’t know about everyone else, but I had a lot more spare time to tinker with linux when I was a student than after, having a full time job. But I guess if you only have the one computer and need it to work, then tinker in a VM or something. Don’t wait with tinkering and learning about linux if it is interresting to you and something you want to spend time on. You might not have the time for it in a few years.

BaroqueInMind, (edited )
@BaroqueInMind@kbin.social avatar

Once I found out about Paru, I decided I would no longer need another OS outside of everything Arch provides. Also, Valve decided to switch SteamOS to Arch, so I'm sticking with it once they release it.

TCB13, (edited )
@TCB13@lemmy.world avatar

Neither, rock solid Debian + flatpak for the latest software.

CatLikeLemming,
@CatLikeLemming@lemmy.blahaj.zone avatar

I’ve already considered Debian, but… I dunno, this isn’t what I’d call the most logical reason, but I just kinda don’t like it as my desktop OS. I’d use Debian over basically anything else for a server, but as a desktop OS I don’t like the vibe.

Keep in mind, I started using Linux this summer and in a few years I’ll probably look back at this wondering why I was such an idiot, but I gotta fall and get a bloody nose first to notice ;3

TCB13,
@TCB13@lemmy.world avatar

I’ve already considered Debian, but… I dunno, this isn’t what I’d call the most logical reason, but I just kinda don’t like it as my desktop OS. I’d use Debian over basically anything else for a server, but as a desktop OS I don’t like the vibe.

I was on the same boat as you are, flatpak essentially made it all perfect.

KISSmyOS,

For me, the issue with Debian stable currently isn’t the applications, but the DE. Wayland support and UX gets better with every update of Gnome/KDE, and that isn’t something you can install via flatpak.

TCB13,
@TCB13@lemmy.world avatar

Fair enough.

Guenther_Amanita, (edited )

Neither of both.

Both are more on the tinkerer-side, and for university you need something reliable and easy to use in my eyes.

And that might be Fedora Silverblue/ Atomic (or universal-blue.org to be more precise for QOL-tweaks).
It is definitely more simple, stable (release cycle) and also more reliable, since there’s only one base (Fedora packages + your DE), and therefore less configuration variability.

I’d also lose access to the AUR

No, you wouldn’t. Neither on Nix, nor on Fedora Atomic. Especially on Silverblue you layer and containerise a lot, and you can always use the pre-installed and self updating Distrobox to install Arch and use the AUR. That’s also what I do, and it works fine, even though I almost never feel the urge to use it.

lily33,

Actually, both Arch and NixOS are pretty reliable, and won’t just break out of nowhere, leaving your computer unusable.

hglman,

Sure, but when you need to add something new, it will be a lot of effort.

kpw,

I honestly don't know what you mean by that. I use Arch btw.

sickday,
@sickday@kbin.social avatar

It would be the exact same amount of effort you'd use to get new software on other distros. Both Arch and NixOS have very straightforward methods of installing new software that aren't any more difficult than doing so on Debian or some other distro. Both Arch and NixOS support independent package managers like flatpak and snap + they support Appimages.

I'd also add that OP doesn't even need to use NixOS to use nix packages, whereas Arch or Debian would require systems based on those distros. So if anything NixOS tries to make it very easy to add and configure software. Where does all the effort come in?

Guenther_Amanita,

Yeah, of course. You’re right.

Nix is kind-of-immutable, and you can always roll back to your old build if necessary.

But Arch on the other hand is notorious to “just break” if you don’t exactly know what you’re doing. Of course it will work perfectly reliable (apart from the few paper cuts you get when using bleeding edge stuff) if you are experienced, and optimally, if you set it up with BTRFS and Snapper/ Timeshift.

But honestly, unpopular opinion, I absolutely see no reason to use Arch today. The only exception is the DIY-aspect, which I totally understand and respect. But, for every other use case, there are better options out there, may it be Tumbleweed or Nix for a rolling release, Arch in Distrobox on Silverblue, whatever. It sounds like way too much effort for what I would get. But each to their own.

penquin,

It’s kinda sad that Arch has this “unstable” reputation, while it is very solid distro. I’ve been running it on my laptop for a long time and I honestly don’t even remember the last time it broke. Thing literally just works.

velox_vulnus, (edited )

Using NixOS for more than six months, and I think I’m eligible to say what I like and hate about it.

What you’ll like:

  • easy configuration - just refer https://search.nixos.org, it’s that easy. I’m not taking that comment about “NixOS being hard to configure” seriously - and this is coming from someone who hasn’t even learnt the language properly. Yes, my configuration.nix is slightly polluted with Starship configs, and I might want to break them into modules, but it is still a job done decently.
  • won’t break easily except in some extreme situations - Laptop accidentally slipped from my hand during nixos-rebuild switch --upgrade - I guess it was the physical trauma to my device messed up the mount path to /boot, but it was rescued by a single CLI command from the recovery USB, and I didn’t lose any files.
  • upgrade is not prone to breakage, and even if it does, you can rollback - just don’t walk while holding your device and drop it.
  • it is a serious distro, not a “hobby” OS, and the experiences you will gain from learning Nix will help you with SaaS platforms like Replit or Railway, if you’re interested in using them sometimes in the future.

What you won’t like:

  • Binaries do not work properly - since Nix store is a completely different storage system compared to your usual FHS, most of the binaries will suffer from incorrect RPATH and dynamic loader issues - you might have to autopatchELF them, which is kind of irritating. This is also the case for AppImages, by the way.
  • Nix language is more like a custom DSL and less of a general purpose language, so you’re gonna have to use another language for automation (Shell, Python, Ruby), which might pollute your self-hosted Nixpkgs - Guix fixes this issue.
  • The bad part about NixOS is writing Nixpkgs expressions. The repository is damn huge and it is hard to maintain spaghetti code, writing your own package can be pretty hard, there’s some “hack”-y stuff you’re gonna have to use for building in, let’s say, using buildRustPackage and buildDotnetModule, and you’re gonna have to work with a senior maintainer.

Honestly, if I had to avoid Nix, I would go for Guix, Gentoo or Devuan. But yes, if you’re a beginner, I’d ask that you refrain from touching NixOS.

tetris11,
@tetris11@lemmy.ml avatar

Guix

+1, since for me it’s much easier to grok the language and the schema at a single glance.

Plus for those worrying about linux-libre kernel not having the right drivers for your hardware, non-guix has you covered and you can easily switch to linux-mainline. I’m really enjoying Guix a lot right now.

dario, (edited )

After having used Parabola GNU/Linux-libre for more than ten years, I seriously considered moving to GNU Guix System. The only thing holding me back is that I saw some seriously out of date packages in the repository. Off the top of my head, GNOME was like three major versions behind. How do you deal with that?

velox_vulnus,

There’s a lack of contributors. Honestly, if not for the stupid recession and joblessness, I would have loved to dive into Guix packaging.

tetris11,
@tetris11@lemmy.ml avatar

Its pretty easy to update the packages yourself, just bump the version and the hash, or if needed add some missing libraries.

Because the review process is slow, sometimes it’s easier to just check the Guix Patches buglist for existing submitted patchfiles and then add them to your tree

russjr08,
@russjr08@outpost.zeuslink.net avatar

I’m a bit surprised to see that you disagreed with the “NixOS is hard to configure” bit, but then also listed some of the reasons why it can be hard to configure as cons.

By “configure”, they probably didn’t mean just setting up say, user accounts, which is definitely easy to set up in Nix.

The problems start to arise when you want to use something that isn’t in Nixpkgs, or even something that is out of date in Nixpkgs, or using a package from Nixpkgs that then has plugins but said plugin(s) that you want aren’t in Nixpkgs.

From my experience with NixOS, I had two software packages break on me that are in Nixpkgs - one of them being critical for work, and I had no clue where to even begin trying to fix the Nixpkg derivation because of how disorganized Nix’s docs can be.

Speaking of docs inconsistencies you still have the problem of most users saying you should go with Flakes these days, but it’s still technically an experimental feature and so the docs still assume you’re not using Flakes…

I was also working on a very simple Rust script, and couldn’t get it to properly build due to some problem with the OpenSSL library that one of the dependent crates of my project used.

That was my experience with NixOS after a couple of months. The concept of Nix[OS] is fantastic, but it comes with a heavy cost depending on what you’re wanting to do. The community is also great, but even I saw someone who heavily contributes to Nixpkgs mention that a big issue is only a handful of people know how Nixpkgs is properly organized, and that they run behind on PRs / code reviews of Nixpkgs because of it.

I’d still like to try NixOS on say, a server where I could expect it to work better because everything is declarative such as docker containers - but it’s going to be a while before I try it on my PC again.

DangerousInternet,
@DangerousInternet@lemmy.world avatar

deleted_by_author

  • Loading...
  • agressivelyPassive,

    Nix would need some proper GUI for that. It’s very “shove into cold water”, which isn’t exactly the best experience.

    velox_vulnus,

    You might want to look into SnowFlake OS, which is supposed to be an easier NixOS.

    lupec, (edited )

    As a recent NixOS convert coming from Bazzite (Kinoite/Silverblue with user friendly daily driver and gaming tweaks), and before that mostly Arch-based distros, I’d say it boils down to the tradeoff between having way more control over reproducibility and having to deep dive into the often poorly documented domain specific rabbit hole that is Nix. If you’re comfortable with going out of your way to learn, looking for examples, reading source code to find out what options you can use or how stuff works, it can absolutely be worth it but it’s a steep price to pay for sure.

    I personally adore what Nix sets out to solve and find it extremely rewarding to learn. Plus, as a developer, I enjoy puzzling out how to get stuff done and don’t mind diving into the source if I need to, so it works for me. I’d absolutely prefer solid documentation, of course, but it’s not a deal breaker.

    When it comes to software, the Nix repo has a staggering amount of prebuilt binaries ready to download (which you can search here) and it’s often not too hard to hack together your own reproducible package if you want after you get comfortable enough with it. At least for my use cases, I haven’t really missed much from my days using Arch and the AUR. If anything, I appreciate how much more consistent it tends to be in comparison.

    If you, like myself, go for a flake (yet another rabbit hole within a rabbit hole) based setup and point to the unstable repo, you basically get a fully reproducible, easy to update and rollback rolling release not too dissimilar to using Arch with auto btrfs snapshots enabled. That’s how I used to do Arch and it feels pretty familiar.

    Anyway, that’s what I got. If you have any more specific concerns or questions I’d be happy to elaborate!

    Edit: I forgot to add but I find a nice way to get comfortable without fully commiting is using Nix as a package manager on any old distro. You could install it on Endeavour (I recommend this method) and play around with Home Manager, use it as a dotfiles manager on steroids, have it declaratively install and manage the CLI apps you can’t live without and whatnot, see how you like it. That’s how I started, I have a common HM config I’ve so far used with Debian at work, Ubuntu running under WSL when I’m on Windows and now NixOS itself.

    XenBad,

    I use NixOS for University and would highly recommend it if you want a highly configurable system that’s declarative, however, NixOS doesn’t have great documentation for certain features and usually does things differently, so you’ll have to learn the Nix way of doing things. On the plus side, I’ve never been unable to fix my OS when it broke, you simply rollback, or if there isn’t a suitable rollback, you can plug in a live usb and set the system to use a specific commit (can’t remember the exact command for this and that’s presuming you store your config with git). Also according to these statistics nixpkgs has more packages than the AUR.

    just_another_person,

    I think you just mean “declarative”. Highly configurable is literally any distro. I’d say NixOS is actually LESS configurable by design, but that is sort of the point: a repeatable image based on a template no matter what.

    XenBad,

    By highly configurable, I meant that you can configure it exactly to your needs, in the same way that you can with Arch.

    ani, (edited )

    I’d recommended Arch because with NixOS you end up having to tinker too much. Besides, if you need to use Linux for development purposes, Arch follows the usual Linux/Unix conventions, while with NixOS you would end up tinkering…And you can always use the Nix app from Arch.

    Just use Arch with Gnome or KDE, that will save you a ton of time.

    CatLikeLemming,
    @CatLikeLemming@lemmy.blahaj.zone avatar

    Huh, I never expected anyone to recommend Arch to me because you have to tinker too much with an alternative distro. I thought simplicity was the reason why people liked NixOS, no?

    Deckweiss, (edited )

    I have set up my archlinux os in a weekend with btrfs snapshots and everything I need. About once a quarter I tinker with it for 30 minutes to either fix a broken update or do some custom solutions to minute problems. It has been running like this for 5years. And snapshots allow me to rollback any fuckups in 1 minute.

    I tried to setup nixos twice, because I love the concept. Both times I tinkered with it for 1 to 2 weeks, had to take paid leave. At the end, some stuff still didn’t work as I wanted it to. Any customization that is not already natively implemented in nix is a huge pain in the ass to add. Things that would be a 5min config edit on arch took hours on nix to make them rEpRoDuCaBLe. I have experienced no additional benefit over btrfs snapshots.

    Tldr: If I could pay somebody 100$ to set up nixos just the way I want it, I’d use it. But since I have to do it in my own free time, I won’t.

    Auli,

    Nix is a pain. Not everything works. Example Netword supposed to be able to put options in some confines. Sure most work but I have two in my config that nix well not put in. Why they are valid an I’m running them on my current Os but my nix van refuses to build with them. Another nftsble rules. Again supposed to put them in config file. But I have some nix does not like, completely valid rules but nix won’t build with them. I’ll tinker with it but it still needs work.

    ani,

    Comparatively, NixOS is complex, while Arch is simple. NixOS diverges very much from traditional Linux distributions, beginning with using a diferent filesystem hierarchy, which breaks a ton of apps, requiring workarounds like patches, simulating a standard filesystem… In the long run, you will have to deal with many NixOS-specific issues.

    Because you’re going to Uni, it’s better to focus on having a mostly just works distro with updated repository, and that’s Arch. On your free time in the future, maybe try NixOS in a VM just so you have a feel for it. And again, you can use Nix on Arch so you use apps from Nixpkgs.

    This all comes from an originally Arch user turned into an experienced NixOS user.

    Kaidao,

    This is my experience as well. I went back to Arch after trying NixOS for a few weeks. I just ended up spending way too much time tinkering with the system instead of using it. Also, I feel like a major advantage to nixos is only viable if you have multiple machines. I only have a main desktop.

    fxt_ryknow,

    I’m not sure I agree with this… I’m using nix on several different generation thinkpads, two older generation MacBooks (one air and one pro), two different older generation imacs, as well as my home built PC, and an OEM built pc… All with little to no tinkering whatsoever.

    All my tinkering was first setting nix up and figuring out how to use it… Then I saved and copied my config and use the same one on all the machines (albeit with subtle changes on first install).

    I’ve used arch a handful of times over the years, and it is without question, significantly more “needy” over time, imo.

    ani,

    Guess you never had to package general or hard to package software like those that require fixed output derivation or undersupported ecosystems, trying to use common development environment for Python under NixOS, running binaries under NixOS, the list goes on.

    fxt_ryknow,

    I have not… And in fairness to me, OP didn’t mention the need for any of those things. OP mentions having not even installed anything with the AUR in Arch, which to me just means they are looking for something stable out of the box, which nix has been for me across many platforms.

    ani,

    Fair point, I was mostly listing the major downsides IMO that OP asked for

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