2

我有一个盒子,上面有 3 个 Rails 应用程序。我不想升级其中一个应用程序以使其使用 Ruby 2.0.0,而让其他应用程序在 1.9.3-p394 上运行。我通过 Rvm 安装了这两个红宝石。

我试图通过它的 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 上运行。我试图让它在捆绑之前改变版本。我怎么做?

4

3 回答 3

1

您的 PATH 设置不正确。您可能没有 bin: 作为路径中的第一个条目。这会导致这个错误。

即使您没有使用 Heroku,也值得阅读此页面以解决该问题:https ://devcenter.heroku.com/articles/ruby-versions

这是一个答案的链接,它将解释如何在服务器上更改 PATH:Capistrano:我可以为整个 cap 会话设置一个环境变量吗?

于 2013-03-26T02:20:05.920 回答
0

如果您使用 rvm,请将服务器上的默认设置为 ruby​​ 2.0.0

rvm --default use 2.0.0

解决了我从我的 mac 部署到 AWS 服务器的问题 - 但我想如果我需要更新我的旧站点,我必须在部署之前将默认设置回 1.9.3。

于 2013-09-11T16:31:22.487 回答
0

如果你有 rvm 也许你可以尝试做

rvm use 2.0.0

在您的捆绑电话之前。

于 2013-03-26T03:43:40.303 回答