Is installing software harder than it should be?

I got to thinking about software installation today. The reason for this is actually quite important to why this post is occurring in the first place. I was updating my system, which runs Gentoo Linux (and Windows XP) as its operating system. For those of you who have not used Gentoo, I will explain the packaging system Gentoo uses.

Gentoo is a so-called “meta distribution” of Linux. This term is used to describe how customizable the operating system is. The entire system is built from source, which means that there is essentially unlimited customization and optimization possible in a Gentoo system. The software that fetches the program source for compilation is called portage — this powerful software is the soul of Gentoo. It’s really quite amazing to use; to install a piece of software, one must only find its package name (made easy by tools like eix, which indexes the entire portage tree to be searched instantly) and enter one command into a console:

emerge [options] [package-name]

The software is then compiled and usable afterward. The first time I used Gentoo, I was amazed at the simplicity of installing software. No longer did I have to surf the Web to find the installer for a program and any dependencies needed. It was all easy-to-find and easy-to-do. It was super-powerful “yum”, which is the tool used to install packages on a number of other Linux distributions.

It wasn’t until later that I realized that this power came at a price.

Portage is amazingly powerful, but in this power resides its weakness. First of all, it takes an incredible amount of manpower to maintain the ebuilds, or packages of software, and each ebuild needs a maintainer. Since these maintainers are people who do this out of the goodness of their hearts, a lot of the time the ebuilds are not up-to-date or installing properly, at least for the lesser-known packages. Now to counter this, Gentoo has the best user community I have ever seen — rarely have I had a problem that has taken more than a quick search at the Gentoo Forums to fix. The second weakness of portage is one that is seen quite often with high-power, constantly-evolving software: it breaks. Often.

When I was updating my system this evening, it returned an error about the Manifest for a package being incorrect. When I was running Fluxbox, I was using a desklet system called aDesklets. One of the dependencies for aDesklets is Fontconfig, a library for font customization. The problem was that aDesklets depends on version 2.3.2-r1, while I have 2.4.2 installed as a dependency for 20+ packages. Since these packages are (well, the same thing, for one thing) meant to accomplish the same function, they occupy the same “slot” in portage. This makes portage try and downgrade Fontconfig to the version needed for aDesklets. The problem arises when the 20+ packages that need the new version of Fontconfig are to be emerged — the dependency isn’t there and portage knows it just downgraded the package; thus the error in the Manifest.

Now, it was a simple fix for me — I’m no longer using aDesklets, so I just unmerged the package and am currently running emerge -uDavN world (ask to verbosely emerge all packages in the “world” file, with the “upgrade”, “deep dependencies”, and “new” use flags) to update the 41 out-of-date packages I have. In a half hour or so, I will have a complete bleeding-edge system.

This whole debacle brought up a thought in my mind: why does software installation have to be so troublesome? Granted, for the most part it’s trouble-free and easy on most systems, but occasionally you have a program that just won’t install. For example, when Battlefield 2 came out, I went out to pick it up on the release date.

While I was readying to leave the store, my friend called me and said, “Hey, you haven’t bought Battlefield yet, right?”

“No,” I replied, “I’m just going to pay for it now.”

“Well, hang on for a minute or two. I’m having problems installing it.”

This friend is the most tech-savvy guy I know — when he has a problem, I listen. It turns out that the DVD-ROM he was using could not read the type of DVD media that EA used to print the games. He fixed the problem by cannibalizing an old 2x DVD-ROM out of what was then our game server.

But why did he have to do this in the first place? Shouldn’t that sort of thing be caught in quality assurance tests? One would think that a publisher as large as EA should be able to release a game that will at least install. (As it turns out, the game wasn’t ready for release in the first place, as a lot of major functionality was broken in the 1.0 version — but that’s another post.) Idealistically, yes, but in reality, it’s virtually impossible to test things on every kind of machine. The fact that my friend had a Sony DVD-ROM that couldn’t read this kind of media is not something that EA checked in their QA tests, apparently. It seems like a strange thing to miss, but it’s there.

With how necessary an activity software installation is, it seems we should know all the problems that could arise in the installation process and have counter-measures for these problems. The sad fact is that we don’t know all the problems and can’t fix some of them. That’s one thing that should be studied — how to improve the user experience by preventing “blockers” in the installation and configuration process. How this might be accomplished, I don’t know — but it’s something I would be interested in studying. After all, aren’t users the most important part of software?

Michael is a nerd who loves gaming, science fiction and fantasy, and programming, though not necessarily in that order. He is currently a Ph.D. student in Computer Science & Engineering at The Ohio State University.

Comments are closed.