Using third party schemes to install applications, codecs and drivers in GNU/Linux

Where there's an easy way, Phil will find it

User space | Easy

By Phil Thane

Online on: 2007-09-19

A common criticism levelled at GNU/Linux and free software by proprietary software companies is that installing applications, drivers and media codecs is made difficult. Well, it isn’t.

While there can be problems installing software in GNU/Linux, these difficulties also exist on other systems and are rarely show-stoppers. And, to be fair, many companies are still struggling to get their products working properly on Vista. A common issue with any operating system is that different versions of a program often need different drivers and supporting applications. Naturally, similar problems can occur with GNU/Linux, and the variety of distributions (distros) and rapid upgrade cycle can seem confusing to newcomers and outsiders, but a new crop of installers are making things really quite simple.

The problems

Assuming you are running one of the mainstream distros such as Mandriva, Ubuntu, Fedora or SUSE, your GNU/Linux system will come prepackaged with a graphical desktop such as KDE or GNOME and a lot of applications. If you are the least bit adventurous, there will come a time when you will want to add more.

In the early days of GNU/Linux the only way to install anything was to compile from source and manually move the compiled “binary” into the directory of your choice. Then various companies and collectives started to produce ready-compiled selections (known as packages) and distribute them (hence “distros”). To make life easier, package management systems were created to automate the installation. The most common are the Red Hat Package Manager (RPM) originally developed by Red Hat, but also used by Mandriva and SuSE; Advanced Package Tool (APT) originally developed by Debian, but also used by Ubuntu, Xandros and others; and pkgtool, developed by Slackware.

Just using the same package management system doesn’t necessarily make distros’ packages compatible

Just using the same package management system doesn’t necessarily make distros’ packages compatible. An RPM package (.rpm) for Open Office as supplied by SuSE may not be the same as a .rpm supplied by Fedora or Mandriva. Each may have modified the software to take account of their unique file system or to fit in better with their “look and feel”. There is even conflict within individual distros—a SuSE 9.0 .rpm may not install correctly on SuSE 10.0. Debian based distros tend to be more consistent. Many .deb files meant for Debian will install and work on Ubuntu.

Then, as if that wasn’t enough, there are “dependencies”. Because many applications have a great deal in common, it makes sense to put common features into “libraries”, where they can be accessed by different applications. Microsoft does this with .dll files, but it is much more pervasive in the free software world. Unfortunately, making sure your PC has the correct library files to enable a specific application to run can be a problem. Providing you only use the applications supplied by your distro, either via .iso files (CD or DVD) or on-line via APT, then the dependencies are solved for you. Once you step outside of that comfort zone, tracking down the right versions of each library can be a pain, rightly known as “dependency hell”.

The solutions

If you have installed one of the mainstream GNU/Linux distros from a DVD or collection of CDs, then it is very unlikely that you actually installed more than a quarter of the apps that are on there. The first port of call when looking for an application you don’t have is your distro’s DVD or CD set. Each of these distros has an “Add new software” feature somewhere in the menu options.

Figure 1: Synaptic is an APT GUI used by many distros
Figure 1: Synaptic is an APT GUI used by many distros

Some distros take a different approach, such as Ubuntu. Instead of providing a DVD’s worth of applications, the basics come on a single CD (or CD .iso) and anything you want to add is done via APT, generally using a graphical “front end” such as Synaptic or Adept. APT has the happy knack of resolving dependencies on the fly; if you request an application that requires a library file you don’t already have, APT will add it to the selection.

Applications for .deb based distros are stored in on-line repositories

Applications for .deb based distros are stored in on-line repositories. The default set up on Ubuntu only connects to their “Officially supported” repositories, but both Synaptic and Adept have a menu option to add others (read the warnings first, though).

Alternatives

There comes a time, though, when most GNU/Linux users want a piece of software not supported by their distro. It may be an application not considered sufficiently stable or too esoteric for inclusion, or a proprietary driver or codec, which the distro team won’t include in case it causes all manner of legal problems for them. Whatever it is, you need a way to install it, and there are several to look at.

Autopackage

Figure 2: Autopackage is almost the Install Shield for GNU/Linux
Figure 2: Autopackage is almost the Install Shield for GNU/Linux

