apt
is the main command-line package manager for Debian and its derivatives.
It provides command-line tools for searching and managing as well as querying information about packages and low-level access to all features provided by the libapt-pkg
and libapt-inst
libraries which higher-level package managers can depend upon.
Included tools are:
- apt-get for retrieval of packages and information about them from authenticated sources and for installation, upgrade and removal of packages together with their dependencies.
- apt-cache for querying available information about installed as well as available packages.
- apt-cdrom to use removable media as a source for packages.
- apt-config as an interface to the configuration settings.
- apt-key as an interface to manage authentication keys.
- apt-extracttemplates to be used by debconf to prompt for configuration questions before installation.
- apt-ftparchive creates Packages and other index files needed to publish an archive of deb packages.
- apt-sortpkgs is a Packages/Sources file normalizer.
- apt is a high-level command-line interface for better interactive usage.
APTUM expands APT with the following features:
- Temporary state support (save state / rollback):
apt save
: initialize a temporary state, for further rollbackapt rollback
: rollback from a previously initialized temporary stateapt apply
: apply a previously initialized temporary stateapt log
: display the package changes since the initialization of the temporary state
- Shortcut to display close history:
apt history
: print the history of commands:apt history -f
: print the full history
- Always asking for confirmation before installing a package
First, you need to install some dependency packages:
# Building tools
build-essential
pkg-config
triehash
cmake
# Dependencies
gnutls-dev
libdb-dev
libudev-dev
libbz2-dev
libzstd-dev
libsystemd-dev
libseccomp-dev
libgcrypt20-dev
libxxhash-dev
liblzma-dev
liblz4-dev
zlib1g-dev
# Native-language support
gettext
# Documentation building
doxygen
docbook-xsl
xsltproc
po4a
w3m
# Tests running
libgtest-dev
Then to start the configuration, you need to run the following from a build directory:
cmake <path to source directory>
Example of standard build:
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_DOC=ON -DWITH_TESTS=ON .
There is an extensive integration test suite available which can be run via:
./test/integration/run-tests
Many more things could and should be said about APT and its usage but are more targeted at developers of related programs or only of special interest.
- Protocol specification of APT's communication with external dependency solvers (EDSP)
- Protocol specification of APT's communication with external installation planners (EIPP)
- How to use and configure APT to acquire additional files in 'update' operations
- Download and package installation progress reporting details
- Remarks on DNS SRV record support in APT
- Protocol specification of APT interfacing with external hooks via JSON