asi*_*niy 1 ruby bash ubuntu rvm
我发现了一个奇怪的行为,RVM
不知道如何处理它.
看来RVM不能自动更改它的gemset根据in .ruby-version
&.ruby-gemset
if我是否正好在项目的根目录中打开终端.请回顾一下我的意思
# open a terminal directly in terminal_ui directory, which contains .ruby-version & .ruby-gemset
ls -a # ... .ruby-version .ruby-gemset
rvm gemset list
gemsets for ruby-2.2.1 (found in /home/epic/.rvm/gems/ruby-2.2.1)
=> (default)
fasteria
global
terminal
terminal_ui
# but if I cd to the top and then back again, my gemset will be
cd ../
cd terminal_ui
rvm gemset list
gemsets for ruby-2.2.1 (found in /home/epic/.rvm/gems/ruby-2.2.1)
(default)
fasteria
global
terminal
=> terminal_ui
Run Code Online (Sandbox Code Playgroud)
有用的信息:
cat .ruby-version # => 2.2.1
cat .ruby-gemset # => terminal_ui
rvm -v # => rvm 1.26.11
Run Code Online (Sandbox Code Playgroud)
我试过了rvm get stable
,但没有成功
RVM使用多个钩子来更改用户操作上的ruby版本和gemsets:
当你在项目文件夹中打开终端时,你不使用命令,所以不调用hook.但你可以在你添加以下行.bashrc
或.bash_profile
文件(RVM相关行之后):
cd .
Run Code Online (Sandbox Code Playgroud)
它将导致RVM使用其钩子并设置正确的gemset.更多关于钩子:docs.