Ruby
Like rvm
, rbenv
, or asdf
, mise
can manage multiple versions of Ruby on the same system.
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:
mise use -g [email protected]
Behind the scenes, mise uses ruby-build
to compile ruby from source. Ensure that you have the necessary dependencies installed. You can check its README for additional settings and some troubleshooting.
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:
# supports comments
pry
bcat ~> 0.6.0 # supports version constraints
rubocop --pre # install prerelease version
.ruby-version
and Gemfile
support
mise uses a mise.toml
or .tool-versions
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:
ruby -v > .ruby-version
See idiomatic version files for more information.
Manually updating ruby-build
ruby-build should update daily, however if you find versions do not yet exist you can force an update:
mise cache clean
mise ls-remote ruby
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.