XiaO

用 rbenv 管理 ruby 版本

XiaO / 2021-11-25


安装 rbenv

brew update
brew install rbenv

将以下代码添加到 ~/.zshrc 文件中,补全 PATH 变量及初始化

eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/bin:$PATH"

使用 rbenv

查看所有可安装的 ruby 版本

rbenv install --list

2.6.9
2.7.5
3.0.3
jruby-9.3.1.0
mruby-3.0.0
rbx-5.0
truffleruby-21.3.0
truffleruby+graalvm-21.3.0

安装及查看版本

rbenv install 3.0.3     # 安装 3.0.3 版本

rbenv versions          # 列出所有安装的版本
rbenv version           # 列出正在使用的版本

设置版本

rbenv global 3.0.3      # 默认全局使用 3.0.3
rbenv shell 3.0.3       # 当前的 shell 使用 3.0.3, 会设置一个 `RBENV_VERSION` 环境变量
rbenv local 2.6.9      # 当前目录使用 2.6.9, 会生成一个 `.rbenv-version` 文件

rehash

rbenv rehash # rbenv 为所有已安装的 Ruby 版本的所有命令(ruby、irb、rake、gem 等)创建垫片。这个过程被称为 rehash。每当安装一个新的 Ruby 版本或安装一个提供命令的 gem 时,运行 rbenv rehash 以确保任何新的命令都被 shimmed。

现在 rbenv 可自动执行 rehash

当前使用的 ruby 的路径与版本

which ruby
/Users/xxx/.rbenv/shims/ruby
ruby -v
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-darwin19]

使用相应版本的 Ruby 中的 gem 命令,管理 jekyll

gem install bundler jekyll

此时安装的工具在相应版本的 ruby 文件夹中。譬如我们使用 3.0.3 版本的 ruby,使用命令 gem 安装的 jekyll~/.rbenv/versions/3.0.3/bin/jekyll 路径中。我们可以使用如下命令查看 gem 的环境配置:

gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.32
  - RUBY VERSION: 3.0.3 (2021-11-24 patchlevel 157) [x86_64-darwin19]
  - INSTALLATION DIRECTORY: ~/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0
  - USER INSTALLATION DIRECTORY: ~/.gem/ruby/3.0.0
  - RUBY EXECUTABLE: ~/.rbenv/versions/3.0.3/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: ~/.rbenv/versions/3.0.3/bin
  - SPEC CACHE DIRECTORY: ~/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: ~/.rbenv/versions/3.0.3/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-darwin-19
  - GEM PATHS:
     - ~/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0
     - ~/.gem/ruby/3.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - ~/.rbenv/versions/3.0.3/bin
     - /usr/local/Cellar/rbenv/1.2.0/libexec
     - ~/.rbenv/shims
     - ~/.rbenv/bin
     - /usr/local/sbin
     - ~/.pyenv/shims
     - ~/.pyenv/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Library/TeX/texbin
     - /usr/local/MacGPG2/bin
     - /opt/X11/bin

为了是系统其它软件也能调用该 jekyll,将 jekyll 软链接/usr/local/bin 本地文件夹中:

cd /usr/local/bin && ln -s ~/.rbenv/versions/3.0.3/bin/jekyll jekyll

另外,webrick is no longer a bundled gem in Ruby 3.0.

bundle add webrick