A package manager is the part of linux operating system, which allows you to manage your installed software and add new software to your operating system.
Unfortunately there is no globally applicable package manager which can be used through all the distributions and therefore there is no unique way how software is installed in linux.
Currently there are 3 main package types:
- .deb (short for “Debian binary packet”)
- This format is used in all Debian based distributions like Ubuntu or Mint.
- These packages are being handled via the “Debian Package Manager” (short DPKG).
- .rpm (short for “RPM Package Manager” – yeah, kind of dumb)
- This format is used in all Red Hat based distributions like Fedora or SUSE.
- These packages are being handled by the “RPM Package Manager”.
- This format isn’t truly its own “package format” like .deb or .rpm. Instead its “just” a compressed archive which uses the compression algorithm “XZ”.
- These “packages” are being handled via “Pacman”.
A software repository ist an online accessible lost of available software versions which are used to install or update a specific software in your operating system.
Dependent on the used distribution and what you want to do in linux you need to use more or less repositories.
In the above example you can see a PHP repository for Ubuntu 18.04 “Bionic” so you can install the latest PHP versions and extensions.
On the example of “Ubuntu” a repository can be added via:
sudo add-apt-repository ppa:ondrej/php sudo apt-get update
The first command adds the repository to the system.
The second command searches for all available updates in all configured repositories.