Chapter 2. Introduction to software management
Every informatic system needs a way to install and remove the software it will need to do his work. But what is software installation? Installing software is just to putting the binary executable files and documentation for this software in the right places at the target system.
The right places to install software in Fedora are ruled by the Linux Filesystem Hierarchy Standard (FHS).
Once you have decided where the software must be installed, then we can choose the method to do the installation:
By hand, copying the files with tools like cp, mv, scp.
Using a tool likely to build software, for example, make.
Using some generic tools for software distribution.
gem install rubygem
cpan> install DateTime
Using a Version Control System like svn, cvs, git, etc.
git clone ...
svn co ...
cvs co ...
Using tools suited for the distribution.
This guide is about the last option and in particular Fedora, although many of the concepts, tools and techniques in this manual can be applied to other systems. The following highlights some problems when using other methods.
Several tools for the same task: gem or cpan?
It's hard to know exactly which software is installed.
It's tricky to do updates to installed software.
It doesn't scale: it becomes progressively harder at the time you install more and more software.
Hard or practically impossible to know who and when installed a specific software.
It becomes messy and tends to make systems dirty.
Altered paths and no certainty than you are using the software you really need.
There are little benefits of using manual methods or platform independent software management tools like:
Support for multiple versions.
You can get always the last releases from upstream.
Choice to proprietary software with no free and open source replacement.
Generally it is not recommended to use non-native Fedora tools for managing software as the software you need is available in RPM format, even if it is proprietary software. Also these alleged benefits are very questionable and in fact we insist that you should not use these methods unless an very special circumstance and you know in advance what you are doing.
In Fedora and like other Linux distributions today, the software management occurs at three levels which we introduce below:
Table 2.1. Three layers in software management.
Layer
|
Component
|
Comment
|
---|
1
|
RPM
|
Low level, basic handling of dependencies.
|
2
|
YUM
|
Automatic dependencies and repository resolution.
|
3
|
PackageKit
|
User Graphical Interface and available in several distros.
|
The RPM format is the way to encapsulate all the software of a given application, or general data, for the RPM software management system existing in Fedora and other Linux distributions and Unix systems. The RPM system is both the file format and the software management system based on low-level records in a database.
So then, the chosen application can be provided by developers in Fedora RPM format compatible. It may also be provided by the Fedora Project itself if the software has been previously packaged properly and legally validated as part of the distribution. A third option is available in foreign repositories that offer the application in a RPM format package.
With RPM you can install, uninstall and update software packages with simple commands. RPM maintains a database of installed packages and there are commands for querying and system checking.