๐Package managers are dependency injection mechanisms
Package managers are dependency injection mechanisms: packages declare their dependencies (other packages and possible version constraints) and package manager selects the appropriate package (specific version) and makes it available to the installed package.
However, Interface is second-class for package managers as they operate on names and versions.