首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RVM必须cd到目录,以便根据..ruby version和..ruby gemset更改gemset

RVM必须cd到目录,以便根据..ruby version和..ruby gemset更改gemset
EN

Stack Overflow用户
提问于 2015-06-02 08:42:45
回答 2查看 638关注 0票数 1

我在RVM身上发现了一种奇怪的行为,并且不知道如何处理它。

如果我在项目的根上打开一个终端,那么RVM似乎不能根据.ruby-version & .ruby-gemset自动更改它的RVM集。请回顾一下我的意思

代码语言:javascript
复制
# 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

有用的信息:

代码语言:javascript
复制
 cat .ruby-version # => 2.2.1
 cat .ruby-gemset # => terminal_ui
 rvm -v # => rvm 1.26.11

我试过rvm get stable,但没有成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-02 09:15:36

RVM使用几个钩子来更改用户操作上的ruby版本和宝石集:

  • after_use
  • before_install
  • after_install
  • after_do (在任何“do”操作后触发)
  • after_cd (每当用户使用cd命令时触发)

当您在项目文件夹中打开终端时,不使用命令,因此不会调用钩子。但是您可以在.bashrc.bash_profile文件中添加以下行(在与RVM相关的行之后):

代码语言:javascript
复制
cd .

它将导致RVM使用它的钩子并设置正确的宝石集。更多关于钩子的信息:文档

票数 7
EN

Stack Overflow用户

发布于 2015-06-02 09:28:52

您可以自动使用.rvmrc进行更改。

代码语言:javascript
复制
cd terminal_ui
touch .rvmrc
echo rvm use 2.1.1@terminal_ui >> .rvmrc
cd .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30591281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档