Falsehoods programmers believe about package managers¶
Implementing mpm
exposed me to many edge-cases and pitfalls of package management. Here is a list of falsehoods programmers believe about them.
Packages¶
Package managers¶
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 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 multiple architectures.
Meta¶
Implementing a meta package manager is not a futile pursuit.
See also¶
And more generally, the Awesome List of Falsehoods.