我在运行Ruby 2.1.2的 生产环境 服务器上有一个Rails 4.2.0.beta2应用程序 . 我已经使用rbenv安装了Ruby 2.13,但尚未将其设置为全局 .
在我的开发机器上,我已经安装了Ruby 2.1.3,也在我的应用程序中使用rbenv和run 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版本然后捆绑安装吗?
如果我需要手动执行此操作,将更改rbenv中的ruby全局会导致我的应用程序由于宝石不匹配而爆炸吗? rbenv是否在应用程序之间隔离了ruby版本?
我试图运行此部署配方,但它失败了
rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions:
2.1.2
1 回答
我不得不
然后我跑了
再次,这一切都很好 . 我不知道我的deploy.rb中的ruby_version指令应该做什么 .