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:
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.
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:
# 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
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