this post was submitted on 08 Jul 2023
105 points (94.1% liked)

Linux

48074 readers
749 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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I use Fedora 38, it's stable, things just work, and the software is up-to-date.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 1 year ago
  • Largest repos of any distro, so package availability is good (also supports Flatpak).
  • All package installation and configuration is handled via config files, so it's easy to keep track of what's installed. Also makes re-installation convenient and easy (this is also great if you're fond of unixporn-style setups).
  • Because it uses config files to manage this, you can also take advantage of VCS.
  • Instead of having to work with several shitty DSLs to configure your system, now you only have to use one!
  • Being able to install multiple versions of the same library is nice. With Nix you can just install whatever the fuck you want, really. Want to use DisplayCAL, but can't because it was dropped from the current release's repository for still depending on python 2? No problem, just have your flake pull it from a previous release when it was still in the repos; it'll just work because builds are done in isolation.
  • The generation system makes updates fearless, since if something breaks you just rollback.
  • Development is both better and more annoying. There's no FHS, so you have to set up a dev environment with a flake every time you want to do a project. This is nice because you don't miss dependencies as everything has to be explicitly laid out in the flake and other Nix/NixOS users can share your flake and get the same exact dev environment (kiss "it works on my machine" excuses goodbye). Annoying both because you're required to put in more forward planning with your dev environment and also because it breaks language-specific package managers, so you're limited to supported languages.
  • You can't just git clone/make/install stuff from GitHub, as there needs to be a flake first. If the software already has one included, great! If it doesn't, you'll be making it. If you need a dependency that currently isn't packaged for Nix, you'll be making more than one. If the software is difficult to package, god help you.
  • Nix documentation can be really lackluster and also assumes you're Linux-savvy.

Also how does user-level configuration work?

You use a 3rd party tool called home-manager for this. It provides about the same experience as the system config and has more configuration options for software, so should be preferred when it makes sense.


Overall, it's great if you're Linux-savvy and is one of the few distros that is legitimately innovative. Said innovation can also be a pain in the ass on occasion though, but still worth it.