this post was submitted on 10 May 2024
62 points (97.0% liked)
Linux
48328 readers
599 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
There's a lot of people here promoting whatever crazy niche distro they use and I'd caution against some of the options presented here. I'd recommend the following criteria when choosing a distro for development (depends on the development but I'll assume since you're study computer science something like Python, C/C++ where distro packages are important):
Here's a quick list of how distros fit these criteria:
Note on atomic distros and toolboxes/distroboxes:
Desktop environments:
I hope this comment is helpful for you, and the choices are really overwhelming - but worth it, and I'd recommend playing around with whatever you've got time to do to find what works best for you. If you're planning on running on an Apple Silicon based device most of these distro options are unavailable, I'd recommend looking into Asahi Linux based distros - don't use Manjaro as they aren't endorsed by the Asahi project
It depends on the nixpkgs channel you use (I'm also using the term for flakes here, though technically these are then called inputs). The main channels, those being NixOS-stable whatever the current version is at the time and NixOS-unstable have a rather big set of packages that must be built successfully before users get updates, including the tests defined in the build system plus sometimes distribution-specific tests, though these are often rather simple, like start program and see if its port is open. Even more, when a library gets updated, all programs and other libraries depending on it get rebuilt as well, including all tests.
Now what if a package outside of that scope breaks? Most likely, your new configuration won't build, so you're stuck on an older but working configuration, or it does build, but something doesn't work. But I'm the latter case, you can still choose to start the older working configuration.
Also the more complicated packages have very dedicated and capable maintainers from my experience, sure the smaller stuff is often updated mostly automatically with merge request created by bots and just the final merge approved by the maintainer, but the big infrastructure is usually tested quite well.
As a downside, this can sometimes lead to longer periods without updates when a lot of stuff has to get rebuilt and something doesn't work (multiple days, but not weeks). You can then switch to another set in case the problematic packages don't affect you, or just wait. However, saying there's little QA is unfair, in fact from my experience there's more QA in nixpkgs than in most distributions.
I don't recommend NixOS to new users because it abstracts a lot of stuff away and makes use of mechanics that are helpful to understand first. But if you're comfortable with Linux, NixOS is a great distribution that even on unstable works very well. Then again, it allows specific packages to depend on very specific versions of other packages, which is partially the reason you'd use a stable distribution.
I've never actually used NixOS (I did use Nix once to save my ass on Arch because of the aforementioned CUDA thing which I will not let go), but my reasoning for it not having as good QA as Fedora Atomic Desktops is the large number of possible configurations to test for, as well as testing GUI programs. But I understand the way the project is being developed and designed with things like flakes there is certainly potential for much more stringent QA, however, it still feels a bit like an "in development" thing that's probably not at the stage where users can expect to use it without coming across things they can't do etc. (Not that Silverblue doesn't have that).
So I agree it certainly has its uses.