我有一个包含3个Rails应用程序的盒子。我不想升级其中一个应用程序,以便它使用Ruby 2.0.0,而其他应用程序在1.9.3-p394上运行。我通过Rvm安装了这些Rubies。
我正在尝试通过它的Gemfile来控制每个应用程序使用的Ruby版本。
# Gemfile
ruby '2.0.0'
所以,我在本地更改了Gemfile中的版本号,确保它全部工作,提交,现在我正在尝试将更改部署到服务器。
但是,cap deploy
此时失败
bundle install --gemfile [path to release Gemfile] --path [path to app bundle] --deployment --quiet --without development test
,因为
Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0
这在技术上是正确的,我的Gemfile确实指定了2.0.0,并且该应用当前正在1.9.3上运行。我想在捆绑之前让它改变版本。我该怎么做?
答案 0 :(得分:1)
您的PATH设置不正确。您可能没有bin:作为路径中的第一个条目。这会导致这个错误。
即使您没有使用Heroku,也值得阅读此页面以解决该问题:https://devcenter.heroku.com/articles/ruby-versions
以下是答案的链接,该答案将说明如何更改服务器上的PATH:Capistrano: Can I set an environment variable for the whole cap session?
答案 1 :(得分:0)
如果你有rvm,也许你可以尝试
rvm use 2.0.0
在打包电话之前。
答案 2 :(得分:0)
如果您正在使用rvm,请在服务器上将默认值设置为ruby 2.0.0
rvm --default use 2.0.0
解决了我从Mac部署到AWS服务器的问题 - 但我想如果我需要更新旧网站,我必须在部署之前将默认值设置回1.9.3。