3 ms·
The distro package managers like apt or pacman don't really fulfill the same task as development package managers like cargo or npm. The distro package manager
by exDM69 10y ago
The distro package managers like apt or pacman don't really fulfill the same task as development package managers like cargo or npm.
The distro package managers try to supply you with a set of end user applications and then provide a consistent set of libraries to make sure the apps run. This sometimes means shipping an older version of a lib to keep an app supported. It's difficult or impossible to have two versions of the same lib, and sometimes there are hacks like python2-mylibrary vs. python3-mylibrary.
Development package managers on the other hand are intended to build your app and all its dependencies. Many versions of the same library may coexist on the same system and sometimes even in the same project. Development package managers typically build from source and do not have a repository of binary packages. And they allow pinning to specific versions with a lockfile to make builds reproducible. This may also include providing a specific version of the compiler/interpreter.
Nix and Guix may be closer to a development package manager than apt/yum/rpm/pacman, but are yet to be widely adopted.
- jeremyjh 10y agoI don't think your parent was endorsing this state of affairs, but merely offering it as an explanation. I think they are correct - the platform package managers are good enough for the purpose of developers to make it hard for any proper language package manager to gain traction. Even though these approaches may be deeply flawed - by making reproducible builds impossible, among other issues - a majority of users are satisfied with it and do not suffer enough pain to move on. Indeed, I'd much rather `pacman -S boost` and be done in three minutes than wait three hours for a package manager to build it from source. Nix and Guix do get closer to the mark since they allow reproducible builds and can download binaries for me but as long as adoption remains limited I'll be packaging too many libraries myself.