Yo dawg, I herd u like Linux, so I put APT in yo Linux so u can manage while u package. That’s the gist of it. And now in human-readable text. Yes. Today, we will talk about Linux package managers, the neat software that lets you search, install and remove programs, tools, utilities, fonts, and whatnot in your Linux distribution. Now, we will not be talking about the low-level stuff, like DEB and RPM. We will focus higher up.
First, I am going to present a handful of command line tools, with a bunch of pros and cons and options that each has, and then, we will talk about frontends for said software. We will not be reviewing all of them, so you might want to ready your rage torpedoes right away. Here we go.
Yellowdog Updater, Modified (YUM)
With the seemingly most random name around, unless you’re keen on Linux history, YUM is the default package manager for the RedHat family, which includes the enterprise flavor, as well as Fedora, CentOS, Scientific Linux, and a few odd distros here and there. I do not recall seeing it being used with other distributions, and it’s almost predominantly oriented for RPM.
YUM has a bunch of nice features. It can work with local and remote repositories. It also has the ability to use plugins, including some really neat options, like priorities and protection of core libraries, so you do not end up mangling your system beyond recognition in case of a conflict. Fedora also uses the delta mechanism, which reduces the overall bandwidth size needed for updates.
I really like the fact YUM can install package groups, like media for example, so you do not need to manually list them all. It can also resolve dependencies, perform local installations from RPM files, list the history of transactions. My favorite, the ability to install to an alternative root, with –installroot=root, which is extremely handy for NFS and alike.
The traditional YUM frontend is YUM Extender, or yumex, which is used in CentOS and Scientific Linux. However, there are no specific restrictions. For instance, the more recent versions of Fedora KDE edition use Apper, which has also been successfully mated to APT and other package managers, with other distributions.
This funnily named package manager engine is used almost solely by the SUSE distribution, open and enterprise flavors. However, outside the desktop space, ZYpp has found use with mobile operating systems, including Tizen and Sailfish OS. The native command line interface is known as zypper. Much like YUM, zypper comes with a lot of cool features and options. It can do all the usual, which means search, install, remove, resolve dependencies. Then, on top of that, you can dry-run the installs, auto-agree to software licenses, install patches raised by specific Bugzilla or CVE issues, add repositories and more. Again, much like YUM, you get deltas, so you conserve your bandwidth.
Zypper is slightly more cumbersome to use than YUM, and I also find it a little slower overall, especially when you mate it to a frontend. In SUSE, this means YaST, which does a good but a somewhat complicated job of marking packages and then installing them. You will almost always end up having to agree to some extra stuff, without really knowing whence it cometh.
Advanced Packing Tool (APT)
This package manager has seen a growing popularity with tons of distributions, mostly because of the success of the Ubuntu family. But it is not restricted to the Debian family. For example, PCLinuxOS uses it, with its RPM base. Regardless of what distro it runs on, APT is a fairly fast and simple tool. You might encounter some confusion when you hear about dpkg and aptitude, so be brave, dear readers. APT has a lot of features, including the regular stuff, plus the ability to download package only, simulate installation and fix broken dependencies.
However, while the command line is identical in all Linux systems, it is the explosion of frontends that has made APT so popular. First, there was Synaptic, the trusted workhorse of the Linux community for many years. Then, with the growth of Ubuntu, several more engines have come alive, with a significant focus on the aesthetics, categories and search, and even online shopping. Although these are not necessarily related to how APT works, they tie down the technology with practice.
For instance, the Ubuntu Software Center (USC) is used by mainline Ubuntu, as well as its Xfce derivative, Xubuntu. In Kubuntu and Netrunner, you will encounter Muon. Linux Mint offers a simplified Software Center, with less focus on the online part but an equally powerful visual effect. There are still more incarnations and flavors, but these dominate the market.
There are many more, command line and GUI. For example, Slackware offered/offers slackpkg, pkgtools and the unofficial slapt-get. Arch comes with pacman, as in, I’m the Pacman, ti-da-da-da-da-dee. And Sabayon, based on Gentoo, uses the rather complex Entropy thingie, which includes Equo command-line client, Sulfur and Rigo graphical tools, and let’s not forget the server components. And the list keeps going on, don’t be mad, we can’t cover them all.
Overall, no matter which path you choose, you probably won’t go wrong. Sometimes, you won’t really have a choice, because the selection of a particular Linux distribution, for whatever reason, will dictate the package manager you must use. You can always try to install a different tool, but this is not a recommended exercise for newbies.
So now, let me tell you which one is the best. For me, command-line-wise, YUM is the favorite, because of its overall robustness and simplicity, as well as the ability to use an alternative root as the installation target. However, when it comes to GUI tools, Ubuntu Software Center is the friendliest, most convenient frontend. It offers the information you need with an extra flair of fun, making the package management a delightful experience.
I’m done. Now, it’s your turn.