Package Managers Are an Awesome Mess
ONE OF THE FIRST THINGS you usually do after you boot into a fresh Windows installation is go looking for third-party software, such as Firefox, Chrome, Steam, VLC, and maybe an office suite. That means opening up Microsoft Edge (or Internet Explorer), na
The first-boot Linux experience is different, and is one of the best things about the modern Linux desktop. First of all, many Linux desktops come preinstalled with the likes of Firefox and LibreOffice, but you still need to get the other things, such as Chrome (well, Chromium) and VLC. Doing this usually takes just one or two entries on the command line. In Ubuntu, this looks something like “sudo apt update” and “sudo apt install chromium vlc.” The package manager Apt looks for the software, looks up its dependencies, fetches them, and then asks whether you want to install all of those packages.
You then relax as the system does its magic. It’s awesome, but there’s a problem with the Linux package manager ecosystem, and it’s the fact that there’s an ecosystem of package managers at all.
There’s a slew of package systems to choose from: Debian, Ubuntu, and derivatives (such as Linux Mint) use Apt; Fedora and Red Hat use YUM; OpenSUSE uses ZYpp, which is compatible with YUM; Slackware has Pkgtools; Arch uses Pacman; and Gentoo uses Portage. And that’s just the big names. Every distro can always fall back to .tar.gz tarballs and install software from source, as well.
This is a big problem, because when a developer wants to release software for Linux, it has to choose how to package it. As it stands, developers tend to distribute .rpm files for Fedora, and .deb files for Ubuntu most of the time. Everyone else gets a tarball. And that blows.
And it’s not the developers’ fault. Developers spend most of their time writing software. That takes time and energy—they don’t want to exhaust that effort making pretty packages for every distro. That task falls to package maintainers.
While we’re here, let’s give a big hand to package maintainers. Seriously. These folks do a lot of grunt work for distributions. These poor souls donate their precious time to package the latest versions of their chosen software project of choice for the distribution they use. And that’s not the end of their responsibility. They have to answer to the community when installs fail, or when a script calls for the wrong dependency. It’s a thankless job that only exists because of package system fragmentation.
Like it or not, it’s likely we’ll be stuck with this system for a long time. Package managers are one of the core elements that differentiate distributions from one another.
People may install Fedora and use something besides Gnome, while others may ditch Unity when they install Ubuntu. But when you think about it, there aren’t that many people who ditch their distribution’s default package manager.
They really are some of the best and worst parts about Linux.
When you think about it, there aren’t that many people who ditch their distribution’s default package manager.