Closed nickchomey closed 2 weeks ago
AFAIK the link command is not meant to link binaries but tools. These tools usually come with a directory structure similar to the following, assuming a bin
directory holding the binaries.
bin/
libs/
LICENSE
README
Regarding the syntax ddev@apt
, mise
is managing symlinks in the ~/.local/share/mise/installs
directory respecting semantic versioning which makes it possible to have symlinks for major, minor and patch versions (e.g. 1, 1.1 and 1.1.0). Hence the expected <TOOL>@<VERSION>
syntax.
The backends feature is probably closer to what you are trying to achieve.
Thank you for the clarification.
I don't see how a backend could be used here, since they seem to trigger, for example, a go build. This has its own build process via Makefile.
Might a generic external binary symlink mechanism like this be possible to add? I think it would be quite useful, and probably relatively easy to add as it would just be creating a symlink and whatever associated directory structure and metadata is required.
In fact, it could also be useful for doing local development of tools that would normally be installed via the registry.
It might also be worth improving the docs for the link command - they're very vague about what it does.
Ok, I've made a very kludgy solution to this.
I basically just copied the directory and .mise.backend.json
structure for the go backend (probably could work with others as well).
contents of .mise.backend.json
{"id":"go:ddev","name":"ddev","backend_type":"go"}
I will probably just make a mise task
for this, but it would be cool to have a built-in "local" backend. I'll open another issue for this
Describe the bug I am trying to symlink various binaries into mise, but keep getting an error message:
No repository found for plugin ddev
It seems to happen for any binary that I try to link to.
To Reproduce
mise ln ddev@apt /usr/bin/ddev --verbose
(or any binary)It creates a symlink (though shouldn't the directory structure be something like
/mise/installs/ddev/apt/bin/ddev.binary
rather than/mise/installs/ddev/apt.binary
?)But it doesnt appear with
mise ls
And then it simply doesn't work when I try to
mise use
itIt seems like it is trying to use asdf plugins, but I have no idea why that would be the case
Expected behavior I would expect it to work
mise doctor
output