Shell脚本在MRI和jruby之间切换

时间:2015-07-27 15:16:11

标签: ruby-on-rails ruby bash shell

使用jRuby的项目,但在我工作的本地工作时,我经常使用MRI,因为它更快。

现在切换到是一个主要的烦恼,这是我从jruby切换到MRI的方式:

rvm use ruby-2.1.5
sed -i.bak 3s/.*/ruby" '2.1.5'"/ Gemfile 

替换我的Gemfile并指定正确版本的ruby。现在我想从我的rails项目的bin/文件夹中创建两个可执行文件,一个名为mri,另一个名为jruby,因此我可以使用一个命令在两者之间来回切换,并且这样每个在团队中工作的人都可以使用相同的。

问题在于,当shell执行时,RVM不会更改当前会话中的ruby版本。所以很自然地我得到了这样的信息:

您的Ruby版本是2.0.0,但您的Gemfile指定为2.1.5

  1. 这是我尝试做的好方法吗? 我很确定我不是第一个尝试这个的人

  2. 你们已经有适合自己的东西吗?

1 个答案:

答案 0 :(得分:0)

正如评论所指出的,您需要重新获取rvm脚本。 您可能只需再次来源~/.bash_profile~/.bash_rc,因为它们应该来源。

话虽这么说,我没有rbenv这个问题,但我只在MRI版本之间交换。 RVM和rbenv都有一个.ruby-version文件see here的规范。

对于捆绑bin存根,您可specify a bin path使用bundle binstubs --path mri-bin