Tony Mobily published an article in Free Software Magazine discussing software installation, specifically end-user software installation, on Linux, which he calls broken. I agree that the system is flawed, but it is not broken. The most important thing is that we not reinvent everything around the fragmented models that OS X and Windows use.
What about Windows and OS X?
Though many would disagree with this statement, I believe that Windows current has one of the worst software installation experiences. Every application developer creates his/her own installer, often based from one of the commercial installation tools. This means that, though some unofficial standards have developed, every installation is different. In addition, Windows software installations usually waste clicks. How often are the instructions for installing software on Windows “press next, press next, press next, press next, press install, press finish?” Then, when a new version comes out, you have to go through each application’s own updating process, leading to tons of software popping up different boxes asking if it can update itself. On top of this, very little can be done to verify software’s authenticity and applications can and do put files anywhere they like. This is not the right model to follow.
Mac OS X is the common target that Linux users point to as the “right” way to install software. Apple certainly had the right idea. You drag what looks like a single file into your applications folder to install, and you drag that file to the trash to uninstall it. That, in theory, is an excellent system, however there are a few problems. First, there is, as on Windows, little ability to verify a program’s authenticity and, for lack of a better word, working-ness. Second, while installation is easy, uninstallation is not always clean. Even on OS X, programs sometimes scatter files around the disk. This has lead to the creation of third-party commercial programs to fully uninstall OS X applications. Third, this system still doesn’t provide any unified way of updating applications. Finally, many software makers do not use the drag-and-drop installation, instead opting for a more Windows-like installation wizard. This system is much better, but is still not the right thing to imitate.
What about Linux?
Despite the many flaws, Linux actually has one of the best software installation methods, in theory. Applications can be installed via a single, standard interface listing the program’s name and a short description. Just check a box and software can be easily installed or uninstalled from a verified source, providing some level of assurance that the application will work. Most importantly, software is updated through one interface that integrates all software updates.
If the software you are looking for is not available through this interface (meaning that it is not in the repositories), you can either add the software’s repositories, allowing it to be updated along with all the other software, or you can directly install a package (for example, a .deb on Ubuntu or Debian), leaving you to update the software yourself.
All that said, though, there are a lot of flaws, such as those discussed in the FSM article referenced above:
“Users need to have root access in order to install a piece of software; no per-user installation is allowed”
The first part of that is a symptom, the second is a problem. It would be nice to be able to install applications just for one user, but this is not a problem that most people will experience, since most PCs are used by only one or two people.
“It’s very tricky to install several versions of the same piece of software. Just think of the poor graphic designer who needs to install several versions of Opera and Firefox;”
Agreed. That’s a clear flaw. (Though, to be fair, most people will not notice that either.)
“A piece of software is bound to a specific distribution, and — what’s worse — to a specific version of that distribution too. It’s not trivial to install Openoffice 3.1 on Ubuntu 8.10. You can argue that you can install the bunch of .deb packages from OpenOffice’s web site. Tell that to your grandmother or your average inexperienced computer user.”
OK, OpenOffice is notably more difficult to install than most applications thanks to it’s numerous packages, but I get the point: with a new version of many distributions coming out every 6 months, application have to be compatible from release to release. When you install from your distribution’s repositories, this is handled for you, but a better solution has to be found, since this is probably the biggest issue for developers.
As a result of this, some, mostly larger, companies are now distributing their Linux software as an installation script that handles installation on many different distros and versions. While, convenient for them, this is the wrong approach (and should be appropriately discouraged), since it leads to the Windows problem of different installers for everything and scattered files.
“The software needs to be downloaded from the official repositories. Well, it doesn’t need to, but an average user wants to stay well away from unofficial repositories for technical reasons;”
This is the biggest issue for most users. Adding repositories is unintuitive, and packages aren’t always clearly marked in terms of what distribution they are for (see above), causing confusion to new users. For this, a better way of managing installed pacakges and of adding repositories is needed.
Finally, we just need education. Half the problem here is that Linux has such a different approach than OS X and Windows, so perhaps we should make a greater effort to inform new users of this change, so they don’t get confused.
The solution
Do we need a completely new solution? Possibly, but probably not. The current system is pretty good with two exceptions:
- Applications have to be compatible across distributions and versions and use one package format (even if that format is just a wrapper for the appropriate .deb or .rpm)
- Installation of applications that are not in the repositories has to be much smoother.
I think that everyone can agree that a serious effort to improve software installation on Linux would make a huge difference in day-to-day Linux usage, particularly for newbies. I am optimistic that we might get some real attention to this issue, allowing it to be resolved in a way that doesn’t imitate any other OS, but rather does it better than any other OS.