NixOS
declarative configuration
Easy and fearless updates
Rollbacks
Dependency Hell, begone
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?
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
Thanks a lot for the detailed answer. It does sound complicated haha. I should probably follow along the YT video. Thanks again!
Mint. Easy to setup, fast to run, and very reliable.
Mint
Generally works in cases where Ubuntu would and you don't have to deal with Canonical's choices.
Arch, BTW
Great wiki
PKGBUILDs
The AUR
Pop!_OS
I agree, it's great!
- image with baked in nvidia drivers which work out of the box without too much fuss
- if you encounter problems, you can refer to the system76 website or use a solution provided by the community, since it's based on Ubuntu
- installation with full disk encryption enabled by default
- right now it uses a slightly customized version of GNOME as DE (with "normal"/traditional windows and optionally a tiling wm), but system76 is working on a Rust-based DE, named Cosmic DE
I’ve been using Pop for about 2 years. I have yet to run into an issue that I couldn’t fix. It’s the first distro that made ditching windows easy.
I feel the same coming from Mac. Things seem to just work. I'm not a Linux wiz so minimal headaches while learning to tinker make it perfect for me.
NixOS. Reproducible, Wide Package selection, Hard to fuck up + Not yet another Arch based distro
NixOS, I have a fetish for configuration files
I'm currently doing my second pass of Nix after diving deep into it last time and coming out unsatisfied. The same problems that I had before with it are problems I'm seeing again:
- disjointed configs pulled from random source or build repos on the internet
- unintuitive grammars with parameters that require you to download an autocompletion spec
- flakes that aren't immediately easy to grok
Contrast that with my last Guix experience:
- Lisp form, super easy to understand grammar
- Recipes are so trivial that I've written three on my first day
- Source tree is included and you are expected to add branches to it
The only problem with Guix that I can see is that it's not as popular
Flakes are extremely simple (my whole system is a flake: https://github.com/cmargiotta/dotfiles ), but they are basically not documented.
The grammar is really really bad, I prefere a lot the Guix one too! I am using NixOS only because the last time I tried Guix I didn't find a lot of packages for their extremist GNU policy (I agree, but I need some packages), is it still like that?
is it still like that?
Yes and no -- there are now non-free repos (so you can install firefox for example), and even non-free binary repos too.
EndeavourOS
Easy to set up, very helpful community. If you liked Manjaro or think Manjaro is sketchy but like the idea of a slightly pre-configured arch, check it out.
It's arch. It just happened to be the composition i had my previous arch setup as. Yay for AUR stuff, KDE Plasma for DE. Includes a couple of useful tools and makes for a very solid OS.
Anyone who has been in the Ubuntu sphere of things with Linux, should take a moment to try arch. EndeavourOS is perfect for these people.
Fedora
Only FOSS software and repositories unless otherwise enabled
Cutting edge application releases so I get the newest toys after they’ve been decently tested
openSUSE Tumbleweed
The big advantage IMHO, is the out of the box BTRFS set up that lets you simply roll back to a non-broken state, right from the grub menu, should an update break your system. I haven't had to use it yet, but it is a huge source of comfort knowing it is there.
Also, many people coming to opensuse remark how much snappier it is than other distros.
Garuda uses this feature on an Arch base, it's saved me a couple of times. Props to openSUSE for developing the way to make that happen!
Gentoo
Arch. I can't live without the AUR at this point.
We cannot forget about the wiki, which is a great resource for not only the Arch distro, but for any Linux install.
EndeavourOS
basically Arch, including the AUR
Genuine interest, being an Arch user myself: why pick EndeavourOS over Arch? What does it do extra/differently?
I picked Endeavour because some friends were waiting for me to get online, so I had to hit the ground running with some good defaults. I could really have picked any distro, I'm flexible but Endeavour was lauded for a quick install and I wanted to try an Arch distrib. I was up with KDE, Steam, NV drivers and Discord in 20min so it was good.
I customized it more in the following weeks, like I'd do with any distro. Now I've heard about Garuda I kinda regret I didn't go that way. I'd like that BTRSF+snapshots option but I don't have patience to set that up for the time being - either converting the FS and setting up grub myself or reinstalling with Garuda, seems like a hassle for now.
Manjaro
• Supports a wide variety of hardware, including ARM devices such as the Pinebook Pro.
• Up-to-date rolling release.
• Multiple DE’s available with customized, clean interfaces.
EndeavourOS
Endeavour has been my default for a long while now, using Plasma KDE. It supports the flexibility needed to customise and make my own themes for as a low-vision user, and smooths a lot of the rough edges of pure Arch. I had Arch installed previously, but again, having that additional helping hand, coupled with a truly wonderful community, really made all the difference. I left Windows after the mess that was 8, I couldn't go back..
Linux
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