this post was submitted on 11 Jun 2023
446 points (98.7% liked)
Linux
48640 readers
1739 users here now
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.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Arch Linux. Always very up-to-date and the AUR is huge. No dealing with PPAs or snaps or flatpaks or appimages. Just
paru -S any-software-ever-made
. Also very streamlined (systemd for everything lol) and well documented. I tried NixOS for a bit but it was very inconvenient in comparison and I felt like it was impossible to tinker with or understand if you weren't good at Haskell. Terrible documentation.For servers it's definitely Debian + docker.
You don't need any haskell knowledge to configure a NixOS system. It's mostly just researching the right options and setting the desired values. Pretty simple. For more advanced stuff like custom modules, functional programming experience helps a lot but that's not necessary for installing packages and enabling services.
Documentation isn't great but what it does have going for it is that it's right in the place where you configure it: In the NixOS options. Wanna configure systemd-boot? Just search for it: https://search.nixos.org/options?channel=23.05&size=50&sort=relevance&type=packages&query=systemd-boot
It's self-documenting.
The declarative abstraction of just setting values of options is very nice but I quickly ran into many edge cases where it leaked, which have been fixed years later. Obviously I don't want to wait years but I couldn't figure out how to fix it myself. I was able to overcome the learning curve of all the various hyphenated CLI programs (seriously what's up with that), how home-manager fits in, basics of the nix language, etc., but got stuck at trying to learn nix well enough to actually contribute.
There's a huge barrier in straying from the well-trodden path, and I think that path will always be behind the cutting-edge. In traditional distros I just have to install something or edit a text file somewhere. Prime example right now is pytorch with rocm support. In Arch Linux it's
pacman -S python-pytorch-rocm
. In NixOS I barely remember and I don't think it even worked for me but I think it was this: https://github.com/nixos-rocm/nixos-rocm#installationI started using dotdrop to track and manage my user and system configurations and wrote a basic ansible playbook for my desktop install setup which has achieved 90% of what I was looking for in NixOS. These days what intrigues me about NixOS is that it might be a great alternative in the server space as a competitor to using docker or wasm.
I use arch too btw