2012-02-07 5 views
0

上のすべての宝石をインストールする必要があります(キャップ​​デプロイ:寒さを)し、それが宝石をインストールするために私を求めておきます。ほんの一例:第一デプロイ - 私は、サーバーへの1時間のために展開しようとしているサーバー

*** [err :: ip-address] Could not find net-ssh-2.3.0 in any of the sources 

ワンショットで必要なすべての宝石をインストールするには何かできますか?

deploy.rb

set :application, "myapp" 
set :repository, "repo goes here" 
set :scm, :git 
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none` 

role :web, "ipaddress"       # Your HTTP server, Apache/etc 
role :app, "ipaddress"       # This may be the same as your `Web` server 
role :db, "ipaddress", :primary => true # This is where Rails migrations will run 
# role :db, "your slave db-server here" 

# if you're still using the script/reaper helper you will need 
# these http://github.com/rails/irs_process_scripts 

set :deploy_to, "/home/deploy/#{application}" 
set :rails_env, 'production' 
set :branch, "master" 

set :scm, :git 
set :user, "user" 
set :runner, "user" 
# ssh_options[:port] = 2232 
set :use_sudo, false 
set :normalize_asset_timestamps, false 


# If you are using Passenger mod_rails uncomment this: 
namespace :deploy do 
    task :start do ; end 
    task :stop do ; end 
    task :restart, :roles => :app, :except => { :no_release => true } do 
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" 
    end 
end 

namespace :bundler do 
    task :create_symlink, :roles => :app do 
    shared_dir = File.join(shared_path, 'bundle') 
    release_dir = File.join(current_release, '.bundle') 
    run("mkdir -p #{shared_dir} && ln -s #{shared_dir} #{release_dir}") 
    end 

    task :bundle_new_release, :roles => :app do 
    bundler.create_symlink 
    run "cd #{release_path} && bundle install --without test" 
    end 

    task :lock, :roles => :app do 
    run "cd #{current_release} && bundle lock;" 
    end 

    task :unlock, :roles => :app do 
    run "cd #{current_release} && bundle unlock;" 
    end 
end 

after "deploy", "deploy:cleanup" 

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" 
end 

gemfile:ここ

は私のdeploy.rbファイル、およびgemfileある

source 'http://rubygems.org' 

gem 'rails', '3.1.3' 

# Bundle edge Rails instead: 
# gem 'rails',  :git => 'git://github.com/rails/rails.git' 



gem 'json' 
gem 'rake', '0.9.2.2' 
gem 'mysql2' 
gem 'capistrano' 
gem 'therubyracer' 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.1.5' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# Use unicorn as the web server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'ruby-debug' 
+1

Thポストはあなたを助けるかもしれないです:http://stackoverflow.com/questions/7706485/do-i-need-to-install-bundler-manually-on-my-server-before-being-able-to-deploy-w – DemitryT

+0

ありがとう、私はそれを見た - 私はマシンにバンドラを持っているが、私のアプリはまだ展開されていないので、私はインストールをバンドルすることはできません。 – fatfrog

+0

私は、以下の追加の回答をしてみてください、私は「バンドラ/カピストラーノ」が表示されていないpassanger_rubyはカピストラーノを使用していることと同じである場合、ファイル – DemitryT

答えて

0

試しにこれを追加し、あなたのdeploy.rbへ

set :bundle_without, [:development, :test] 
require 'bundler/capistrano' 
+0

私はまだ取得していることが、試してみました:** [アウト:: IPアドレス]本当に奇妙だソース – fatfrog

+0

HMMのいずれかにネットのssh-2.3.0を見つけることができませんでした、私はそれはそれを行うだろうと思いました。このページをチェックしましたか? http://gembundler.com/deploying.html – DemitryT

+0

私はちょうど下部に気づいた、このエラーがあります:失敗しました:「のenv PATH =は/ opt /ルビー/ binに/:$ PATHのsh -c「CD /ホーム/展開/トマホーク/ releases/20120207210055 && bundle exec rake RAILS_ENV = production RAILS_GROUPS =資産資産:プリコンパイル '" – fatfrog

1

多分、

run "cd #{release_path} && bundle install --path=you_gem_path --without #{bundle_without.join(' ')}" 

にライン

run "cd #{release_path} && bundle install --without test" 

はあなたがまた、あなたがファイル

の初めにそれを設定することができます 設定する必要がbundle_without

$ echo $GEM_PATH 

を実行して、宝石のパスを見つけることができますです

set :bundle_without,  [:development, :test]