I was so intimidated by the whole "build your own system" philosophy, that I never tried, and it was only after asking on HN for advice[0] that I finally gave it a shot.
Software-wise the best decision of my life so far.
It also taught me that "RTFM" is often the best solution, and that man pages are there for a reason.
If I break something, I can fix it. Guaranteed. That's not completely due to the experience you gather doing the "manual installation of everything" dance, but also due to how this process works. I've never had to reinstall my Arch system - there's always a way to save a botched installation.
As someone who likes to tinker with my systems sometimes (and who's reinstalled more screwed up Ubuntu/Fedora setups than I can count), that is really valuable to me.
Around 2 years ago, I wanted to tinker and understand linux distros and have installed most of them. But, when I tried Arch, I settled with it,no more tinkering. However,I find it painful to install. I installed Arch successfully in third time.
Configuring NixOS is done declaratively, so I can easily inspect how my computers are configured, and I know that when I get a new computer, I can just copy the configuration.
Its way of performing upgrades and configuration changes is the new state of the art. You could say it's like React for your whole userland.
The configuration syntax and the package definition syntax are one and the same functional programming language, which makes the system very flexible. And the whole package hierarchy is just a Git repo.
The package server maintained by NixOS also happens to have binary builds for nearly all Haskell packages, which saves me a lot of time.
So far I've found this[0] which seems like a good introduction.
The NixOS manual is also a good resource.
I'll also mention that EC2 can spin up a NixOS instance from an existing public AMI, which can be a convenient way to get started.
While reading up on the basic semantics of the Nix language, you can also poke around in the Nixpkgs repository on GitHub to see how packages are typically defined and composed.
And there's an IRC channel on Freenode that's nice and helpful.
I'm using it with i3wm, which is also a beautiful piece of software.
I also like that I can use the same OS on my servers as my desktop. It just makes server setup/maintenance simple for me, as I never have to "learn" a new way of thinking or flow of processes.
I've never had issues with Ubuntu, no crashes, no issues with drivers (even with nVidia graphics cards etc...). I recently purchased a dell XPS laptop which came with Ubuntu pre-installed. It was more as a vote for "yes Dell, this is a good thing" rather than "I can't be bothered installing ubuntu myself".
I used to use Kubuntu. But trying to upgrade to the latest version was a nightmare (latter realizing it's because the distro is abandoned). Tried other KDE, ubuntu based distros - always the same story. Buggy as hell.
Finally listened to my friends and moved to arch. Manjaro (kde edition) has been fantastic. Yet to see a bug or non-functioning feature in >6 months of use. Thinking of switching to tiling desktop tho.
For servers I kinda prefer CentOS, but a lot of people around me prefer Ubuntu, so I usually use Ubuntu. I have no proper metrics around this, it's just a feeling.
Other than 5 minutes setting it up, everything was pretty much the same and I like DNF.
Most of the time these days I use the Antergos installer and clone my dotfiles but my personal laptop (T430) still runs Arch.
I recently tried a number of distro's including Ubuntu, Fedora and Suse and while they were all great in their own way they make life too difficult. Why have more than one package manager or way to install software? Yast is still horrific. The lack of rolling release and single package manager has limited Linux on the desktop. While it's not a problem for most Linux users it has stunted everyday users.
Reason: It just works.
• Good package management + vendor repos.
• Sane defaults
• config packages: https://debathena.mit.edu/config-package-dev/
• truly community run
Reason: I can install it using wubi, can easily find solution if stuck, dabian based
Generally like Debian, don't particularly like systemd. So I thought I'd try it out. Seems pretty good so far, a bit easier than installing Debian then removing systemd.
I find my dev workflow best on Debian ( probably just used to it ) but lately using Fedora as well. CentOS on the server just because it is available everywhere but where I can I choose Debian for the server due to like already said being familiar most familiar with it.
It's a source-based distribution similar to Gentoo but far, far simpler.
And that's why I use it: It's simple.
It also has a great community. :)
Been using Linux 20 years so at this point, the distro is just back ground noise for me.
So in some way it's like Ubuntu but slimmer(faster) and more stable. I've tested so many distros and in the end Sparky (Debian9) is the most stable, fast and productive distribution on my hardware (dell rugged laptop).
- It's a solid and trustworthy distro.
- It's general and universal, and adaptable for most uses.
- I have tons of Ansible tasks and roles developed for Debian, so pretty much anything is automated and standardizing helps a lot.