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’ve always avoided Wine, a Windows-compatibility layer for Linux, based upon the reported unreliability of applications run using it. By this I mean that if you read through the AppDB, which lists applications that work/don’t work with Wine, almost every application sort of partially works with some hacks.
Today I decided to test out running Steam, an application for downloading many popular games, under Wine to see for myself how it worked.
Installing Wine (I choose the beta version from Wine’s repositories) was no different from installing any other application. I quickly proceeded to install Steam. From some guides I learned that I had to move some fonts, but that was fairly simple.
While the installation went without any problems, the store part does not appear to work, meaning that you will have to buy games from a Windows computer.
Since I already had a couple of games waiting, I went ahead and installed Call of Duty 4. As has been pointed out, the PunkBuster anti-cheat system doesn’t work, so you can’t play on PunkBuster-enabled servers, but otherwise everything works just fine, though with some performance hit.
Next I tried to install Unreal Tournament 3 Black. This game didn’t work anywhere near as well as Call of Duty 4. I got as far as the EULA screen, before things got messed up. No text appeared where the EULA should have been and no matter what I did Steam froze up and had to be killed.
Just like the AppDB indicates, applications are very hit or miss with Wine, but I would still encourage you to try it. It is very possible that whatever application you want to install works just fine, and if it doesn’t you can just uninstall it.
VirtualBox is one of the often ignored “killer apps” of the Linux desktop. An open-source desktop virtualization tool that anyone can use easily is a great asset, particularly to people who have just switched or can’t pick one distro. (Well, mostly open-source, but we’ll just ignore that.)
Virtualization is still a somewhat alien concept to the average PC user and, to the extent most people know about it, they think of it as something they buy in a box from VMWare or Parallels. (And, if you were on a Mac, that was the only reasonable place you could get virtualization software until recently.) VirtualBox, though, opens the opportunity to have easy-to-use virtualization built right in. It seems like a missed opportunity not to make installing a Windows VM seamless.
As an example, Ubuntu, or any other distro, could set up a feature such that inserting a Windows install DVD would trigger a pop-up asking you if you would like to install it in a VM and explaining what that was. Then, if the user agreed, VirtualBox could be installed and Windows could be installed in to a VM with almost no user involvement beyond putting in the CD and pressing OK.
This sort of functionality would make it incredibly easy for new users to transition to Linux, with Windows available right there just in case something goes wrong.
We talk a lot about how open-source software can improve the end user’s experience in various ways, but there are not always a lot of really good examples. Google’s Chrome, though, is a perfect example.
Google Chrome has been available for some time under Windows, but Google has still not yet released a version for OS X or Linux. They are, however, with the help of the community, working on Mac and Linux versions. Thanks to Chrome being open-source, though, unofficial builds of Chrome are already available to OS X users, offering an early preview of the work that is being done.
If Chrome were not open-source, everyone would just have to wait until Google decided to release a beta (which is a final release in Gooogle terms) . With Chrome as open-source, we can not only get an early look at the work, but also people can pitch into the effort themselves to speed up the process.
Many independent game developers have been arguing recently that porting games to OS X and Linux is a good idea, not because you will sell a lot of Linux copies, but because you get a lot of free advertising which leads to more sales on all platforms. Can this argument work with general applications, too, though?
Unfortunately, I doubt it in most cases. There are already so many great Linux applications that a new application, closed or open source, doesn’t really make much of a splash unless it is already well known, which largely defeats the point of gaining the PR from the port.
For example, look at the recent releases of commercial, closed-source comic and book organization software for Linux from RadicalBreeze. As much as I would like to see these applications succeed, they haven’t gotten a huge amount of attention, despite being something of a test of Linux as a target for commercial development.
As a counterexample, though, Dropbox seemed to get a fair amount of attention for porting their software to Linux. The difference in their case, I suspect, was that they had enough attention already to really be noticed, but not enough that they didn’t benefit from the port.
While for some companies porting applications to Linux may yield a big PR spike, most companies are, unfortunately, probably either too big to care or too small to be noticed.
Gnome Do is quickly becoming one of the coolest “killer apps” of the Linux desktop. Just the ability to launch applications by typing about 3 characters is great, but the plugins and the new Docky dock make Do an absolutely incredibly application.
In fact, Gnome Do could probably replace your main GNOME interface. So how long will it be until we see Dobuntu?
I am sure some people have already started to use Gnome DO instead of the panels, but would an entire Do-based distro be viable? Using Docky, I thnk it could actually be quite successful. Docky creates the possibility of a very clean, OS X-ish interface. This would be true without Docky, too, but Docky makes using Do much more intuitive for new users, which is important if you are shipping it as a major part of a distribution.
At this point, a “Dobuntu” distribution could not only be usable, but quite interesting.
VMWare, who once owned the virtualization market, has been under pressure from free alternatives and pre-installed options like Microsoft Hyper-V, which is included with the latest version of Windows Server.
These offerings have created an easier and/or cheaper place for previous VMWare customers to go. Presumably in response to this, VMWare has decided to open-source VMWare View under the LGPL.
Though I admit that server virtualization is not my area of expertise, this seems like a good move for VMWare, and one that I hope they will continue. Now that View is open-source, enterprise customers are able to modify and customize it to their needs, making it potentially a more attractive option than a fixed configuration like Microsoft’s Hyper-V. Still, VMWare isn’t the only virtualization software maker with open-source products (notably VirtualBox on the desktop side), so this move doesn’t instantly fix their problems.
It’s good to see another major enterprise (and, actually, desktop too) software vendor embracing open-source software and its advantages. I hope that this proves a good move for VMWare and they decide to continue open-sourcing their products.
Today marked the launch of Gnome Do 0.8, a fairly significant update to an incredible launcher/searcher/doer. (It’s quite hard to explain until you use it, but it lets you search for file and applications and then act upon or modify them in various ways.) Gnome Do 0.8 brings some interesting new features, including the addition of a dock. I don’t want to talk about the new features, though, but what Gnome Do, as a project, has done right.
There are a number of “killer apps” on the Linux desktop, some exclusively for Linux, others spanning many platforms, but Gnome Do is notable in that it gathers attention, excitement, and hype in a way that many open-source projects do not. While a large part of this is that Gnome Do itself is incredible, there is more to it than that. Here are some of the lessons other open-source projects could learn from Gnome Do:
I realize that not all projects have the resources to do what Gnome Do has done and I don’t mean to pick on Conduit (if you haven’t tried it, you have to – it’s incredible), but many open-source projects seem to lack the ability to excite people in the way Gnome Do does. Hopefully, this will soon change.
One of the things that I love about being a Linux user is that there are tons of incredibly useful little tools. These are three of the “killer apps” I use that may seem like a generic tool, but are really amazing in some way:
Conduit - conduit-project.org
There are tons of file synchronization applications for Linux, but Conduit really stands out. For starters, Conduit is really simple. You just drag in data providers as either sources (sending data out) or sinks (receiving data) and connect them however you wish. The interface is split in to different syncing groups, so you can easily manage as many different syncing jobs as you need to. Another thing that really makes Conduit stand out, though, is its ability to transfer information from a wide variety of sources. Not only can you sync files and folders, you can also sync various Google services, SmugMug, Tomboy notes, and other applications and websites. The only way these less-traditional data providers differ from files and folders is that it is often only possible to sync in one direction. For example, Conduit can pull information from Google Documents, but not upload information to it. On more and more data providers, however, this is not an issue.
While Conduit is little more than a simple data synchronization tool, its ability to get and send your data to a vast number of places and its simplicity combine to make Conduit a great choice if you need some quick synchronization.
(Conduit is designed for GNOME, KDE users may need to look elsewhere. Ubuntu users can find Conduit in the repositories.)
VNStat – humdi.net/vnstat
When Comcast decided to implement a bandwidth cap, I had to find Bandwidth monitoring software for Linux, Windows, and OS X. After that nightmare, I think I can now say that I know something about bandwidth monitoring. OS X has, by far, the best GUI stand-alone bandwidth monitor in the form of Surplus Meter, but my favorite of all the bandwidth monitors I tried was definitely VNstat, a Linux-only CLI utility. Setup is a little more complicated than others, but once it’s running, it is great. Just type in vnstat -m to see how much bandwidth you have used each month. Likewise, -d gives you a daily overview and -h gives you a very in depth hourly overview. I really try to avoid unnecessary use of the terminal, but I really prefer VNstat to any other equivalent application that is available for any platform.
(Ubuntu users can find VNStat in the repositories (only through Synaptic).)
GEdit – projects.gnome.org/gedit
Almost every operating system includes a text editor of some sort. On Windows it is just a text editor with one feature: word wrap. In true Apple form, OS X tacked on some editing features so that users of word processing software will feel at home. (The point of a basic text editor, as far as I am concerned, is not to have formatting.) Still, it is better than what Windows includes. In true Linux form, GEdit is, in addition to being a simple text editor, a powerful, tabbed code editor. If you have to work with code, no matter if it is HTML or C++, you might want to just forget about an IDE and use GEdit. With support for tabs, syntax highlighting, and a great plugin system to add whatever you want to it, GEdit really is an incredible text editor.
(Almost all GNOME-based distributions include GEdit. KDE users should probably look elsewhere.)
Epidermis is a project that promises to bring together all the aspects of a complete GNOME theme in to a single interface, allowing you to install and apply a completely new theme in a single click.
After installation, Epidermis lets you install a complete theme (including desktop background, GDM theme, splash screen, window theme, etc.) either through a downloadable package or repositories. The purpose of this is to integrate all of the settings available to you through different interfaces and applications into a single theme management window.
If properly implemented, this ability to change the entire theme with one click could be an incredible feature. Unfortunately, the system does not work as well as it claims to, at least not yet. Actually using it on my Hardy Heron resulted in a difficult to fix theme mess, with some things correctly skinned and others apparently only partially themed. In a virtual machine running Intrepid Ibex, however, everything appeared to work perfectly.
Epidermis has a lot of promise as a great way of easily switching themes. Unfortunately, especially if you are still running Hardy Heron, I would not recommend you start using it. At this point it is better to wait for your distribution to integrate Epidermis. At that point, it should be incredible.