Falsehoods programmers believe about package managers#
mpm exposed me to many edge-cases and pitfalls of package management. Here is a list of falsehoods programmers believe about them.
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.
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 software.
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 across OSes and distributions.
Package managers tracks installed versions.
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 multiple architectures.