我发现了RVM
的奇怪行为,并且不知道如何处理它。
似乎RVM不能自动更改每个.ruby-version
&的宝石集。 .ruby-gemset
如果我在项目的根目录中打开一个终端。请查看我的意思
# 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
有用的信息:
cat .ruby-version # => 2.2.1
cat .ruby-gemset # => terminal_ui
rvm -v # => rvm 1.26.11
我尝试了rvm get stable
,但没有成功。
答案 0 :(得分:6)
RVM使用多个钩子来更改用户操作的ruby版本和gemsets:
当您在项目文件夹中打开终端时,您不会使用命令,因此不会调用钩子。但您可以在.bashrc
或.bash_profile
文件中添加以下行(在与RVM相关的行之后):
cd .
它将导致RVM使用其钩子并设置正确的gemset。有关钩子的更多信息:docs。
答案 1 :(得分:0)
您可以使用.rvmrc自动进行更改。
cd terminal_ui
touch .rvmrc
echo rvm use 2.1.1@terminal_ui >> .rvmrc
cd .