4 ms·
As an outsider to Python/Perl/Ruby/etc., I've never understood why these languages have each their own packaging system, rather than simply relying on the host
by colanderman 11y ago
As an outsider to Python/Perl/Ruby/etc., I've never understood why these languages have each their own packaging system, rather than simply relying on the host OS's packaging system. After all, it serves C, C++, and Bash well; and pip packages generally are repackaged as Red Hat/Debian/etc. packages anyway.
Making .rpms and .debs is not all that hard, though I admit there are a few too many package formats (and that still leaves non-Linux users without a clean solution). Beside this, what benefits do users of these language-specific packaging systems enjoy that I am missing?
- kh_hk 11y agoSimply, it provides a way to install the exact dependencies a program needs without breaking others / polluting your OS.
- keypusher 11y agoThe first is being distro agnostic. The second is the ability to install packages without sudo, and stuff like virtualenv. The recommended way to set up a python project these days is to create a virtualenv and install all your packages there. That way it does not interfere with system packages, and can easily by cloned or destroyed as necessary.
- slavik81 11y agoI really feel that's a failing of rpm and dpkg. You should be able to install new packages for your local user without sudo and without affecting other packages. If the system tools weren't so lacking, I doubt we'd have the proliferation of language-specific packaging systems. If they were better designed, you could simply tell debian users to install rpm to handle their rust packages, like you now tell them to install cargo. That sounds ridiculous, but it shouldn't. I'm hoping Nix, Guix or something of that sort can one day fill that role. Integrate them nicely into distros and let them slowly take over the non-system packages. Let rpm and dpkg slowly wither away until finally, with a little "pop", they disappear into nothingness. Of course, all these language-specific package managers support Windows, so I hope Nix and/or Guix actually do so. As git has shown, it doesn't even have to be amazing support. But, without something basic, people are going to keep inventing new package managers to make Windows work. Will you kill off all other package managers? Obviously not, but I do think you could prevent quite a few people from re-inventing the wheel for their next language if there was already a good tool to build upon.
- whyever 11y agoIt does not serve C++ well. Many programmers try to minimize dependencies, because having dependencies is hard to deal with. If you need a specific version for instance, you can't rely on the OS's packaging.