-
-
Notifications
You must be signed in to change notification settings - Fork 30
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
🐛 Could not start dynamically linked executable: ./biome-linux-x64 #295
Comments
Moving this to the main repo, as it's related to the cli. |
@nhedger Hey! The main project already provides statically linked builds. I included them in the screenshot for comparison. It's just the extension using a binary with runtime dependencies. Sorry for the lack of clarification. |
I have this issue with biome installed from npm, running in the shell. |
I don't have the knowledge around the topic discussed, but PRs are welcome |
@ematipico As far as I know, there is nothing to do on the biomejs/biome side. This repository already provides statically linked biome-linux-x64-musl releases. It's up to the VSCode extension to use it. |
I see, then I will move back the issue in the VSCode repository |
@nhedger The issue here is that the
There's a specific code that we can to understand if an OS needs the musl binary: |
@ematipico It appears that this code snippet will not work in the NixOS case. NixOS is glibc-based but prevents dynamically linked executables (via custom /lib64/ld-linux-x86-64.so.2). Is there any reason for simply not using the musl release on all systems? Statically linked programs can run anywhere without additional dependencies, be it a glibc system or a musl system. If the musl binary was not statically compiled, then indeed it would require a musl-compatible system, but this is not the case here. |
@Zaczero No specific reason other than we never looked into it. I personally don't have a lot of experience with musl, so I never assumed that it was possible. Are we certain that there are no trade-offs ? |
@Zaczero would you have time to send a PR? |
@nhedger @ematipico I can prepare a PR and the change would be straightforward. The question is whether it's fine to use musl builds globally. Given my understanding, x64 statically compiled binaries will work on all x64 systems, as they have no external dependencies. They are basically self-contained. It doesn't matter what system they are running on because they are independent. In the situation where the glibc build is not statically compiled, it has an external dependency on glibc, which makes it incompatible with Alpine/NixOS/and similar. Additional info on the wiki. |
VS Code version
1.89.1
Extension version
2.2.3
Biome version
1.7.3
Operating system
Description
The bundled biome cli uses a dynamically linked release. This is not a good choice since it introduces several hidden dependencies on the end users and limits the compatibility:
The biome-linux-x64-musl release is statically linked, meaning that it has no external dependencies and all necessary code is contained within the binary. This is the best choice if talking compatibility.
Please consider using a self-contained binary for the use within the extension.
Steps to reproduce
N/A
Expected behavior
Extensions uses statically linked biome cli release.
Does this issue occur when using the CLI directly?
Not sure / Not applicable
Logs
No response
The text was updated successfully, but these errors were encountered: