2013-12-14 5 views
2

안녕하세요 저는 여기에 기본적인 것을 놓치고 있다고 생각합니다.Capistrano가 생산중인 보석을 찾을 수 없습니다.

Capistrano를 사용하여 '통합'에 배포 한 다음 '테스트'에 배포하고 있습니다.

보석을 추가 한 다음 Capistrano와 함께 웹 사이트 ('testing') 중 하나에 성공적으로 배포 할 수 없습니다. 그러나 다른 하나 ('통합')에 성공적으로 배포 할 수 있습니다.

bootstrap-sass '~> 3.0.2.0'을 추가하려고하는데 추가하려고 할 때 다른 오류가 발생합니다. 나는 '캡 테스트 배포'와 '테스트'에 배포하려고 할 때

나는

whenever --update-crontab registration --set environment=testing --roles db" 
    servers: ["test.calm.dhamma.org"] 
    [test.calm.dhamma.org] executing command 
*** [err :: test.calm.dhamma.org] /home/calm/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize' 
*** [err :: test.calm.dhamma.org] : 
*** [err :: test.calm.dhamma.org] Could not find bootstrap-sass-3.0.3.0 in any of the sources 
*** [err :: test.calm.dhamma.org] (
*** [err :: test.calm.dhamma.org] Bundler::GemNotFound 
*** [err :: test.calm.dhamma.org]) 
*** [err :: test.calm.dhamma.org] from /home/calm/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!' 
*** [err :: test.calm.dhamma.org] from /home/calm/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize' 
*** [err :: test.calm.dhamma.org] from /home/calm/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs' 
*** [err :: test.calm.dhamma.org] from /home/calm/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for' 
*** [err :: test.calm.dhamma.org] from /home/calm/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs' 
etc.. 

를 읽고 에러가 나는 더 성공 해답을 찾는 긴 시간을 보냈습니다 얻을. 나는 가지고있다

require 'bundler/capistrano' 

내 capfile.rb에서 볼 수 있습니다.

require "rvm/capistrano" 

#set :rvm_type, :system # :user is the default 

set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") # Read from local system 
puts "RVM ruby string = " 
puts rvm_ruby_string 
#set :rvm_ruby_string, :local 
# 
set :rvm_autolibs_flag, "read-only" 

before 'deploy:setup', 'rvm:install_rvm' 
before 'deploy:setup', 'rvm:install_ruby' 


require 'bundler/capistrano' 

require 'capistrano/ext/multistage' 
set :stages, ["integration","testing", "production"] 
set :default_stage, "integration" 

# use whenever gem. Only if you have chron jobs 
require "whenever/capistrano" 
set :whenever_command, "bundle exec whenever" 

set :application, "registration" 
set :repository, "ssh://[email protected]/home/gitrepo/repositories/registration" 
#set :repository, "ssh://[email protected]/home/gitrepo/repositories/registration" 

set :scm, :git 
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none` 


set :deploy_to,  "/home/calm/wwwshare/registration" 
set :user,   "calm" 
set :use_sudo,  false 
set :ssh_options,  { :forward_agent => true } 

#set :deploy_to, "/home/calm/wwwshare/#{application}" 
set :deploy_via, :remote_cache 

#before "deploy:bundle_gems","deploy:symlink_vendor" 
#after "deploy", "deploy:bundle_gems" 
#after "deploy:bundle_gems", "assets:symlink" 
#after "assets:symlink", "deploy:copy_database_configuration" 
#after "deploy:copy_database_configuration", "deploy:restart" 

# http://beginrescueend.com/integration/capistrano/ 

#set :default_environment, { 
# 'PATH' => "/home/calm/.rvm/gems/ruby-1.9.3-p448/bin:/home/calm/.rvm/gems/[email protected]/bin:/home/calm/.rvm/bin:/home/calm/.rvm/rubies/ruby-1.9.3-p448/bin:$PATH", 
# 'RUBY_VERSION' => 'ruby-1.9.3-p448', 
# 'GEM_HOME'  => '/home/calm/.rvm/gems/ruby-1.9.3-p448', 
# 'GEM_PATH'  => '/home/calm/.rvm/gems/ruby-1.9.3-p448:/home/calm/.rvm/gems/[email protected]', 
# 'BUNDLE_PATH' => '/home/calm/.rvm/gems/ruby-1.9.3-p448' # If you are using bundler. 
#} 

#task :testing do 
# server 'THE-SERVER.mudbugmedia.com', :web, :app, :db, :primary => true 
# set :deploy_to, '/home/calm/wwwshare/#{application}' 
# set :rails_env, 'testing' 
# set :branch, 'master' 
#end 

after 'deploy:setup', :create_configs 
desc 'Create the shared/config dir for various config files' 
task :create_configs do 
    run "mkdir -p #{shared_path}/config" 
    run "touch #{shared_path}/config/database.yml" 
end 

after 'deploy:finalize_update', :update_configs 
desc 'Copy the shared config files to the release config dir' 
task :update_configs do 
    run "cp -Rf #{shared_path}/config/* #{release_path}/config" 
end 

#after 'deploy:finalize_update', :bundle_gems 
#desc "Install gems ??? or require 'bundler/capistrano'" 
#task :bundle_gems do 
# run "cd #{release_path} && bundle install --path vendor/gems" 
#end 


# If you are using Passenger 
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 

내 개발 및 '통합'사이트 및 설치 번들 실행에 대한 것들과 일치하는 Gemfile 거기 Gemfile.lock을 편집하여 '테스트'웹 사이트에서 직접 보석 설치를 시도했습니다.

bundle exec gem list 
Could not find bootstrap-sass-3.0.2.1 in any of the sources 
Run `bundle install` to install missing gems. 

캡 테스트 배포 여전히 보석이 설치되어 작동하는 사이트에뿐만 아니라

실패

는 그럼 난 때 다음

bundle show bootstrap-sass 
....../.rvm/gems/ruby-1.9.3-p448/gems/bootstrap-sass-3.0.2.1 

얻을 '쇼를 번들' 아래에 표시된 바와 같이 :

bundle show bootstrap-sass 
...../registration/shared/bundle/ruby/1.9.1/gems/bootstrap-sass-3.0.2.1 

이것은 작동하지 않는 사이트에 수동으로 설치 한 위치와 다릅니다.

그래서, 내 질문은 :

왜 카피 스트라 노 다른 하나 개의 사이트에 새로운 보석을 추가하지만 성공에 실패하는?

시도한대로 작동하지 않는 사이트에 보석을 직접 설치해야합니까? 그리고 그것이 좋은 생각이라면, 어떻게 그것을 올바른 장소에 설치하게 할 수 있습니까? 라이언

+0

다른 루비 버전에 문제가있는 것 같습니다. 내 로컬 및 1.9.7 p484했다 1.9.7 p448했다. 우리는 각 머신의 모든 버전을 동일한 머신으로 설정 했으므로 이제 Gemfile의 변경 사항에 따라 Capistrano를 사용하여 젬을 업데이트 할 수 있습니다. – ryan2johnson9

답변

0

지금 답변 내 댓글을 : 그것은 지금 노력하고 있습니다

- 루비 버전을 다른에 문제가 있었다 것 같다. 내 로컬 및 1.9.7 p484했다 1.9.7 p448했다. 우리는 각 머신의 모든 버전을 동일한 머신으로 설정 했으므로 이제 Gemfile의 변경 사항에 따라 Capistrano를 사용하여 젬을 업데이트 할 수 있습니다.

관련 문제