При развертывании приложения rails через capistrano я получаю следующую ошибку:

[example.com] executing command
 ** [out :: example.com] /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [] (Gem::LoadError)
 ** [out :: example.com] from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
 ** [out :: example.com] from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1231:in `gem'
 ** [out :: example.com] from /usr/local/bin/bundle:22:in `<main>'
    command finished in 181ms

У меня Ruby установлен в / usr / local, я не использую ничего похожего на RVM. Вот мой deploy.rb:

 require 'bundler/capistrano'
load 'deploy/assets'

set :default_environment, {
  'PATH' => "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:$PATH",
  "RUBY_VERSION" => "ruby 1.9.3",
  "GEM_HOME" => "/usr/local/lib/ruby/gems/1.9.1/gems",
  "GEM_PATH" => "/usr/local/lib/ruby/gems/1.9.1/gems",
  "BUNDLE_PATH" => "/usr/local/lib/ruby/gems/1.9.1/gems"
}

set :application, "appname"
set :repository, "git@github.com/something.git"
set :user, "thebestuserever"
set :scm_username, "somegithubaccount"
set :use_sudo, true
set :branch, "master"
ssh_options[:forward_agent] = true
default_run_options[:pty] = true

set :scm, :git
set :deploy_to, "/application/path"

role :web, "example.com"
role :app, "example.com"
role :db, "example.com", :primary => true

namespace :deploy do
  desc "Restarting mod_rails with restart.txt"
  task :restart, :roles => :app, :except => { :no_release => true } do
      run "touch #{current_path}/tmp/restart.txt"
  end

  [:start, :stop].each do |t|
      desc "#{t} task is a no-op with mod_rails"
      task t, :roles => :domain do ; end
  end
end

task :after_update_code do  
  run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
  run "cd #{release_path}; rake assets:precompile RAILS_ENV=production "
  run "cd #{release_path}; ./script/delayed_job restart"
end

Я уверен, что мне просто не хватает здесь чего-то простого. Но я не могу его найти.

2
agmcleod 24 Янв 2013 в 22:46

1 ответ

Лучший ответ

Я удалил вызов set :default_environment. У меня это было в более старом скрипте, который, я думаю, был в основном для RVM, а не для установки системы. Избавление от этого исправлено. Так что я предполагаю, что путь каким-то образом запутался.

3
agmcleod 25 Янв 2013 в 00:47