jdx/mise · error

no precompiled ruby is available for this platform

Error message

no precompiled ruby is available for this platform

What it means

Variant of the ruby precompiled install failure: when the requested ruby version has no precompiled build AND the platform itself has no precompiled mapping at all (precompiled_platform() is None), mise fails with this shorter platform-level message.

Source

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

                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 afd2eddd3a)

Solutions

  1. Enable source compilation: `mise settings ruby.compile=true`
  2. Switch to a platform with prebuilt ruby support (glibc Linux, supported macOS)
  3. Use the vfox ruby plugin as an alternative backend

Example fix

// before
mise install ruby@3.3.1  // alpine/musl: no platform mapping

// after
mise settings set ruby.compile true
mise install ruby@3.3.1
Defensive patterns

Strategy: validation

Validate before calling

case "$(uname -s)-$(uname -m)" in
  Linux-x86_64|Linux-aarch64|Darwin-arm64|Darwin-x86_64) : ;;
  *) mise settings set ruby.compile true ;;
esac

Prevention

When it happens

Trigger: `mise install ruby@<version>` on a platform entirely absent from precompiled ruby builds, with ruby.compile disabled.

Common situations: musl/Alpine,BSD or other unmapped hosts; dropped platform support in newer prebuilt release sets.

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@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/d2c6178f0baf7d16. Report an issue: GitHub.