jdx/mise · error

no precompiled ruby is available for this platform

Error message

no precompiled ruby is available for this platform

What it means

Same install path as the sibling error, but this variant fires when precompiled_platform() returns None — the current platform has no precompiled ruby support at all, so no version/platform pair can be named. Compilation from source is the only remaining option and it is not enabled.

Solutions

  1. Enable source compilation: `mise settings set ruby.compile true`
  2. Switch to a supported OS/arch environment (standard glibc linux or macOS) for precompiled installs
  3. Use a plugin that supports your platform (e.g. vfox ruby) if source compilation is impossible

Example fix

// before
mise use ruby@3.3.6 // on unsupported platform, compile unset
// after
mise settings set ruby.compile true
mise use ruby@3.3.6
Defensive patterns

Strategy: fallback

Validate before calling

// detect unsupported platforms before invoking core ruby
const PRECOMPILED_PLATFORMS = ["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu"];
if (!PRECOMPILED_PLATFORMS.includes(platform) && !compileEnabled) {
  await $`mise settings set ruby.compile true`;
}

Try / catch

try {
  await $`mise install ruby@${ver}`;
} catch (e) {
  if (String(e).includes("no precompiled ruby is available for this platform")) {
    await $`mise settings set ruby.compile true`;
    await $`mise install ruby@${ver}`;
  } else throw e;
}

Prevention

When it happens

Trigger: `mise install ruby@<version>` on a platform with no precompiled_platform() mapping (unsupported OS/arch or musl-style environment), while ruby.compile is not enabled.

Common situations: Alpine/musl or BSD environments; unusual architectures (riscv64); trying the core ruby plugin where only source builds can work.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17). Data as JSON: /api/errors/d2c6178f0baf7d16. Report an issue: GitHub.

Appendix: source

Thrown at src/plugins/core/ruby.rs:1097

                if let Err(err) = self
                    .install_default_gems(&ctx.config, &installed_tv, ctx.pr.as_ref())
                    .await
                {
                    warn!("failed to install default ruby gems {err:#}");
                }
                return Ok(installed_tv);
            }
            // `ruby.compile = false` opts out of source builds entirely, so a missing
            // precompiled binary is an error instead of a silent ruby-build fallback.
            if self.precompiled_only() {
                hint!(
                    "ruby_compile",
                    "To compile ruby from source, run",
                    "mise settings ruby.compile=true"
                );
                match self.precompiled_platform() {
                    Some(platform) => bail!("no precompiled ruby found for {tv} on {platform}"),
                    None => bail!("no precompiled ruby is available for this platform"),
                }
            }
        }
        // No precompiled available, fall through to compile from source

        // Compile from source
        let _ = Settings::get().ruby_compile(CompilePurpose::Install);
        if let Err(err) = self.update_build_tool(Some(ctx)).await {
            warn!("ruby build tool update error: {err:#}");
        }
        ctx.pr.set_message("ruby-build".into());
        self.install_cmd(&ctx.config, &tv, ctx.pr.as_ref())
            .await?
            .execute()?;

        self.install_rubygems_hook(&tv)?;
        if let Err(err) = self
            .install_default_gems(&ctx.config, &tv, ctx.pr.as_ref())

View on GitHub (pinned to 533346cc37)