RVM 必须 cd 到目录才能根据 .ruby-version & .ruby-gemset 更改 gemset
RVM must cd to directory to change gemset according to .ruby-version & .ruby-gemset
我发现 RVM
有一个奇怪的行为,不知道如何处理它。
如果我恰好在项目的根目录中打开终端,RVM 似乎无法根据 .ruby-version
和 .ruby-gemset
自动更改其 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
,但没有成功。
RVM 使用多个挂钩来更改 ruby 版本和用户操作的 gemsets:
- after_use
- before_install
- after_install
- after_do(在任何 'do' 操作后触发)
- after_cd(当用户使用 cd 命令时触发)
当你只在项目文件夹中打开终端时,你不使用命令,所以不会调用钩子。但是您可以在 .bashrc
或 .bash_profile
文件中添加以下行(在 RVM 相关行之后):
cd .
这将导致 RVM 使用它的钩子并设置正确的 gemset。有关钩子的更多信息:docs.
您可以使用 .rvmrc 自动更改。
cd terminal_ui
touch .rvmrc
echo rvm use 2.1.1@terminal_ui >> .rvmrc
cd .
我发现 RVM
有一个奇怪的行为,不知道如何处理它。
如果我恰好在项目的根目录中打开终端,RVM 似乎无法根据 .ruby-version
和 .ruby-gemset
自动更改其 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
,但没有成功。
RVM 使用多个挂钩来更改 ruby 版本和用户操作的 gemsets:
- after_use
- before_install
- after_install
- after_do(在任何 'do' 操作后触发)
- after_cd(当用户使用 cd 命令时触发)
当你只在项目文件夹中打开终端时,你不使用命令,所以不会调用钩子。但是您可以在 .bashrc
或 .bash_profile
文件中添加以下行(在 RVM 相关行之后):
cd .
这将导致 RVM 使用它的钩子并设置正确的 gemset。有关钩子的更多信息:docs.
您可以使用 .rvmrc 自动更改。
cd terminal_ui
touch .rvmrc
echo rvm use 2.1.1@terminal_ui >> .rvmrc
cd .