-
-
Notifications
You must be signed in to change notification settings - Fork 432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sometimes mise installs precompiled linux-musl
Python on linux-gnu
systems
#2139
Comments
Aha, reading the python.rs code, it caches the "matching" precompiled versions. After I blew away the mise cache and re-installed python I got a So my belief is currently:
@yozachar you might try
... and see if you can create virtualenvs, install poetry, etc? |
I'm going to see about keying the cache keys to include the target and maybe a few other things |
Ideally, just cache the downloaded file, not any processing thereof? (Also, DID the https://mise.run/ logic for |
it's better for the logic to be generic across all tools not just something for python. I think there was a change around that somewhat recently. |
Describe the bug
On some Linux glibc systems, when installing a precompiled Python binary, mise will choose the statically linked
linux-musl
version instead of the dynamically linkedlinux-gnu
version from the indygreg repository. The resulting binary works more-or-less but has a lot of quirks and incompatibilities since the world assumes that linux == glibc:venv
creation fails onlinux-musl
builds astral-sh/python-build-standalone#261etc.
To Reproduce
This happens on some systems but not others! On a glibc system (normal desktop Linux, e.g. Ubuntu):
mise
mise settings set python_compile false
mise install python
ldd $(which python)
Expected behavior
Some output like this
Actual behavior
(because the Python binary is statically linked)
mise doctor
output in BAD casemise doctor
output in GOOD caseNote, basically identical. (Pretty sure the
poetry
plugin is incidental, that was from me trying to repro that bug...)Additional context
It APPEARS that the builtin
python
plugin selectslinux-musl
vslinux-gnu
based on whether themise
binary itself is linked against musl or glibc. That in turn is chosen when mise is installed, e.g. by the script returned from https://mise.run/, which currently has this logic to detect musl:In fact on some (glibc) systems I'd seen
mise
installed aslinux-musl
(permise doctor
), BUT re-running the installer brought in alinux-gnu
mise
binary, BUT even so re-installingpython
still brought alinux-musl
python
binary.The text was updated successfully, but these errors were encountered: