01 What is a package?

A package is the minimal unit of installation of the system. Its main purpose is allow the user to easily install, uninstall and upgrade their system, taking care of the dependencies and initial configuration and making sure that everything is ready to work as expected. ', 'A package is the minimal unit of installation of the system. Its main purpose is allow the user to easily install, uninstall and upgrade their system, taking care of the dependencies and initial configuration and making sure that everything is ready to work as expected.

It usually consists of a collection of files, along with some metadata explaining whatever is needed for the system and the user to know about the package itself and how to handle it. A package can contain one or more programs, but also other kind of data, such as documentation, fonts, artwork, data for other programs, or in general whatever could be needed to install in a system.

A package must know how to set up the system when being installed, so that whatever it contains is usable and fits in with the rest of the system, and also what to do when uninstalling it, so that the system remains consistent afterwards. It must take care that whatever it needs to work is already there. It has to provide the user a description explaining what it contains, and under which license it can be used and distributed. To sum up, it must provide whatever information is needed for both the user and the system to handle it.

Even when they are the minimal unit, a package shall not be seen as something independent of the whole system. The individual packages are not the most important, but the whole system in itself. When developing a package, both ist quality, integration with the rest of the system an the compliance to applicable standards must be taken into account. The most important document that guarantees all that is the Debian Policy, which also relies in some other Linux standards, such as the File Hierarchy Standard, or the Linux Standard Base.