Ask HN: Advanced Linux users, which distribution do you run? Why?
This is for the technically competent Linux users.
Which distribution(s) do you run on your desktops/laptops/servers?
Why did you choose them?
What problems do you face with them and what changes would you like them do make?
168 comments
[ 3.3 ms ] story [ 264 ms ] threadProblems? On two laptops (both Razer blades of different generations) the webcams were glitchy. Dell XPS 15 was fine. Most of the “problems” are known issues with Gnome that apply to any machine and could be addressed with a tiling window manager if I really cared. These were work laptops for my team. Really no major showstopper issues except for one failed release upgrade that required a wipe and reformat of the whole machine.
I might try Arch, as the rolling distro thing seems interesting, and not being forced into software updates is kind of important.
On my desktops/laptops, I run Debian Stable, but I feel it is too old for development/common desktop usage, and I waste lots of time manually installing Python/Go/Rust tools.
I am a competent Arch Linux user too, having used for a decade. It has all the tools I need on the latest version, but lately I just shy away from it because it moves too fast and the constant feeling of a "moving target" that can break anytime. Interestingly, in a decade of usage, I only have a couple of big problems that were fixed in less than half an hour, so that fear might be because I'm getting old and a bit lazy...
This is why most languages have their own compiler/runtime distributions and module/package system.
I like my stuff to work.
I am considering dropping Ubuntu for fedora because canonical has this darn habit of ruining the desktop experience - one of the last straws for me was this snap thing that breaks a lot of stuff and slows down application startup. I'm not sure Fedora is better, I might have to go back to good old Debian.
Regarding centos/rhel: I am fairly knowledgeable about the system and certified too. It's nice to have something that I know won't change next month following the latest hype.
I stay as far as I can from rolling distros like arch: I've heard too many horror stories from friends where something trivial like a system update broke their system and they had to basically reinstall the whole system. I thought about it and it's not worthy for me.
Slackware
> Why did you choose them?
You get a no-nonsense, standard Linux/GNU install without a bunch of distribution specific complexity layered on top.
I mostly use it on Pi. I use either Raspian Lite for most things or Kali Linux for security.
As for the problems, on the desktop side I wish it was more polished. For some reason every time there's a wireless printer in the network it tries to reinstall it (fix: sudo systemctl disable cups-browsed), error reporting is annoying (fix: sudo systemctl disable apport), can't easily set full RGB out on HDMI (fix: xrandr --output HDMI-1 --set "Broadcast RGB" "Full"), volume change is laggy on some soundcards (fix: enable-deferred-volume = no) and small quirks like this.
These days I almost exclusively use Ubuntu, largely because the free release and the LTS release are exactly the same thing, and are released on a predictable schedule. I used to do mostly CentOS, and liked it, but having to have it at arms length from RedHat did introduce some problems and uncertainty. Debian (and I know some argue this, but I don't agree) doesn't have an LTS release.
I run it on my desktop, laptop, and servers. Nice having the same OS on them all. I can build packages and test things on my laptop, with an eye towards production. Our developers all use Windows.
On the horizon: NixOS. Though I haven't really looked at it seriously.
I rememeber modifying the kernel to account for my NIC. I can say that I mostly knew how my server worked.
Now I use Ubuntu LTS and Stack Exchange to run my home server as a platform for docker containers.
However, I did write a tool that allows me to treat my Ubuntu install like a Docker image.
Darch: https://github.com/godarch/darch
My personal recipes: https://github.com/pauldotknopf/darch-recipes
I started with Debian back in ~2002, which I still love but I prefer Fedora's release cycle.
I use Manjaro.
Started my Linux journey on Knoppix (for coolness), then Ubuntu (for easy/popularity), then Fedora (for serious workstation environment), now Manjaro (for a great UX and not putting up with Canonical's strong flavors on everything)
My main personal distro has been Ubuntu (usually the LTS version) for quite a few years however I recently installed Debian 10 on my second laptop and have been quite pleased with it. Ubuntu is doing quite a few things I don't understand and don't want to take the time to figure out so I tend to have a higher level of trust in Debian. At least I can do a "df -h" and not have it polluted with a bunch of loopback mounts for snap.
Nowadays I use MX Linux because it gives me stability, performance, and just enough abstraction to allow me avoid excessive tinkering.
I really have no complaints with how Arch does things, they really make their model work and it works well.
With Arch it is relatively easy to set up your own derivative that has full access to upstream while adding whatever you need from AUR, quickly. And you get to be the one in charge of making sure the system jells before updating your fleet.
Note that I'm a lisper though and have all intentions of letting Guix eat my lunch.
--
> Which distribution(s) do you run on your desktops/laptops/servers?
Ubuntu 18.04 LTS on desktops, laptops, and servers. We will probably switch to 20.04 LTS later this year or early next year, once it has been tested in the wild for a bit longer.
> Why did you choose them?
Ubuntu works, it has the most support from third parties (e.g., instructions for setting up CUDA devices), and it has the largest community of users online (every Linux user has used it at some point). Why go off the reservation?
> What problems do you face with them and what changes would you like them do make?
None, though I'm a bit concerned about potential issues with the transition to snaps.
Fedora tends to have pretty up-to-date software (the kernel, especially), but is also pretty stable for me -- I primarily use my computer for development, so they can't get in the way of me working.
In the decade before that, I experimented with distros a lot more. Slackware, Gentoo, Arch, LFS, Debian and variants. I learned a lot about Linux desktop systems doing that: Getting X, wifi, modems, printers working. Fixing things when they broke. But back then, I largely wasn't doing software development -- more sysadmin stuff. I don't do that anymore. I installed Fedora on my current system with a lovely polished installer, and it's almost entirely worked out of the box for me.
It just works and is basically a better, less bloated Ubuntu.
Finally settled for Arch (with KDE) and using it for 3-4 months now. I love it. It has forced me to learn a lot about linux. And now I realise other distros were too bloated and have a lot of packages I probably would never use.
That being said, I haven't tried Gentoo yet. Hmm. Someday maybe :P
And its wiki.
> If you just want to “learn” I suppose, then by all means.
Yep that was the only purpose. But I don't see this happening anytime soon.
Server: Ubuntu LTS or Debian
For desktop I’ve settled on Arch and it’s been smooth sailing for over ten years. The package management is vastly superior to ubuntu/debian and most mainstream distros. As a software developer, I often need recent mainline releases of major compinents like gcc/clang and other such libraries. Other distros force me to manage these manually and tend to have bad packaging conventions.
For server, I tend to do whatever is the “default” of the cloud provider I am working with as they tend to be tested the most and get security patches the quickest.
It's been pretty smooth sailing just a few slight quirks you need to keep in mind. Would suggest checking it out if you get a chance.
AUR can be used to install git version of software and configure them to your liking. For example, I run Emacs, rebuilt every month or so, that's directly from the most recent commits. Arch Linux makes it really easy to compile any package from source and configure how you would like (change gcc optimization level, compile in optional features, etc).
Pacman (the package manager) is also a lot faster and full featured than Debian. Everything just works.. better. And with the AUR, Arch Linux undoubtedly has more packages than any other distro. And the packages aren't ancient, either.
Another plus is that Arch Linux includes all development headers with the main package. In Debian you have install a special dev pack, which I think is pretty stupid.
I don't find it terribly difficult, but maybe I am biased here, because I am a Debian Developer, so I work on Debian packages pretty often and know it well enough. It's true that packages can be very heterogeneous for many reasons.
That said, again I love debian, its stability and high quality, and thanks to you and the volunteers who make it that way :)
On the other hand, there are reasons for scepticism towards proposals of forcing a uniform style. If such policies were accepted, they would have accepted years ago, so we would now be stuck with packages on SVN, much cruder tooling, etc. Back then SVN was really the future. What will be the future in ten years? We don't know, and that's the reason why we want to be sure that we'll be still free to move to it when it will arrive.
(and, BTW, of course you can change your SVN policy, but then you have to update all at once 30k+ source packages and the habits of 1k+ developers, not really easy)
Not to be meant as a rant, just an explanation for the current situation.
> That said, again I love debian, its stability and high quality, and thanks to you and the volunteers who make it that way :)
Thanks to you for your support!
* They ship a ton of mingw-w64 libraries. It's super nice to not have to cross-compile a bunch of dependencies when I'm building something for Windows.
* They ship debuginfo packages for everything. This was one thing I really missed when I used Arch, where I'd have to rebuild packages with "options+=(debug)".
* "dnf shell" exists, which lets you do multiple operations in one transaction that would otherwise cause conflicts if done separately. I'm not aware of any other distro package manager that supports this.
Still shipping, however they dropped EPEL7 support for it :( Issue about it here:
https://pagure.io/fesco/issue/2333