Ask HN: Advanced Linux users, which distribution do you run? Why?

80 points by psxuaw ↗ HN
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 ] thread
How do you define “technically competent?” I run Ubuntu on my servers and laptops but recently switched back to Windows on my desktop because I don’t like the direction Canonical is going with snapd in 20.04.

Problems? 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.

Going from Ubuntu to Windows because of snapd is a big jump, there has to be something else there. I mean, I think Mint announced they are dropping it. You could go to Debian. But to Windows?
WSL is pretty nice. It's not a bad transition. I tried it, but moved back to Pop OS.
Right I’m using WSL2 for a bit while I decide my next move. Probably arch / manjaro. In the meantime I’m enjoying Adobe Suite and better gaming. Dat
I run Debian Linux on dozens of (different roles) VMs and physical servers, all managed by Ansible.

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...

I switched to Manjaro after becoming a father. It's based on Arch Linux. The installation is as fast and guided as an Ubuntu installation. But you get Pacman and AUR. Manjaro is still a rolling release, but they have a bit of delay. They let test ArchLinux users first. So over all it's the most stable, easy to use and uptodate Distribution I ever had.
For development you don't want to use the distros tools anyways. The distro packages are there primarily to build the other packages, they also provide the basics of a development environment suitable for small tasks and testing. For more serious development you want a level of control over your tooling that distro packages just can't provide (NixOS being the only exception I know about).

This is why most languages have their own compiler/runtime distributions and module/package system.

Xubuntu on the desktop, centos/rhel on servers.

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.

> Which distribution(s) do you run

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 wouldn't say I'm an expert.

I mostly use it on Pi. I use either Raspian Lite for most things or Kali Linux for security.

Ubuntu LTS. I chose it because it mostly just works and there's plenty of documentation and q&a online (StackOverflow)

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.

The only quirk I haven’t been able to fix running Ubuntu as my main work OS is the scroll wheel on my MS mouse jumps pages instead of smoothly scrolling. I’ve tried many recommended fixes to no avail over the last two years (on my phone away from my work laptop right now so I can’t check my notes on what I’ve done otherwise I’d post them here)
I'm a sysadmin, been running Linux for 25 years.

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.

25 years....the days of Yggdrasil, Slack, and Debian
Slackware on 3.5" floppies was my first install.
Remember installing Slackware. Installed their Slackware on DOS partition when I was in 8th grade. Had no idea what I was doing... Moved to FreeBSD in 9th grade because it was a more cohesive operating system.
And the struggle with xf86config to somehow get the UI working. Ah, memories!
I started to administer my university unix computers in 1995, including Linux.

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.

ubuntu. ML/AI stack is very deb-heavy, so this saves me some build time.
Ubuntu LTS on servers. On the desktop I also use Ubuntu LTS, but through WSL (Windows Subsystem for Linux). All the stuff in Ubuntu I don't like is desktop stuff, but I don't have to deal with any of that on servers or with WSL. It's not perfect, but the distributions out there that solve its problems are all more hassle than they are worth. It's the most "just works" option.
Fedora. Regular releases and they're typically the first to adopt new technologies. I used to run Ubuntu but they have a terrible case of rolling their own tech that they put under a CLA or leave significant parts proprietary, like Snap/Mir/Unity.

I started with Debian back in ~2002, which I still love but I prefer Fedora's release cycle.

"Technically competent" is a wide spectrum, you'd like to have to narrow that down a little.

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)

Same here. Was using Ubuntu before, but prefer continous updates. Never have looked back...
The distros I've had the most professional experience with are Debian and Fedora.

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.

I am competent but certainly not advanced.

Nowadays I use MX Linux because it gives me stability, performance, and just enough abstraction to allow me avoid excessive tinkering.

For all my personal stuff, I use Archlinux. I’ve been using it for years, so for me it is very easy to use. I’ve got no fears of the rolling release model causing me heartache because I’ve learned so much I can figure out how to fix whatever. I also find the rolling release model to be really beneficial because when I want to do something it’s nice to be able to install the newest version w/o any pain.

I really have no complaints with how Arch does things, they really make their model work and it works well.

I run my own derivative of Arch. Was building images for EC2 back when it was new and I just like knowing every file in the smallest possible system I can get to serve my needs.

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.

Yeah, but will my company let me run a custom derivative of Arch?
Depends on a person's "company". My "company" is myself and, for now it suits me well.

Note that I'm a lisper though and have all intentions of letting Guix eat my lunch.

Consider submitting as a poll at https://news.ycombinator.com/newpoll -- HN will keep track of votes for each choice.

--

> 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.

In the last decade, I've used Fedora or Ubuntu. Currently Fedora, as my employers for the last 7 years have used Fedora or Centos based systems.

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.

