RVM切換到rbenv[MacOS]

alfredhot發表於2022-04-28

參考原文: https://gist.github.com/akdetrick/7604130
本文在翻譯原文基礎上對在實際操作中發生的問題追加了零星的解決辦法.

rvm vs rbenv

起初看著RVM功能要比rbenv多, 所以選擇了RVM來管理ruby的版本, 但經過一段時間的使用發現對於ruby版本的控制還是rbenv方便些, 而且Gemset的設定多少有點麻煩, 設定不好連rails建立專案都報錯. 所以索性換成rbenv.

1) remove RVM from your system


首先,要刪除RVM.

以下的命令等讓你清理掉RVM的安裝檔案以及通過RVM安裝的所有版本的Ruby.

# rvm 的"自爆"模式, 將自動刪除安裝的ruby和自身的檔案
$ rvm implode

# 偶爾會有因許可權問題導致 ~/.rvm 刪除不掉的問題
$ rm -rf ~/.rvm

$ gem uninstall rvm
$ rm ~/.rvmrc
$ rm /etc/rvmrc

2) remove any remaining traces of RVM


從以下檔案中刪除所有關聯rvm引用路徑的設定

  • .profile
  • .bash_profile
  • .bashrc

zsh還需要修改:

  • .zshrc

3) install rbenv


使用Homebrew安裝rbenv和ruby-build外掛

rbenv的安裝也可以參考rbenv自家的文件: https://github.com/rbenv/rbenv#installation

$ brew update
$ brew install rbenv ruby-build

4) install rubies for rbenv


使用rbenv安裝需要的ruby版本

# 列出可安裝的ruby穩定版本:
$ rbenv install -l

# 安裝指定版本的ruby:
$ rbenv install 2.0.0-p247

Note: 新安裝一個ruby版本或gem之後如果出現問題, 執行 $ rbenv rehash命令

5) switching ruby versions in rbenv


切換使用的ruby版本

有兩種方法可以切換使用的ruby版本

在專案路徑中指定使用的ruby版本

大部分ruby專案路徑中包含有一個.ruby-version檔案, 用以指定在該專案中使用的ruby版本.

手動更換版本

# 列出所有已安裝,可使用的ruby版本
$ rbenv versions

# 設定在當前目錄下使用的版本
$ rbenv local 3.0.4

# 設定全域性使用版本
$ rbenv global 3.0.4

6) install the bundler gem


安裝bundler gem

我們推薦你安裝bundler, 在ruby使用中它是必不可少的一個工具, bundler可以幫你管理專案中所依賴的各種gem包.

$ gem install bundler

7) never fight with RVM again


PS: 過程中遇到的問題

rbenv安裝ruby時報錯: BUILD FAILED

具體報錯內容沒能及時儲存, 在so上找到一篇類似的內容:

https://www.notion.so/alfredhot/RVM-rbenv-MacOS-6d877389647f4188b4a91647f706de30#6568afb370c74aacb0b9c30f212fab1c

只是描述的問題相似, 但我並不是通過條目裡的最高贊答覆解決的問題, 我使用的反而是這一條:

so capture

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

不知道是不是因為刪除了整個CommandLineTools資料夾的緣故, 重新安裝CommandLineTools的時間十分漫長. 總之在安裝上CommandLineTools之後rbenv就可以正常安裝ruby了.

相關文章