cross-posted from: https://sh.itjust.works/post/64685863
Lots of programming languages have their own package manager, separate from the distribution or OS package manager.
Going loosely from the TIOBE index:
- Python has Pip
- C# has NuGet
- Javascript has
npmfor Node.js- Visual Basic also uses NuGet
- R has a repository of packages that can be installed by running
install.packages("something")in R- Rust has Cargo/Crates
- Go has the
go getcommand- Swift has its own package manager
swift package- Ruby has RubyGems
- Java has Maven and Gradle (not sure if they are full package managers, or build automation tools with dependency resolution)
- PHP has Composer for managing libraries and dependencies
- C and C++ are the only exceptions I can think of, off the top of my head; libraries are managed by, and coupled to, the operating system


I thought Bazel was just a build system, not a package manager.
Hmmm, you might be right. It’s definitely a build system. I’m trying to think if it’s a package manager, and if it’s not, what is playing the role of the package manager.
EDIT seems to be both, which admittedly makes my point less relevant.
https://moderncppdevops.com/pkg-mngr-roundup/#build-systems-and-environment-managers