【发布时间】:2014-12-10 00:36:12
【问题描述】:
我的生产服务器上有一个 Rails 4.2.0.beta2 应用程序,运行 Ruby 2.1.2。我已经使用 rbenv 安装了 Ruby 2.13,但尚未使其成为全局版本。
在我的开发机器上,我安装了 Ruby 2.1.3,还使用 rbenv 并在我的应用程序中运行 bundle 来更新新的 ruby 版本的 gem。我的宝石包括
group :development do
# Use Capistrano for deployment
gem 'capistrano', '~> 3.2'
gem 'capistrano-rails', '~> 1.1.1'
gem 'capistrano-bundler'
gem 'capistrano-rbenv', '~> 2.0'
gem 'capistrano-unicorn-nginx', '~> 2.0'
gem 'capistrano-postgresql', '~> 3.0'
end
我正在使用 Capistrano 3.2.1,并在我的 deploy.rb 文件中设置了
set :rbenv_type, :user
set :rbenv_ruby, "2.1.3"
我的问题是,我的 Capistrano 配方会切换服务器 ruby 版本并加载我所有的新宝石吗?我知道它通常会自动加载新的宝石。具体来说,capistrano 会运行 rbenv global 2.1.3 来更改 ruby 版本,然后 bundle install 吗?
如果我需要手动执行此操作,更改 rbenv 中的 ruby 全局是否会导致我的应用程序由于 gem 不匹配而崩溃? ruby 版本是否通过 rbenv 在应用程序之间隔离?
我已尝试运行此部署配方,但失败了
rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions:
2.1.2
【问题讨论】:
-
检查这个网址,它可能对你有帮助stackoverflow.com/questions/1978797/…
标签: ruby-on-rails capistrano rbenv