不能用capistrano和rbenv捆绑宝石

时间:2013-09-20 15:52:52

标签: ruby-on-rails ubuntu capistrano bundler

我使用capistrano部署rails app。我已在rbenv文件中设置capistrano-rbenv并使用deploy.rb

部署时出现错误消息:

Could not find rake-10.1.0 in any of the sources
 Run `bundle install` to install missing gems.

在我运行bundle install时在服务器上,我得到Could not locate Gemfile

$ gem env返回

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.23
  - RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/1.9.1
     - /home/deployer/.gem/ruby/1.9.1
     - /usr/share/rubygems-integration/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

3 个答案:

答案 0 :(得分:0)

您应通过ssh登录确认服务器上有rake 10.1。它是对您的过程的依赖。

Rake与其他任何宝石一样,所以在服务器上运行

gem install rake -v=10.1.0

如果gem which没有返回任何内容,那么您需要先安装rubygems,例如

apt-get install rubygems

确保apt-get正确配置您的PATH。您可能需要重新提供.bash_profile(或者您的shell的任何一个 - 或者再次登录以获得新的shell


如果出现更多细节,我会更新此答案。

答案 1 :(得分:0)

我最终删除了capistrano-rbenv宝石,它终于成功了。

答案 2 :(得分:0)

如果您在capistrano/bundler中要求Capfile,请务必在deploy.rb中指定gemfile位置:

# setup bundler
set :bundle_gemfile, -> { release_path.join('Gemfile') }

请参阅:https://github.com/capistrano/bundler