Falsehoods Programmers Believe About Package Managers¶
A package has a name.
A package has only one name (see #26).
A package name is unique.
A package name is the same as its ID (see #11).
There is only one way to install a package.
Only one version of a package is available on a system.
Package upgrades can be automated.
Packages can’t upgrade themselves.
A package can be reinstalled.
Package managers provides the latest version of packages.
Package managers provides clean packages.
Package managers provides stable softwares.
You can downgrade packages.
A package manager can update itself.
A package is found under the same name in different package managers.
Package managers can resolve dependencies.
All dependencies are provided by the package manager.
Package managers have a CLI.
Package managers behave the same accross OSes and distributions.
Package managers tracks installed versions.
Package managers can track removed packages (see #17).
Package managers are documented.
A package manager has a version.
A package manager check package integrity.
Package managers are secure.
Package managers can be unittested.
Package managers can upgrade all outdated packages.
Package managers are forbidden to upgrade other package managers.
Packages are only managed by one package manager.
Installing a package doesn’t require a reboot.
Package manager output is consistent.
A package manager can upgrade a package installed by the user.
Package managers do not remove user data.
Package managers can bootstrap themselves.
Package managers supports maultiple architectures.
You only need one package manager.