No matter how simple you can make it, installaing a new OS will always be a daunting task for most computer users, especially on a machine they depend on every day. Even an experienced user can mess up and knock out a partition by accident.
Assuming that not everyone has that geeky neighbor who goes door to door installing Linux on people’s computers, there has to be a better way.
Why the Live CD is not a better way
The Live CD is an incredible innovation. In addition to being invaluble to fixing problems, it lets a new user see what they are jumping into before they take the plunge. It doesn’t, however, offer the user any opportunity to test it in a more real-world situation. Because a Live CD can’t save anything back to the disc, it’s really not useful for anything more than half of an hour of playing around.
No, not the Live USB either
Well, then, how about a Live USB memory stick? After all, it’s just a Live CD with a USB plug and the ability to save files, right? Yes, but, despite the price of USB memory sticks, most people don’t have spare ones laying around that are large enough to fit an entire OS plus files. Additionally, not all motherboards support booting from USB devices (although this issue is rapidly disappearing).
VirtualBox
For a long time, virtual machines really didn’t work very well, either, due to their poor graphics support. Now, though, since VirtualBox 3.0 supports at least simple 3D graphics, David Siegel (creator of GNOME Do) is proposing the creation of a single installer that sets up a customized version of VirtualBox with an Ubuntu image loaded up. This allows the user to save changes, doesn’t require any special hardware, and is a very familiar process for almost all computer users.
Wubi
Finally, we have Wubi, which allows you to do a pseudo-install. It looks just like a dual-boot setup, but it’s really simple to set up (just like installing a program) and writes all changes to the existing Windows partition.
Putting it together
Separately, these are all good ways of trying Ubuntu out, but together as a process they are an absolutely killer feature. Eventually, I hope that a new Ubuntu user will be able to install Ubuntu as a virtual machine, then upgrade that to a Wubi install, and finally to a real install, all without having to copy their files over once.
It’s less important exactly what methods of trying Ubuntu exist than how seamless the process of testing it out and then installing it can be made. Imagine a slider. You start at the “total beginner” end and slowly progress to the “I’m ready” end. As you get closer to the “I’m ready” end, your install of Ubuntu would be progressively more permenent. When you got all the way to the end, you would have a real instal of Ubuntu.
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:
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.
I can’t say Ubuntu’s installer is bad compared to other installers (in fact, it is one of the better ones), but it could certainly be improved. Right now, it works and it works pretty well, but there are a fair number of unnessessary clicks and some unexplained features. Here is my list of important features for an installer:
Other than speed, that is about it. Really, the goals for an installer are pretty simple. It gets harder when you want to implement those goals, though. Here is a possible installation process that would come quite close for fitting all of these goals: As a reference, look at this page for the current installer.
This kind of installer would enable new users to easily install Ubuntu, without crippling the installer for experienced users. Plus, it eliminates some unnecessary clicks, something everyone is sure to appreciate.
Brilliant Brainstorms is a weekly-ish summary of some of the best brainstorms from the Ubuntu Brainstorm site. In the beginning it may not always come exactly once a week or on the same day, but, if it becomes popular, it should become more regular.
Many distributions now have small presentations that run during installation and show off new features. Expanding on this idea, Ubuntu could offer a choice of an introduction for newbies to reduce post-installation questions, a tour of new features, or just the regular old installer. (Full disclosure: this is my idea.)

As you may know, I am always a fan of making things look cool, so a logical next step is to make the installer carry on the theme of the release. (See mockup at the right.)
Not everyone is like me in thinking that the Ubuntu brown and orange color scheme is great, so, to make those brown-haters
happy, different colors of the human theme could be offered as options for a quick color change.
There is a lot of great, free e-book material out there, and since LInux is being adopted frequently in schools and it is consistent with open-source, it would make a lot of sense to make some of the freely-available e-books easily accessible from the Ubuntu repositories.
You may have noticed that this week’s Brilliant Brainstorms is shorter than previous weeks. Just FYI, I don’t try to reach any particular length, I just gather up all the brainstorms that I think are good and if I have way too many I remove a few.