Updated: Migrating from rbenv / nvm to mise

Posted . Visible to the public. Auto-destruct in 60 days
  • Removed the default gem:geordi mise tool entry from the sample config.toml
  • Deleted the note explaining that gem:geordi would auto-install the latest geordi gem and warning about Ruby compatibility

mise's gem: backend does not install into your Ruby. It installs into a directory of its own and puts a wrapper script on the PATH. That is incompatible with how geordi works. For more details see this geordi issue Show archive.org snapshot

Currently you can use a ~/.default-gems file, to automatically install gems after installing a new ruby version, but that behavior is deprecated and will be removed in 2027.11.0 Show archive.org snapshot . There does not seem to be a feature replacing that identical behavior.

Changes

  • [Mise](https://mise.jdx.dev/) is a tool that can manage your Ruby and Node.js versions. It replaces rbenv and nvm in that regard.
  • **It installs precompiled Ruby binaries**, so installing a new version will take seconds, not minutes.
  • # Install mise
  • Follow the installation guidelines at `https://mise.jdx.dev/getting-started.html`.
  • # Remove rbenv configuration
  • Search for rbenv config in `.bashrc` _and_ `.profile` and remove it:
  • `eval "$(rbenv init - bash)"`
  • Search for rbenv config in `.profile` and remove it:
  • `source /home/$user/.rbenvrc`
  • # Remove nvm configuration
  • Search for nvm config in `.bashrc` and remove it:
  • ```
  • export NVM_DIR="$HOME/.nvm"
  • [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  • [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
  • ```
  • # Remove everyhing managed by rbenv (Ruby, gems)
  • Keep in mind you will have to reinstall Ruby+Gems.
  • `rm -rf ~/.rbenv`
  • # Remove everyhing managed by nvm (NodeJS, global npm packages)
  • Keep in mind you will have to reinstall NodeJS versions and npm packages:
  • `rm -rf ~/.nvm`
  • # Add mise configuration
  • Add the following configuration to `~/.config/mise/config.toml`
  • ```
  • [settings]
  • idiomatic_version_file_enable_tools = ["ruby", "node", "pnpm"]
  • [tools]
  • ruby = "latest"
  • -"gem:geordi" = "latest"
  • ```
  • -`"gem:geordi" = "latest"` will automatically install the latest version of [geordi](https://github.com/makandra/geordi), after ruby has been installed. In this way, you can also add further gems you want to install by default. But be aware, that this does not check compatibility of the latest gem version with the ruby version. If your projects ruby version is incompatible, you will get an error message.
  • -
  • -
  • # Manage ruby and node with mise
  • When installing ruby and node with `mise`, make sure to use `mise install` (not `mise use`). `mise use` will add a `mise.toml` to your project, which is unnecessary with the config above. With the setting `idiomatic_version_file_enable_tools = ["ruby", "node"]` your ruby and node versions will still be pinned in `.ruby-version` and `.nvmrc` respectively.
Profile picture of Bruno Sedler
Bruno Sedler
Last edit
Bruno Sedler
License
Source code in this card is licensed under the MIT License.
Posted by Bruno Sedler to makandra dev (2026-09-28 15:05)