this post was submitted on 05 Jul 2023
151 points (100.0% liked)

Linux

1259 readers
93 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
 

So we can clearly see the most popular distros and the reasons why people use them, please follow this format:

  • Write the name of the Linux distro as a first-level comment.
  • Reply to that comment with each reason you like the distro as a separate answer.

For example:

  • Distro (first-level comment)
    • Reason (one answer)
    • Other reason (a different answer)

Please avoid duplicating options. This will help us better understand the most popular distros and the reasons why people use them.

you are viewing a single comment's thread
view the rest of the comments
[–] rankshank@kbin.social 10 points 1 year ago (21 children)
[–] sntx@lemm.ee 5 points 1 year ago

Easy and fearless updates

[–] rankshank@kbin.social 5 points 1 year ago
[–] lgo@feddit.nl 5 points 1 year ago

declarative configuration

[–] sntx@lemm.ee 3 points 1 year ago

You get it for the low price of loosing all fun/motivation in setting up, customizing and mintaining machines with other distros

[–] sntx@lemm.ee 3 points 1 year ago

Dependency Hell, begone

[–] rankshank@kbin.social 3 points 1 year ago
[–] sntx@lemm.ee 3 points 1 year ago
[–] sntx@lemm.ee 3 points 1 year ago

Single command to compile & install packages from many git repos

[–] rankshank@kbin.social 3 points 1 year ago

Home Manager + Stylix

[–] sntx@lemm.ee 3 points 1 year ago

Very good with containers and VMs

[–] sntx@lemm.ee 2 points 1 year ago

A great selection and amount of packages and modules to build/install/enable

[–] sntx@lemm.ee 2 points 1 year ago

Easily build packages with custom compile flags

[–] sntx@lemm.ee 2 points 1 year ago

A cool logo, meaningful rolling release version names and stickers

[–] sntx@lemm.ee 2 points 1 year ago

Can turn basically any distro into nixos in minutes

[–] sntx@lemm.ee 2 points 1 year ago
[–] lgo@feddit.nl 2 points 1 year ago
[–] iopq@vlemmy.net 2 points 1 year ago

Easy to mix and match package versions with different dependency versions

[–] sntx@lemm.ee 2 points 1 year ago

As stable as you need it to be

[–] sntx@lemm.ee 2 points 1 year ago

Many different and interesting community projects

[–] loggy@infosec.pub 1 points 1 year ago* (last edited 1 year ago) (1 children)

I have been thinking to give NixOS a spin but feel like it's above my brain capacity for me to handle. Do you also use homemanager and Flakes? Homemanager kinda makes sense (manage packages for non root users) but what does Flakes do?

[–] fabian_drinks_milk@lemmy.fmhy.ml 2 points 1 year ago (1 children)

I am already trying it and I am still no expert. How I understand flakes is that it is a file with inputs, like nixpkgs and other flakes or repos you might depend on and some outputs that can be things like a nixshell with packages and environment variables, custom packages and configs like your NixOS configurations and home manager. When you use your flake for the first time, by entering a nix shell with nix develop, building a package with nix build, rebuild your NixOS system with nixos-rebuild --flake .#, etc, nix will generate a flake.lock file that stores the hashes of all of your inputs and thus pinning the input versions. This means that if you ever run any of those commands again, you should get the same result because the inputs are pinned and the same version. If you want to update, you just run nix flake update and it will regenerate the flake.lock file with new hashes for the newest version. The advantage with flakes is that it is fully reproducible, even if one of your dependencies changes, because the hash is specified and centrally managed in the inputs of your flake.

Nix flakes can be used for your NixOS system by adding the nixos configurations in the outputs of your nix flake and adding the dependencies like nixpkgs to the inputs. You can also combine it with home manager by either specifying it as a separate output or adding it as a nixos module inside the nixos configurations output. You just copy your existing nixos and home manager config to the folder with your flake and reference them inside the flake.nix. If you added home manager as a nixos module, you only need to run nixos-rebuild switch --flake .# and it will automatically rebuild both your NixOS configuration and home manager configuration. You can then backup the folder with your flake and configurations by uploading them to GitHub for example.

The best resource I found was this 3 hour video by Matthias Benaets: https://youtube.com/watch?v=AGVXJ-TIv3Y&feature=share7

[–] loggy@infosec.pub 2 points 1 year ago

Thanks a lot for the detailed answer. It does sound complicated haha. I should probably follow along the YT video. Thanks again!

[–] sntx@lemm.ee 1 points 1 year ago

Do it once, do it right. Save work be redeploying the same configuration (or submodules) on mutiple machines or the same machine multiple times.