2013-03-13 9 views
17

To jest pierwszy raz, kiedy wdrażam i dostaję błędy.Wystąpienie błędu Capistrano Deploy dla szyn - pakiet: nie znaleziono

tutaj jest mój plik deploy.rb require 'Bundler/Capistrano' zestawie: aplikacja "Aplikacja"

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 

Oto Ja dostaję błąd.

*** [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 

EDIT - I powiedział: "set: deploy_via,: remote_cache", a teraz coraz zestawie: nie znaleziono błąd chociaż

+0

Mam podobny problem, w którym pojawia się komunikat "pakiet nie został znaleziony". Jestem prawie pewien, że ma to związek z faktem, że używam RVM i jest to instalacja w .bashrc, która nie jest używana podczas korzystania z powłoki "sh". Dlatego rubin i pakunek nie są znalezione, nawet myśl, że znajdziesz je w interaktywnej powłoce (jak bash). Pracuję nad naprawą, ale nie jestem żadnym guru, więc nie mam jeszcze odpowiedzi. Jednak użyj "cap deploy: check" i "cap shell", a następnie "na pakiet", aby uzyskać informacje o błędach. –

Odpowiedz

19

OK Wydaje się, że odpowiedź jest (patrz mój komentarz do Twojego pytania):

Masz zainstalowane ostatnie oprogramowanie rvm na stacji roboczej i na serwerze (mam wersję 1.17.1).

add:

gem 'rvm-capistrano' 

do Gemfile (wewnątrz grupy: rozwój jako gem Kapistrana)

add:

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

do config/deploy.rb

To powinno wystarczyć:

11

przypadku korzystania rbenv umieścić to w .bashrc

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

przed następującą linię do Kapistrana załadować środowiska nawet jeśli połączyć z nieinterakcyjnym skorupy

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

prawdopodobnie będzie również pracować również z inicjalizacji RVM

+0

masz całkowitą rację; nie-interaktywna rzecz powłoki! – kubbing

+0

+1 zadziałało, dziękuję – equivalent8

10

Miałem te same problemy. Poniżej znajduje się rozwiązanie dla RBenv i RVM.

RBENV

zainstalować poprawnie RBenv. Zainstaluj klejnot bundler. Pefrorm "rbenv rehash".

Dodaj do deploy.rb lub wdrożyć/.rb

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

RVM

zainstalować poprawnie RVM. Zainstaluj klejnot bundler.

gem 'rvm-capistrano' 

deloy.rb lub wdrożyć/.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 

W celu uzyskania dalszych informacji o konfiguracji przeczytać: https://github.com/wayneeseguin/rvm-capistrano

powodzenia.

+0

Dobrze, jego praca dla mnie w przypadku RBENV –

Powiązane problemy