Application management 6–3
Software delivered as binaries are precompiled applications specific to a particular
hardware and operating system platform. Commercial software is sometimes delivered
as binaries, perhaps with a custom installation script. Such software is easy for end-
users to install and use.
Binaries are specific to Linux distribution, version, and hardware architecture. Even
though this format can be convenient for end-users, it is less so for publishers. Software
publishers must release many versions of binaries to address the various combinations
of distribution and hardware platform, maintain current versions of those binaries, and
manage the potential confusion when users purchase the wrong binaries.
Software delivered as source code is uncompiled program code, ready to be compiled
for your particular hardware and operating system platform. Compiling converts source
code into binary, specific to the operating system and hardware on which it was
compiled. You need a compiler, such as the Gnu C Compiler (gcc) in order to compile
source code into an installable application.
Individual programmers often distribute their software in this manner. The same source
code can be compiled on many different systems. So, distributing in source code
enables these individuals to use the code easily on a wide variety of systems.
However, source distribution is difficult for end users. They must have a compiler
installed, know how to configure it and use, and be able to handle any problems or
issues that arise during compilation. Advanced users and programmers are the most
likely users of software distributed as source code.
Packages are precompiled applications delivered in a specialized bundle that can be
read and installed by a package manager. A package contains binary code, along with
meta-information that describes the application, provides the internal information
needed to install and configure the application, and describes dependencies—
components or other applications that are required for an application to function.
Popular package formats include:
deb—The Debian package format, developed originally for the Debian
RPM—The RedHat Package Manager format, originally developed for RedHat
Packages often include a checksum, which is a value calculated through a mathematical
operation performed on the package file. The package manager calculates its own
checksum and compares it to the checksum stored in the package; if the values match,
the package file has not been altered (for example, by a transmission error or a virus)
since being created.
Packages are often published via repositories, which are online libraries of software
packages. Package managers automatically download packages from repositories and
install the software onto your system.