A
package manager or
package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a
computer's
operating system in a consistent manner. A package manager deals with
packages, distributions of software and data in
archive files. Packages contain
metadata, such as the software's name, description of its purpose, version number, vendor,
checksum, and a list of
dependencies necessary for the software to run properly. Upon installation, metadata is stored in a local package database. Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They work closely with
software repositories and
app stores.