When people look around for reasons to say that Linux is just too hard, they will invariably arrive at software installations. The classic refrains include the difficulty of building from source, the problems with dependencies, and so on. Although there is some truth hidden in there somewhere, building from source is rarely necessary for mainstream packages because precompiled applications exist for most major distributions. Again, on the issue of package dependencies, most distributions use software installation tools that take care of the whole dependency issue for you, such as SUSE’s YaST, Debian’s apt-GUI, Synaptic, or Mandriva’s urpmi to name just a few.
Still, as I mentioned, there is a nugget of truth in the software installation fear-mongering in that package installation in Linux, across the board, could be a bit simpler. As I wandered the deep and dark wilds of the World Wide Web, I ran across a piece of software that makes package installation across distros virtually painless. It’s not perfect, but it’s cool, it’s new, and it might well be revolutionary. It’s called klik.
klik is the brainchild of Simon Peter (aka probono), with help from Niall Walsh and others. The inspiration for klik has its origins with Knoppix (and Kanotix). In fact, the original name for klik was KLIK (all caps), which stands for "KDE-based Live Installer for Knoppix+Kanotix". Incidentally, despite that very KDE-ish sound of the original name, klik works equally well in the GNOME environment. The idea was to come up with some way to install and run software packages on a live CD where adding packages is technically not possible due to the read only nature of a live CD.
To install and run a klik package, all you have to do is find the package you are looking for and—quite literally—click on the link provided. The process downloads, installs, and runs the software for you without any fuss. What makes klik even more interesting is that you can install software packages without having to run as root. Users with the klik client installed can visit the klik site, browse the packages that are there, and run the package from their own directory. You can even run different versions of the same program side by side, which is great for testing.
If this all sounds too good to be true, let me come clean up front and tell you that there are some limitations that I’ll explain as I go along. That said, the greater part of it really is as good as it sounds.
The idea is novel, to say the least. What klik does is combine a set of precompiled binary packages (in .deb format) into a single packaged file using simple recipes. That file, with a .cmg extension, is essentially its own self-contained world with all dependencies built into one "filesystem." Inside that filesystem is everything the package needs to run. In fact, .cmg files aren’t in any way dependent on what you currently have on your system.
Supported distributions include Kanotix, Ubuntu (Breezy), Linspire, Debian Sarge, Fedora Core 4, and OpenSUSE 10—to name a few. Of course, as with many such things, unsupported should not be interpreted as "it doesn’t work." The notebook I used to write this article runs Mandriva.