Frequently Asked Question

What exactly is a software package?

A package is a single archive file that bundles together everything one piece of software needs to be installed and run: the compiled binaries, the shared libraries it ships with, the default configuration files, manual pages, icons, desktop entries, and crucially the metadata. The metadata names the package, gives its version, lists its dependencies, records which files it owns and where they should go, and provides pre- and post-install scripts that the package manager runs at the right moment.

Without metadata a package would be no better than the old tar.gz of binaries that Unix sysadmins used to drop into /usr/local. With it, the package manager can build a database of what is installed, resolve dependencies automatically, upgrade cleanly, remove without orphaning files, and verify integrity with checksums. The package is the atomic unit of Linux administration.

Video

Further reading and video