Skip to content

Ruby

The following are instructions for using the ruby mise core plugin. This is used when there isn't a git plugin installed named "ruby".

If you want to use asdf-ruby then use mise plugins install ruby GIT_URL.

The code for this is inside the mise repository at ./src/plugins/core/ruby.rs.

Usage

The following installs the latest version of ruby-3.2.x (if some version of 3.2.x is not already installed) and makes it the global default:

sh
mise use -g [email protected]

Behind the scenes, mise uses ruby-build to compile ruby from source. You can check its README for additional settings and some troubleshooting.

Settings

ruby-build already has a handful of settings, in additional to that mise has a few extra settings:

ruby.apply_patches

  • Type: string(optional)
  • Env: MISE_RUBY_APPLY_PATCHES
  • Default: None

A list of patch files or URLs to apply to ruby source.

ruby.default_packages_file

  • Type: string
  • Env: MISE_RUBY_DEFAULT_PACKAGES_FILE
  • Default: ~/.default-gems

Path to a file containing default ruby gems to install when installing ruby.

ruby.ruby_build_opts

  • Type: string(optional)
  • Env: MISE_RUBY_BUILD_OPTS
  • Default: None

Options to pass to ruby-build.

ruby.ruby_build_repo

  • Type: string
  • Env: MISE_RUBY_BUILD_REPO
  • Default: https://github.com/rbenv/ruby-build.git

URL to fetch ruby-build from.

ruby.ruby_install

  • Type: Bool
  • Env: MISE_RUBY_INSTALL
  • Default: false

Use ruby-install instead of ruby-build.

ruby.ruby_install_opts

  • Type: string(optional)
  • Env: MISE_RUBY_INSTALL_OPTS
  • Default: None

Options to pass to ruby-install.

ruby.ruby_install_repo

  • Type: string
  • Env: MISE_RUBY_INSTALL_REPO
  • Default: https://github.com/postmodern/ruby-install.git

URL to fetch ruby-install from.

ruby.verbose_install

  • Type: Bool(optional)
  • Env: MISE_RUBY_VERBOSE_INSTALL
  • Default: None

Set to true to enable verbose output during ruby installation.

Default gems

mise can automatically install a default set of gems right after installing a new ruby version. To enable this feature, provide a $HOME/.default-gems file that lists one gem per line, for example:

text
# supports comments
pry
bcat ~> 0.6.0 # supports version constraints
rubocop --pre # install prerelease version

.ruby-version and Gemfile support

mise uses a .tool-versions or .mise.toml file for auto-switching between software versions. However it can also read ruby-specific version files .ruby-version or Gemfile (if it specifies a ruby version).

Create a .ruby-version file for the current version of ruby:

sh
ruby -v > .ruby-version

Manually updating ruby-build

ruby-build should update daily, however if you find versions do not yet exist you can force an update:

bash
mise cache clean
mise ls-remote ruby

Licensed under the MIT License. Maintained by @jdx and friends.