Ruby on rails 在MRI和jruby之间切换的Shell脚本
在一个使用jRuby的项目中工作,但在本地工作时,我经常使用MRI,因为它更快 现在切换到是一个主要的烦恼,这就是我如何从jruby切换到MRI:Ruby on rails 在MRI和jruby之间切换的Shell脚本,ruby-on-rails,ruby,bash,shell,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,这样我就可以使用单个命令在这两个文件之间来回切换,这样团队中的每个人都可以使
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
正如评论所指出的,您需要重新获取rvm脚本的源代码。 您可能只需要再次获取
~/.bash\u profile
或~/.bash\u rc
,因为它们应该在那里获得
也就是说,我没有这个问题,但我只在MRI版本之间交换。
还有一个RVM和rbenv都支持的.ruby版本文件的规范
对于绑定bin存根,您可以使用绑定bin存根--path mri bin
再次绑定RVM脚本。@Greg Burghardt您是什么意思?我应该source bin/mri
?更改文件后,您需要重新获取位于~/.rvm/scripts
下的一些文件。也许您可以尝试先在Gemfile中更改Ruby版本,然后运行rvmuse
命令。我建议不要在开发和生产中使用不同的Ruby解释器。实际上我建议不要使用不同的版本,更不用说不同的口译语言了。虽然jruby的启动时间要长得多,但通过在本地使用它可以避免以后的麻烦。为开发和生产使用同一解释器的同一版本。如果您使用的是另一个版本,则必须使用具有生产版本的持续集成服务器。