3 ms·
> I try to steer away from relying on CLI tools implemented in python or ruby: at the system level they always seem to cause dependency hell problems eventually
by vorpalhex 5y ago
> I try to steer away from relying on CLI tools implemented in python or ruby: at the system level they always seem to cause dependency hell problems eventually.
For python specifically, you can use `pipx` which will install an app into it's own venv and activate that venv only as needed, with fully isolated deps. [1]
No such solution exists for ruby or php though, and I won't use those projects unless dockerized.
[1] - https://pypi.org/project/pipx/ https://pypi.org/project/pipx/
- wfleming 5y agoI'm aware of that approach for Python, and Bundler can be configured to do a similar thing for Ruby. Those are good approaches for development environments (though I generally prefer Docker for those these days), but for system tools I think that's just kind of a hassle and I don't want to do it. For a tool I install & use, my happy path is "install it with my package manager, and then stop thinking about it". Upgrades will happen whenever I decide to ask my package manager to upgrade everything. (I use Arch Linux, so that's usually once or twice a week.) Needing to hand-setup an installation or deal with multiple package managers like that for a program makes me cranky. I've certainly done it when there wasn't a good alternative (and also occasionally wrap programs in docker containers as well if it's easier - https://github.com/wfleming/dockerfiles https://github.com/wfleming/dockerfiles), but it's the kind of thing that makes me pause and reconsider whether I really care enough to use whatever the program is.