Sto cercando di utilizzare correttamente Capistrano e RVM per distribuire la mia applicazione Ruby on Rails 3.2.2 sul computer remoto che esegue Ubuntu 10.04 LTS. È cuciture che ho risolto il mio problema precedente relativo allo "Rvm - Capistrano integration on Linux Ubuntu". Tuttavia, sulla distribuzione ottengo il seguente errore relativo alla gemma DelayedJob:Come risolvere "È necessario aggiungere i daemon gem 'al proprio Gemfile se si desidera utilizzarlo" Errore nella modalità di produzione?
...
* executing "cd /srv/www/<APP_NAME>/releases/20120314135318 && bundle install"
servers: ["<DOMAIN>"]
[<DOMAIN>] executing command
[<DOMAIN>] rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.3-p125' -c 'cd /srv/www/<APP_NAME>/releases/20120314135318 && bundle install' ** [out :: <DOMAIN>] Using rake (0.9.2.2)
** [out :: <DOMAIN>] Using builder (3.0.0)
...
** [out :: <DOMAIN>] Using daemons (1.1.8)
** [out :: <DOMAIN>] Using delayed_job (3.0.1)
** [out :: <DOMAIN>] Using delayed_job_active_record (0.3.2)
...
** [out :: <DOMAIN>] Your bundle is complete! It was installed into /srv/www/<APP_NAME>/shared/bundle
...
[<DOMAIN>] executing command
[<DOMAIN>] rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.3-p125' -c 'cd /srv/www/<APP_NAME>/current; RAILS_ENV=production script/delayed_job stop'
*** [err :: <DOMAIN>] /usr/local/rvm/gems/ruby-1.9.3-p125/gems/delayed_job-3.0.1/lib/delayed/command.rb:4:in `rescue in <top (required)>'
*** [err :: <DOMAIN>] :
*** [err :: <DOMAIN>] You need to add gem 'daemons' to your Gemfile if you wish to use it.
*** [err :: <DOMAIN>] (
*** [err :: <DOMAIN>] RuntimeError
*** [err :: <DOMAIN>])
*** [err :: <DOMAIN>] from /usr/local/rvm/gems/ruby-1.9.3-p125/gems/delayed_job-3.0.1/lib/delayed/command.rb:1:in `<top (required)>'
*** [err :: <DOMAIN>] from /usr/local/rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:251:in `require'
*** [err :: <DOMAIN>] from /usr/local/rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:251:in `block in require'
*** [err :: <DOMAIN>] from /usr/local/rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:236:in `load_dependency'
*** [err :: <DOMAIN>] from /usr/local/rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.2.2/lib/active_support/dependencies.rb:251:in `require'
*** [err :: <DOMAIN>] from script/delayed_job:4:in `<main>'
command finished in 7512ms
*** [deploy:update_code] rolling back
...
failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'ruby-1.9.3-p125' -c 'cd /srv/www/<APP_NAME>/releases && tar xzf /tmp/20120314140345.tar.gz && rm /tmp/20120314140345.tar.gz'" on <DOMAIN>
Anche se la spiegazione errore è "È necessario aggiungere Gem 'demoni' al vostro Gemfile se si desidera utilizzarlo", ho già Aggiunta la daemons
gemma alla mia Gemfile
(dall'uscita sopra si può anche notare che io sono "utilizzando demoni (1.1.8)"):
...
gem 'delayed_job'
gem 'delayed_job_active_record'
gem 'daemons'
...
Quindi, qual è il problema? Come posso risolverlo?
Nel mio file deploy.rb
ho:
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'rvm/capistrano'
set :rvm_ruby_string, 'ruby-1.9.3-p125'
set :rvm_type, :user
require 'bundler/capistrano'
...
P.S.: Terminale finestra di output:
$ ruby -v
> ruby 1.9.3p125 (2012-02-16 revision 34643) [i686-linux]
$ which ruby
> /usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby
lo script/delayed_job è tuo o no? Richiede bundler all'interno? – shingara
@shingara - Cosa intendi con "è tuo o no"? Con "script/delayed_job" a quale file ti stai riferendo? Tuttavia, nel codice/output di cui sopra è tutto "mio" (cioè, il codice e gli output sono "reali"/"ciò che sto usando e ottenendo"). – user502052
nel log passato il comando non è riuscito: 'RAILS_ENV = script di produzione/delayed_job stop' Voglio sapere se questo script è stato generato o lo si crea. – shingara