I’m trying to find a thing, and I’m not turning up anything in my web searches so I figure I’d ask the cool people for help.
I’ve got several projects, tracked in Git, that rely on having a set of command line tools installed to work on locally - as an example, one requires Helm, Helmfile, sops, several Helm plugins, Pluto, Kubeval and the Kubernetes CLI. Because I don’t hate future me, I want to ensure that I’m installing specific versions of these tools rather than just grabbing whatever happens to be the latest version. I also want to ensure that my CI runner grabs the same versions, so I can be reasonably sure that what I’ve tried locally will actually work when I go to deploy it.
My current solution to this is a big ol’ Bash script, which works, but is kind of a pain to maintain. What I’m trying to find is a tool where I:
Linux support is a must, other platforms would be nice as well.
Basically I’m looking for Pythons’ pip + virtualenv workflow, but for prebuilt tools like helm, terraform, sops, etc. Anyone know of anything? I’ve looked at homebrew (seems to want to install system-wide), and VSCode dev containers (doesn’t solve the CI need, and I’d still need to solve installing the tools myself)
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.
Hope you enjoy the instance!
Follow the wormhole through a path of communities !webdev@programming.dev
Full disclosure, I use nix (not devbox) for all my stuff cause I care about hardcore reproduciblity.
What’s your issue with asdf? It works really well for me
I’m not who you asked, and not a user of pkgx, but one of the reasons I prefer rtx (which supports asdf plugins) to asdf is that by default it doesn’t use shims, but updates the PATH instead.
So for example, running
which python
will show me a clearly versioned python executable path, rather than a mysterious shim that represents a different realpath at different times.It has random side effects that break cli tools (tools that are not even installed with ASDF)
The more versions you add, the slower it gets. And it can get really slow (that issue was opened in 2018, and it is fixable).
It’s got many “well it works on my machine” problems. And the author said that’s a “wontfix” design choice. That’s fine for the author, it’s FOSS. But it means my workflow is going to randomly break and I just can’t have that when it’s my job.
Pkgx, Devbox and nix avoid all these things.