jdx/mise · error
no precompiled ruby is available for this platform To compil
Error message
no precompiled ruby is available for this platform To compile ruby from source, run: mise settings ruby.compile=true
What it means
mise's ruby core plugin filters its remote version list (jdx/ruby GitHub releases) down to versions that ship precompiled binaries whenever `ruby.compile = false` (precompiled-only mode). retain_precompiled_versions first maps the host to a platform identifier via precompiled_platform(); only `macos` (arm64), `arm64_linux`, and `x86_64_linux` exist (unless ruby.precompiled-arch/os overrides are set). On any other OS/arch the platform is None and listing aborts with this error instead of silently offering versions that can never install without compiling.
Source
Thrown at src/plugins/core/ruby.rs:648
)))
}
/// Restrict a version list to versions that have a precompiled binary for this platform.
///
/// Entries are only removed, never reordered, so `latest` and prefix resolution keep the
/// same ordering semantics as a source install.
async fn retain_precompiled_versions(
&self,
versions: Vec<VersionInfo>,
) -> Result<Vec<VersionInfo>> {
let settings = Settings::get();
let source = &settings.ruby.precompiled_url;
if source.contains("://") {
// A URL template can't be enumerated, so every version is assumed available.
return Ok(versions);
}
let Some(platform) = self.precompiled_platform() else {
bail!(
"no precompiled ruby is available for this platform\n\
To compile ruby from source, run: mise settings ruby.compile=true"
);
};
// Only the releases `list_releases` returns are considered. Without
// MISE_LIST_ALL_VERSIONS that is the most recent page, which is where the
// precompiled builds live.
let releases = github::list_releases(source).await?;
let available = Self::precompiled_versions_from_releases(
&releases,
Self::source_requires_build_revision(source),
&platform,
);
Ok(versions
.into_iter()
.filter(|v| available.contains(&v.version))
.collect())
}View on GitHub (pinned to 6f52dcdf99)
Solutions
- Set `mise settings ruby.compile=true` (or delete the ruby.compile=false setting) so listing includes source-buildable versions and installs fall back to ruby-build
- If you must stay precompiled-only, add explicit overrides, e.g. `mise settings ruby.precompiled_arch=x86_64` and `ruby.precompiled_os=linux`, matching an asset platform that actually exists in jdx/ruby releases
- On an Intel Mac or exotic-arch Linux, accept that no precompiled ruby exists: compile from source or run under Rosetta/a supported environment (e.g. arm64/x86_64 Linux container)
- Pin an already-installed local version (`mise use ruby@3.3.6` with the version already in ~/.local/share/mise/installs) so no remote listing is needed
Example fix
# before mise settings ruby.compile=false mise use ruby@latest # -> no precompiled ruby is available for this platform # after mise settings ruby.compile=true mise use ruby@latest
Defensive patterns
Strategy: validation
Validate before calling
# before enabling precompiled-only ruby, confirm this platform has precompiled builds: uname -s # must be Darwin (arm64) or Linux uname -m # must be arm64/aarch64 or x86_64 # or let mise tell you directly — this lists only versions with binaries: mise ls-remote ruby >/dev/null || mise settings ruby.compile=true
Prevention
- Don't set ruby.compile=false in shared/global config; scope it per-machine or per supported platform
- On Intel Macs or exotic-arch Linux, leave ruby.compile unset so source builds remain the fallback
- Set ruby.precompiled_arch/ruby.precompiled_os explicitly when you depend on precompiled assets, so platform detection changes can't surprise you
When it happens
Trigger: Settings contain `ruby.compile = false` and the host is x86_64 macOS, an exotic Linux arch (e.g. armv7, riscv64, s390x), or a non-macOS/non-Linux unix. Any remote version enumeration then hits it: `mise ls-remote ruby`, `mise use ruby@latest`, `mise install ruby` resolving a fuzzy version.
Common situations: Intel Mac users who opted out of source compilation; CI on niche architectures or containers emulated with QEMU; users who copied a dotfiles mise.toml with ruby.compile=false onto an unsupported machine; overrides like ruby.precompiled-os set to a value the jdx/ruby release assets don't cover.
Related errors
- no precompiled ruby is available for this platform\nTo compi
- no precompiled ruby found for {tv} on {platform}
- no precompiled ruby is available for this platform
- Ruby engine '{}' is not supported on Windows. Only standard
- brew-cask:{}: only font-only casks without lifecycle hooks a
AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22).
Data as JSON: /api/errors/a8ea0c1f55a92d29.
Report an issue: GitHub.