I only run Linux on the server, no GUI. I use Debian everywhere, except in those (thankfully) few cases when I am administering commercial software, in which case I use CentOS.
Pop!_OS

It just works and is basically a better, less bloated Ubuntu.

I've been distro hopping for since I have introduced myself to linux (2-3 years I think). Tried Ubuntu, Debian, Fedora, Suse, Mint, Arch, and a few random distros I found on distrowatch.

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

I went from gentoo to arch years ago. Unless you absolutely need to compile the universe from scratch on your machine all the time, don’t bother. Arch’s greatest asset is its speed and excellent binay distribution. Gentoo affords you none of that. If you just want to “learn” I suppose, then by all means.
> Arch’s greatest asset is its speed and excellent binay distribution.

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.

Excellent point regarding their Wiki. Gentoo's wiki is a great resource, too. What I like the most is that both have distro-agnostic information that apply elsewhere.
Desktop: Arch Linux

Server: Ubuntu LTS or Debian

Lifelong linux user.

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.

I use Arch also, as a desktop. I like:

  * Rolling releases which mostly doesn't break things
  * Solid package management
  * Doesn't handhold too much, while still not being too much of a pain to get a desktop going
  * Doesn't start services because you install them (Debian/Ubuntu)
  * Doesn't try and force snaps and an essentially proprietary store on you (Ubuntu)
  * Still popular enough to have momentum behind it (problems are Google-able)
I don't really like:

  * systemd. It's almost a necessary evil at this point, but not quite
I also use Alpine on my personal server. The package manager is blazing fast, and it uses OpenRC, which I prefer over systemd. I know the musl memory allocator isn't all the fast, which bothers me, but not enough to rebuild it with a different distro. busybox is also a bit bothersome sometimes (/etc/network/interfaces syntax is a bit limited, for example).
I am using Artix right now. Arch with no systemd. It has it own repos with -s6 -runit and -openrc packages, and uses the Arch repos for fallback.

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.

I use Debian and feel satisfied about package management. What should I miss from Arch?
The AUR is really nice. Also creating your own packages is super easy.

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.

As a big debian fan who runs it on everything... apt works great, yeah, but packaging itself is a nightmare. Try to source patch one of your packages and rebuild it, and maybe distribute it internally. It’s a mess. Haven’t used Arch but e.g. APKBUILDS are heaven in comparison.
What is a mess? The build scripts? More often then not, patching a source package amounts to add the patch in debian/patches and write its name in debian/patches/series.

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.

Yeah, the heterogeneity. Having to figure out whether to use sbuild, pbuilder, cowbuilder, or that one that does it in a fakeroot, the debian wiki pages on these tools are quite dense and it’s hard to tell which info is 15 years out of date. I definitely cannot remember how to incant dh_make correctly given I only use it every 6 months. E.g., last time I wanted to patch a package debian already had quite a few patches, and I couldn’t figure out how to get the source into the debian patched state, change the code and rebuild it smoothly to test. I acknowledge that the tooling is good enough that if I used it regularly, I probably would have no problem with doing all of this in 2 minutes, but it’s nowhere near as nice as https://wiki.archlinux.org/index.php/Patching_packages.

That said, again I love debian, its stability and high quality, and thanks to you and the volunteers who make it that way :)

Yeah, I can see that. Fortunately on many axes the situation is getting better and better, as data in https://trends.debian.net/ show. But every single developer is still free to choose whatever tools they like, so there will be always packages that do it differently.

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!

Arch's package manager constantly loses information
I've done a ton of distro hopping over the years and always come back to Fedora for a few main reasons:

* 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.

I've been using Fedora since Fedora Core 15 and never stumbled across dnf shell. What's an example of using it to avoid conflicts?
One thing I do (for better or worse): if I need to patch a system package for an extended period of time (like to use a fork), I rebuild the package with a different name and make it provide the original package. For example, one package I recently did this with is libarchive. I rebuilt it as libarchive-patched and in the RPM spec file, I specified:

    Provides: libarchive-%{version}-%{release}
The new package would be able to substitute the old one, but the only way to install it is with dnf shell. Since other things depend on libarchive, I couldn't do:

    dnf remove libarchive
    dnf install ./libarchive-patched-*.rpm
Instead, if I do:

    dnf shell
    remove libarchive
    install ./libarchive-patched-*.rpm
    run
then both the remove and install are done in the same transaction and dnf won't throw any dependency resolution errors.
This is awesome! Will definitely be using this, thanks!
> * 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.

Still shipping, however they dropped EPEL7 support for it :( Issue about it here:

https://pagure.io/fesco/issue/2333

I just use org mode
I lol'd. org-mode is too good for Linux.