Autopackage aims to do for GNU/Linux what “Install Shield” does for Windows. It uses a completely new package format, which includes a pointer to where required library files can be found. From a user’s perspective it just works, but in the background Autopackage checks dependencies and resolves them automatically.

To install software with Autopackage, choose from the list of available autopackages and then click on the “Download File URL”. You will find dozens of packages available, but Autopackage’s most visible weakness is a relative lack of selection.

Figure 3: Make your Autopackage script executable
Figure 3: Make your Autopackage script executable

The actual download is a small “script”, not the package itself. Save it somewhere convenient, then make it “executable” (In Konqueror right click, choose Properties→Permissions then check “Is executable”). Now double-click the file to start the installer and follow the on-screen instructions.

Figure 4: Installation complete, the easy way
Figure 4: Installation complete, the easy way

Autopackage does automatically what a GNU/Linux expert would do manually—check dependencies and install all the right libraries to make an application work. It works on most distros, but it isn’t completely perfect and some packages don’t install on some distros. For example, Xara Xtreme would not install on Kubuntu Fiesty running on my AMD64 machine. In any case, it doesn’t do any harm to try.

Tags: install, package management, software

License

(C) Phil Thane 2007

Biography

Phil Thane: Originally a Design & Technology teacher in England, then Support Manager at TechSoft UK Ltd in Wales, with a hobby of freelancing for educational and technical magazines. These days Phil is a freelance writer pretty well full-time. For links to publications see www.brynvilla.llangollen.co.uk.

Anonymous visitor's picture

Automatix

please note that although "automatix" scratches a very common itch, it is widely regarded as fundamentally broken - even harmful to the computer on which it is run. the majority of its functions are performed in a very crude fashion, and it is often responsible for borked dist upgrades. so much so, that #ubuntu won't support automatixed systems.

for more information about automatix:
http://mjg59.livejournal.com/77440.html
http://linux.slashdot.org/article.pl?sid=07/08/04/1944211

Anonymous visitor number two's picture

So... if automatix is what

So... if automatix is what linux needs to give that "itch" (as you call) it a good scratch - then, in the spirit of openness should the fragmented linux "community" not fix it and move on rather than the usual my-distro-is-better-than-yours bitching?

undefined's picture

easy ubuntu

yes, automatix was fulfilling a need, and the response has been two-fold: easy ubuntu & ubuntu itself.

i can't authoritatively say that easy ubuntu was in direct response to automatix, or if it's age equals automatix but it only received attention once automatix was recognized as being fundamentally broken. either way, easy ubuntu is the recommended alternative to automatix as it works with the distribution's tools (apt, dpkg), not against them or around them.

canonical has even added the ability with feisty to install codecs on-demand, which alleviates some of the need for automatix.

being a seasoned debian user, when i installed feisty for my wife i didn't need any helper application: googling for apt repositories was sufficient. so neither application is necessary to achieve the same level of functionality.

everything you need to know about avoiding automatix is on its wikipedia page: http://en.wikipedia.org/wiki/Automatix_(software) (specifically the "Response" and "See also" sections).

Anonymous visitor's picture

Autopackage

My experience is that it doesn't work (at least consistently) in x64 bit distro's and that development is pretty much stopped.

Azrael Nightwalker's picture

Klik

Notice that Klik brings a little overhead - every Klik package contains some libraries that normally would be shared and not duplicated.

Chris Lees's picture

The real solution

Not even Click 'n' Run is the real solution, as it still depends on you downloading the package directly from Linspire. Besides, Click 'n' Run isn't actually a packaging format, it's a repository with .debs and .rpms for different systems.

The real solution must revolve around source code, as it is the only thing that can work across distributions and even architectures. Some kind of package format that can include a bog-standard x86 binary and possibly a 64-bit binary; but also include the source code which will automatically be built if the package is used on an unsupported distribution or architecture. This package manager would also be able to link into the distribution's native package manager to grab dependencies and list the newly-built program as a recognised native package. (like Checkinstall on Debian-based systems).

I had this idea while ago, and called it "the BleedingEdge Package Manager", but so far I have not had a chance to code it up. If anyone in the community wants to take this up as a project, please be my guest!

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options


[The Top 10 Everything] [Zoeshire] [FSDaily RSS] [Book Reviews - Illiterarty]