Background to packages

A package is a combination of metadata, configuration, and software that is prepared in a way that a package management tool can use to properly and reliably install software and related configuration data on a computer. Some examples of package management tools include:

  • apt on Ubuntu
  • yum on RedHat Enterprise Linux (RHEL)
  • pip for Python packages
  • gem for RubyGems

Packages are useful because their:

  • Version information helps keep software up to date
  • Metadata offers visibility in what's installed to which locations and why
  • Software installations are reproducible in different environments.

Package creation tools

There are many tools for creating packages. Some of these tools are provided directly by Linux distributions, while many other third-party packaging tools are also available.

Some popular package creation tools include:

Some advanced package creation tools include:

  • Mock, a chroot-based system for building RPM packages in a clean room environment
  • pbuilder, a chroot-based system for building deb packages in a clean room environment. Useful tips about pbuilder can also be found in pbuilder's user manual
  • git-buildpackage, a set of scripts that can be used to build deb packages directly from git repositories
  • fpm, a third-party tool that allows users to quickly and easily make a variety of packages (including RPM and deb packages)
  • PackPack, a simple tool to build RPM and Debian packages from git repositories.

Next steps

Learn more about how: