73
Arch or NixOS?
(lemmy.blahaj.zone)
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
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:
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, myconfiguration.nix
is slightly polluted with Starship configs, and I might want to break them into modules, but it is still a job done decently.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.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
andbuildDotnetModule
, 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.
+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.
There's a lack of contributors. Honestly, if not for the stupid recession and joblessness, I would have loved to dive into Guix packaging.
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