2013-03-13 11 views
17

यह पहली बार है जब मैं तैनाती और त्रुटियां प्राप्त कर रहा हूं। आवेदन, "एप्लिकेशन"Capistrano रेल के लिए असफल त्रुटि परिनियोजन - बंडल: नहीं मिला

set :scm, :git 
set :repository, "[email protected]:myname/#{application}.git" 
set :branch, "master" 

server "198.12.78.92", :web, :app, :db, primary: true 
set :user, "myname" 
set :deploy_to, "/home/#{user}/public_html/#{application}" 
set :deploy_via, :remote_cache 
set :use_sudo, false 

default_run_options[:pty] = true 
ssh_options[:forward_agent] = true 

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 

यहाँ है त्रुटि मैं हो रही है:

यहाँ मेरी deploy.rb फ़ाइल की आवश्यकता होती है 'बंडलर/Capistrano' सेट है। और अब बंडल हो रही -

*** [deploy:update_code] rolling back 
    * executing "rm -rf /home/myname/public_html/app/releases/20130313073408; true" 
    servers: ["198.12.78.92"] 
    [198.12.78.92] executing command 
    command finished in 891ms 
failed: "sh -c 'cp -RPp /home/myname/public_html/app/shared/cached-copy /home/myname/public_html/app/releases/20130313073408 && (echo dd92017bc8bb7f951df52d6a14c933e3033fd24b > /home/myname/public_html/app/releases/20130313073408/REVISION)'" on 198.12.78.92 

संपादित मैंने टिप्पणी की है "remote_cache सेट: deploy_via,": नहीं मिला त्रुटि हालांकि

+0

मुझे एक ही समस्या है, जहां मुझे "बंडल नहीं मिला" मिलता है। मुझे पूरा यकीन है कि इसे इस तथ्य के साथ करना है कि मैं आरवीएम का उपयोग करता हूं, और यह .bashrc में स्थापित है, जिसका उपयोग "sh" खोल का उपयोग करते समय नहीं किया जाता है। इसलिए रूबी और बंडल को यह भी नहीं मिला है कि आपको यह भी एक इंटरैक्टिव खोल (जैसे बैश) में मिलेगा। एक फिक्स पर काम करना लेकिन मैं कोई यूनिक्स गुरु नहीं हूं इसलिए मेरे पास अभी तक कोई जवाब नहीं है। हालांकि कुछ सूचनात्मक त्रुटि संदेशों को प्राप्त करने के लिए "कैप तैनाती: चेक" और "टोपी खोल" का उपयोग करें " बंडल" पर। –

उत्तर

19

ठीक यह (अपने प्रश्न का मेरी टिप्पणी देखें) लगता है जवाब है:

हाल ही में आपके वर्कस्टेशन और सर्वर दोनों पर आरवीएम स्थापित है (मेरे पास 1.17.1 है)।

ऐड:

gem 'rvm-capistrano' 
अपने Gemfile को

(समूह के अंदर: Capistrano मणि के रूप में विकास)

ऐड:

require "rvm/capistrano" 
require "bundler/capistrano" 

अपने config/deploy.rb

को ऐसा करना चाहिए

11

तो Capistrano में निम्न पंक्ति से पहले .bashrc

export PATH="$HOME/.rbenv/bin:$PATH" 
eval "$(rbenv init -)" 

में रखते rbenv पर्यावरण लोड भले ही गैर-सहभागी खोल

# If not running interactively, don't do anything 
[ -z "$PS1" ] && return 

शायद भी rvm आरंभीकरण के साथ भी काम करेंगे के साथ कनेक्ट का उपयोग कर

+0

आप पूरी तरह से सही हैं; गैर-इंटरैक्टिव खोल चीज! – kubbing

+0

+1 काम किया, धन्यवाद – equivalent8

10

मुझे एक ही समस्या है। नीचे आरबीएनवी और आरवीएम के लिए समाधान है।

RBENV

सही ढंग से RBenv स्थापित करें। बंडलर मणि स्थापित करें। Pefrorm 'rbenv rehash'।

जोड़ें deploy.rb या तैनात/.rb

set :default_environment, { 'PATH' => '$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH' } 

RVM

सही ढंग से स्थापित करें RVM करने के लिए। बंडलर मणि स्थापित करें।

gem 'rvm-capistrano' 

deloy.rb या तैनात/.rb

require 'rvm/capistrano' 
set :rvm_ruby_string, 'ruby-2.0.0-p247' # Change to your ruby version 
set :rvm_type, :system # :user if RVM installed in $HOME 

आगे विन्यास जानकारी के लिए पढ़ें: https://github.com/wayneeseguin/rvm-capistrano

गुड लक।

+0

अच्छा, आरबीएनवी के मामले में मेरे लिए यह काम –

संबंधित मुद्दे