Sunday, 16 March 2008

Getting Software and packages; its really not like Windows

When you get MS Windows you don't get MS Office pre-installed, that's an expensive extra. Having installed Ubuntu (my chosen Linux Distribution), there's already a lot of software pre-installed, including Open Office, a whole bunch of games and Internet tools such as Firefox and Pidgin.

When you choose software for your Windows PC, you have to find it, buy it in a shrink-wrapped cardboard box, or download it from the vendors website. The software comes comes with an installer. The installer unwraps all the compressed software and installs all the other little pieces of software and supporting data required to make it run, then spends some time adding information to the Windows registry so that windows will know how to work with it. Each windows installer has to contain (or have available to it) all the supporting software required (the dlls) in case they have not already been installed by other software's installers.

To get software in your Linux distribution you have a tool to add and remove software, which knows about all the software that is available to work readily with your distribution. Software in a Linux distribution is managed differently, as packages. The people who write and maintain the distribution also maintain an up to date archive of software that will run on it, that's prepackaged ready for download and install. So in Ubuntu for instance; when you want additional software, you just go to the 'Add/Remove Software' tool and search for the software. If you want animation software for instance, just type animation into the search and a number of packages are listed to choose from (amongst which, is the software that movie studios use). Each listed item has a more detailed description available, when you click on it. Just tick the box against the item you want and click the 'Apply Changes' button to install.

This built in installation system is a package manager. It manages the installation and removal of software for you. When you are adding a new piece of software, it fetches a list of the required modules, checks what you already have, then just downloads and installs the bits that are required. If you are removing software it removes the software, then checks for any modules that are no longer required and cleans them off the system too.

This in my experience to date all seems to work pretty well. There is a minor complication that may confuse a new user though. Having installed your new Ubuntu system if you look through the available software not everything you thought might be available is there. This is because the Ubuntu team have made a distinction between the types of software available and only by default offer software that is truly open-source, tested to run on the distribution, and has packages supported by the core Ubuntu team. There are three additional pools of software available, which you have to enable via the Administration, Software Sources tool. The software pools available are:
  • Canonical supported Open Source software (main)
    This is what you get out of the box, there's enough supported software to do most common PC tasks in a office, and a bunch more stuff too. (Canonical is the organisation behind the Ubuntu distribution, commercial organisations can buy support for Ubuntu from them).
  • Community maintained Open Source software (universe)
    This is all the rest of the Open Source software thats packaged for this distribution, theres a heap of this stuff. Mostly it will work but there are no guarantees, if you get stuck you are quite likely to find some online help though.
  • Proprietary drivers for devices (restricted)
    Ok this is stuff that you might need in order to get the best out of the hardware on your PC, but it isn't open source. For instance, to get the best performance out of an nVidia graphics card, you really have to use their driver, since only they know how to do it, the open source driver works, but not as well. Realistically nVidia are not going to give the open source community all their commercial secrets about graphics cards, because then their competitors would have them too.
  • Software restricted by copyright or legal issues (multiverse)
    You will probably need some of this stuff, in the real world there's stuff that we take for granted such as listening to MP3s or watching DVDs on the PC that uses software that is patented or is not totally clear cut in legal terms. There's a help page on restricted formats.
So, there are hundreds if not thousands of pieces of software ready to run on your Ubuntu PC, and all for free! Beyond that there is further 'packaged' software that's not packaged for the Ubuntu GUI tools but can still be downloaded and installed from the command console tools by the more expert user. Then beyond the packaged software its possible to download the source code, compile and install pretty much any piece of Linux Open Source software, although most users would never need to or want to.

No comments: