Manage my package
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.
ZYpp (libzypp)
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.
Other players
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.
Conclusion
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.
Cheers.
I have tried most of the command-line installers. I prefer to use APT or YUM. These are the ones I have the most experience with. I use Synaptic, when I need a GUI.
Pacman, APT, and YUM are my package manager preferences, as they’re the three I’ve used the most, Ran Ubuntu for six months, Fedora for three, and currently run Arch, albeit initially installed as Archbang, but I have since replaced the defaut Openbox + Tint2 + Conky + Compton/SLiM window manager/login manager config with a MATE + Compton/LXDM desktop environment/login manager config.
I apologize ahead of time for the tl;dr comment. I just can’t help writing “articles” instead of comments. Anyway…
Being a chronic distro hopper for a long time I’ve probably tried most of them but as old(er) age came on I pretty much settled on Linux Mint as my main OS on my desktop PC and APT. Not because APT is the most powerful or the most versatile but more because it’s stable, robust and easy to use. That plus it has so many decent front ends available, Synaptic being my favorite.
That being said, I’ve not stopped distro hopping completely which brought me to Fuduntu on on my older, slightly modified Lenovo R61ThinkPad. Just about the time I really started to enjoy this distro and it’s package manager, development was dropped–so much for that. Otherwise, I never could bring myself to like Fedora in any way, shape or form.
But then came Manjaro with it’s (strained and sifted) Arch base along with “pacman” and “yaourt” (AUR access) package managers and that’s been on my laptop for 4 months now. I really like those two command line package managers. And Manjaro’s home-grown Pamac front end for “pacman” which now can search and install from the AUR repository, is shaping up nicely.
So it’s Mint and APT on my desktop PC and Manjaro and “pacman” and “yaourt” on my laptop. Works for me.
My observation of the Linux package managers I have used is they do a good job of resolving dependencies, managing updates, searching repositories, and installing packages. The GUIs make using them easier for inexperienced users and when I fell lazy.
I prefer APT over the rest, however, YaST is pretty awesome. Not to mention the command line interface is really good. Moreover, OpenSuSE has for almost every GUI an equivalent CLI (YaST isn’t just a package manager).
I prefer yum. Been using it from FC4. What I like the most is that it’s so streamlined: everything falls under one command (thanks to many arguments you can call it with). The pet peeve I have with apt is that you have to remember dpkg, apt-get, apt-cache, etc. Possibly my fault, since I haven’t been using Debian extensively enough to force myself to remember them. RH all the way :D
I haven’t tried yum yet, but I’ve used apt, zypper and yaourt. All of them are good and do the job very neatly. though yaourt seems to be the simplest tool in the group.
If there is such a thing as a Worst Pile of Dung award I would like to nominate Puppy Package Manager.
Puppy package manager isn’t all that bad in my opinion, especially with the precise and slacko versions of puppy, which incorporate .deb support and which ever slackware sources use. Also all puppy releases i believe have a small CLI app that converts .tgz packages into .pet packages for ease of installation support. I used to use Adept, its a GUI frontend for apt, I perferred it over synaptic due to it’s ability to fix version problems with package dependencies and true removable and package listing for updates and what not.
I personally prefer YUM* (with select plugins), but is there a future for APT on RPM systems? There hasn’t been a release of APT-RPM since 2006 (0.5.15lorg3.2), and the last development version came in 2008 (0.5.15lorg3.94a). Meanwhile APT has continued to progress in the Debian world (it’s currently at 0.9.7.9, released in 2013). Synaptic has shared a similar fate in the RPM world (even though it began life as a Conectiva creation). Synaptic as included by RPM distributions is stuck at 0.57.2 (released in 2005), whereas it has progressed to 0.75.13 (released in 2012) in the Debian ecosystem.
*Of course DNF could be mainstreamed before its ready and completely destroy that preference. It’s not like preemie software has never been pushed out of the Fedora womb before.