rbenv rbenv可以管理多個版本的ruby。可以分為3種範圍(或者說不同生效作用域)的版本: local版:本地,針對各項目範圍 global版:全局,沒有shell和local版時使用global版 shell版:當前終端,只針對當前所在終端 查找優先順序為 。 1.安裝rbenv 2.安裝r ...
rbenv
rbenv可以管理多個版本的ruby。可以分為3種範圍(或者說不同生效作用域)的版本:
local版:本地,針對各項目範圍
global版:全局,沒有shell和local版時使用global版
shell版:當前終端,只針對當前所在終端
查找優先順序為shell>local>global
。
1.安裝rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL -l
2.安裝ruby-build工作,可自動編譯安裝ruby。它可以作為rbenv的插件。
cd
git clone https://github.com/rbenv/ruby-build.git
PREFIX=/usr/local ./ruby-build/install.sh
3.選擇ruby版本,安裝ruby
rbenv install --list
rbenv install 2.6.2
4.如果慢,可以從https://cache.ruby-china.com/pub/ruby/將ruby對應版本文件下載下來,然後安裝。但註意先設置環境變數,並且在此環境變數url之後加上特殊符號"#"或"?":
# 以ruby-2.6.2為例
wget https://cache.ruby-china.com/pub/ruby/2.6/ruby-2.6.2.tar.bz2 -P /root
RUBY_BUILD_MIRROR_URL='file:///root/ruby-2.6.2.tar.bz2#' rbenv install 2.6.2 --verbose
如果編譯失敗,可能是少了一些依賴包,在編譯失敗的時候會提示你執行什麼命令來安裝這些包(非常人性)。比如需要readline-devel包。
yum -y install readline-devel
5.安裝完ruby或切換了ruby之後,都需要執行rehash操作,讓rbenv知道剛纔新裝了一個ruby。
rbenv rehash
6.設置ruby版本,即local版、global版、shell版
rbenv global 2.6.2
多版本ruby
上面已經裝了一個ruby了,現在再裝一個ruby 2.6.1:
# 以ruby-2.6.1為例
$ wget https://cache.ruby-china.com/pub/ruby/2.6/ruby-2.6.1.tar.bz2 -P /root
$ RUBY_BUILD_MIRROR_URL='file:///root/ruby-2.6.1.tar.bz2#' rbenv install 2.6.1 --verbose
$ rbenv rehash
現在,就有了兩個版本,可以使用rbenv versions
命令查看(複數versions表示列出已裝所有版本,單數version表示列出當前所使用的ruby版本)。
$ rbenv versions
現在,就可以通過rbenv [local | shell | global] VERSION
來設置多版本共存的ruby了。
比如:
$ rbenv local 2.6.1
$ rbenv version
rbenv命令行
$ rbenv --help
Usage: rbenv <command> [<args>]
Some useful rbenv commands are:
commands 列出rbenv的所有命令列表
local 設置或顯示local application-specific Ruby version
global 設置或顯示global Ruby version
shell 設置或顯示shell-specific Ruby version
install 使用ruby-build安裝指定的ruby版本
uninstall 卸載指定版本
rehash rehash,每次安裝完ruby後都要執行,否則rbenv不知道剛纔新裝ruby的信息
(rbenv通過檢查~/.rbenv/shims來獲取ruby信息)
version 顯示當前ruby版本
versions 顯示所有已裝ruby版本
which 顯示ruby命令的全路徑
whence 列出包含該可執行命令的所有ruby版本
See `rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/rbenv/rbenv#readme
完整的命令列表可查看rbenv commands
,各命令使用方法,可查看rbenv help COMMAND
。