【发布时间】:2015-10-17 20:41:00
【问题描述】:
从事一个使用 jRuby 的项目,但是当我在本地工作时,我经常使用 MRI,因为它更快。
现在在 to 之间切换是一个主要的烦恼,这就是我从 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
这是我尝试做的一个好方法吗? 很确定我不是第一个尝试这个的人
你已经有适合你的东西了吗?
【问题讨论】:
-
您需要再次
sourceRVM 脚本。 -
@Greg Burghardt 你是什么意思?我应该
source bin/mri? -
您需要在更改 Gemfile 后重新获取位于
~/.rvm/scripts下的一些文件。也许您尝试首先 更改 Gemfile 中的 Ruby 版本,然后运行 rvm use命令。 -
我建议不要在开发和生产中使用不同的 ruby 解释器。我实际上建议不要使用不同的版本,更不用说不同的解释语言了。虽然 jruby 的启动时间要长得多,但以后在本地使用它可以省去麻烦。
-
我在这里和@joonty 在一起。对开发和生产使用相同版本的相同解释器。如果您使用的是不同的服务器,那么必须使用带有生产版本的持续集成服务器。
标签: ruby-on-rails ruby bash shell