Installing software on Linux distros has been quite a challenge for a long time especially from those Windows enthusiasts who decided, at some point, to dive a little bit into the world of Linux. All those used to click on an .exe file and just click Next, Next, Finish and start using the software right away have been quite disappointed many times and decided that Linux wasn’t something for their fine taste without looking a click further.

Unlike Windows, in the world of Linux software usually comes in the form of “packages”, where such a package can be a .exe or a .zip file. Going further, on a Mac a packages is something like a program.dmg or program.sit file. When it comes to Linux, there are different package types and as you’d probably expect, each Linux distribution has it’s own preferred package format.

Another difference between a Linux distro and Windows is that you won’t got to a website to download the “program” on your hard drive and install it, you’ll rather have to get the packages you need for the software you want to use from the Linux distro’s software repositories using a package manager. While it does sound a bit complicated in the end it is actually simpler than installing software on Windows, if you can imagine that.

Tipically, a Linux distribution’s software installation system is more like an app store where you go to install most of the software you need and from where consistent updates come in.

Getting back a little to package types, according to the Linux Standard Base, the standard Linux package fromat is RPM. It is a system developed originally by Red Had that is widely used among many distributions. Nowadays, distributions such as Red Hat (obviously), SUSE, Mandriva or Fedora use it. Usually, a RPM package file will normally be named like this: program-version-other.rpm.

DEB is another very popular package format and it’s the native format for Debian. Historically, Debian packages and the Advanced Packaging Tool (much better known as APT) introduced firstly many advanced features that nowadays are quite common, such as signed packages and automatic dependency resolution. Usually, a DEB package will be found named like this: program-version-other.deb.

Installing software on Fedora and Red Hat – “yum” is your friend

What will you be using yum for? Well, this command is the one you’ll have to type in your terminal along with other “keywords” in order to install the software/packages you’ll use. So let’s go ahead and exemplify.

yum install ${packagename}

The above command will be used to install a package, where packagename is obviously the exact name in the repository. It’s just simple, isn’t it?

To remove (uninstall in Windows), you’ll again use yum followed by remove, such as below:

yum remove ${packagename}

What’s specific for yum is that it won’t save local copies of the package database so you won’t really need to update it, but to install all available security updates and any bug fixes at any given moment you’ll have to use the following command:

yum update

If there’s a need to update a specific update for a specific package and not for  everything then yum allows that option with the following command:

yum update ${packagename}

Installing software on Debian and Ubuntu – APT is your friend

apt-get is probably the tool that’s the easiest to use for managing Linux packages. It keeps track of installed packages as well as of available packages. If configured the right way it’ll even download packages from the Internet for you.

Here are some common commands for using apt-get:

– install software:

apt-get install ${packagename}

– remove software

apt-get remove ${packagename}

APT specifically keeps a local list on your hard drive with all available packages and where they can be found and it has to be explicitly updated with the following command:

apt-get update

A more complex command that you can use is:

apt-get update; apt-get upgrade

Basically, this command updates your local package database and then upgrades all the packages for which patches or security updates are available.

Here’s a nice, more indepth article that you can read if you’d like to find out more about managing software on Linux with APT!

Installing software on Mandriva – “urpm” is your friend

Mandriva Linux is a distribution that was named Mandrake and Connectiva in the past. It comes with a toolset called urpmi that’s very similar to Debian’s APT.

Here are some basic commands to use it for software handling:

– install software:

urpmi ${packagename}

– remove software:

urpme ${packagename}

– update the local package database:

urpmi.update -a

– install security updates and bug fixes:

urpmi –auto-select

Tar Balls and installing software from source code

A tar ball is an archive (usually compressed) of files, similar to zip files on Windows or site files on Mac that comes in a files ending in .tar, .tar.gz, .tgz or something similar. Unpacking such an archive requires th e use of the following command:

tar -xzvf ${filename}.tar.gz

Let’s dive a bit into what those parameters stand for:

– x – extract the files;

– z – filter through gzip for decompression and it’s not needed if the file doesn’t have a .gz extension;

– v – verbose mode so that you can follow what’s going on;

– f – indicates a filename to follow.

Extracting files does not mean software installation. You’ll have to find the README or INSTALL file in order to get the guidance for actually installing the needed software. When an archive contains binaries you’ll always have to execute a setup script (most of the time named install.sh) as SuperUser.