Most Windows users are baffled at the “complexity” of installing software in Linux based Operating Systems such as Ubuntu, Fedora etc. This post tries to tell you why this perceived difficulty exists and why the system is different (and better) in most Linux based Operating Systems.
Due to free nature of GNU/Linux operating system most programs (or software), when they require a specific function, may call that function from a pre-written library. Think of a library as a collection of some specific functions which may be required by many pieces of software. For example, a multimedia library may be required by your Media Player (such as VLC, Windows Media Player etc) Video Converters (such as Total Video Converter) etc. These are called dependencies of the program. These libraries may have dependencies themselves making a list of large number of dependencies which must be present in the system before the said program can be run. Thus to solve this problem the Package Management system was born. The Package Management system maintains a list of dependencies for each program and when the user ask to install a particular program the Package Manager automatically installs the dependencies before installing the application so that everything works out smoothly.
The problem with this is that most users find it difficult to install software in GNU/Linux because they are used to the Windows environment where you had to download an “exe” or “msi” file, double click and click “Next” a couple of times and Voila!, the program was ready to run. This is because Microsoft’s philosophy was a “mine” philosophy which relied on computers standing isolated and running applications that meets the users requirement. We all know Microsoft was a little slow to the “Network is the Next Step In Computing” manthra. Also since Microsoft does not believe in helping any other company with their products, they would never incorporate a package management system on the Windows platform (although this strategy of theirs is changing with the advent of Windows 8). But the Package Management system in GNU/Linux operating systems have its advantages :
- All programs that depend on a library are updated when the library is updated. For example let there be a library function that generates a random number. Suppose that this function is used by a large number of software in an intermediate step. When the algorithm to generate the random number is improved all programs that use this library automatically runs faster.
- Memory is used more efficiently since many applications do not need to load code that do the same thing multiple times into memory. This is perhaps why GNU/Linux systems have a smaller memory footprint as compared to Windows systems.
- With a single click or command you can update the entire software collection on the computer to the tested and stable new versions. This is because the Package Manager maintains a database of all the installed applications and the administrator who maintains the repositories release only tested software into the software repositories.
There are popular tools that can be used to make the whole process offline. But as they are free software it is harder to promote them, which is why it is important to have a community relationship when working inside free software. With little effort Package Management system can be a blessing for any former Windows user.