Every application begins its life in source code form, and to make an executable you need to compile it for your architecture. When you compile software, you have to define certain parameters that the source code is compiled under. This could be software optimization, file installation locations, or options to enable or disable certain software functionality.
Once compiled, the software is installed into the system so that it can run on its own. This process is repeated for each iteration of the software release that you want to install. However, this process does not control the software versioning, and there is a great danger that older library versions of software could conflict with the software when you upgrade.
The RPM system enables you to semi-automate this process with the definition of a specification or spec file. The spec file defines the location of the source code, preparing the code for compilation and installation of the source code in one manageable package. Inside the spec file is also a definition of the version of the code and the location of all files the RPM contains. This allows for updates to overwrite (effectively removing the old software and installing the new), negating the impact of the traditional configure, compile, and install with source code.
Was this article helpful?