2011-11-26 11 views
7

Quando si utilizza il 'gioiello ogni volta', ottengo un errore nel registro:Rails 3 - Ogni volta che l'errore gemma:/usr/bin/env: rubino: No such file or directory

/usr/bin/env: ruby: No such file or directory 

Funziona quando Eseguo il lavoro manualmente. Ho installato tutto con RVM.

Ho usato il comando which per trovare dove la mia installazione Ruby è, e ottengo:

[email protected]:/opt/personal$ which ruby 
/home/kevin/.rvm/rubies/ruby-1.9.2-p290/bin/ruby 

e ho controllato la mia variabile $ PATH, dove torna:

[email protected]:/opt/personal$ echo $PATH 
/home/kevin/.rvm/gems/ruby-1.9.2-p290/bin:/home/kevin/.rvm/gems/[email protected]/bin:/home/kevin/.rvm/rubies/ruby-1.9.2-p290/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

Credo che questo dovrebbe essere impostato correttamente, ma probabilmente ho torto dal momento che non funziona. Qualcuno può indicarmi la giusta direzione?

Se siete interessati, questo è ciò che la mia uscita ogni volta crontab è:

# Begin Whenever generated tasks for: rss 
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /opt/personal && script/rails runner -e development '\''FeedEntry.update_from_feed("http://lovely/blog/feed/")'\'' >> /opt/personal/log/feedzirra.log 2>&1' 

risposta

1

sto usando con successo ogni volta con RVM e fardellatrice in produzione. Qui ci sono le importanti pezzi del mio setup Capistrano che possono aiutare:

# rvm and bundler integration 
require 'rvm/capistrano' 
require 'bundler/capistrano' 

# RVM environment 
set :rvm_ruby_string, "[email protected]" 

# crontab 
set :whenever_roles, :cron 
set :whenever_command, "bundle exec whenever" 
set :whenever_environment, defer { stage } 
require 'whenever/capistrano' 

L'impostazione :whenever_environment è perché sto utilizzando una configurazione di distribuzione a più stadi. Puoi ignorarlo o impostarlo su una stringa che corrisponde alla tua configurazione, se necessario.

La maggior parte di queste informazioni sono reperibili al whenever github page nelle intestazioni di sezione "Integrazione Capistrano" e "Integrazione RVM" nel README.

Spero che questo aiuti.

6

Sei probabilmente molto oltre questo problema, ma per riferimento futuro:

ho avuto un problema simile solo mi è stato sempre

/usr/bin/env: ruby: No such file or directory 

Si è scoperto la prima riga dello script file \ rotaie stato #!/usr/bin/env ruby1.9.1, che indica al sistema di richiamarlo con ruby1.9.1 come spiegato here. Ma avrebbe dovuto essere #!/usr/bin/env ruby1.9.3 dato che era la versione che avevo installato.

Spero che questo aiuti qualcuno in futuro :)

+1

Sarebbe stato meglio specificare il percorso del file (all'interno della cartella dell'applicazione) – skv

4

Il mio problema era che Ruby è in// local/bin usr, che non si trova nel percorso di un bash senza testa. Così ho appena fatto la mia linea task rake in schedule.rb:

job_type :rake, "cd :path && PATH=/usr/local/bin:$PATH RAILS_ENV=:environment bundle exec rake :task :output" 
+0

Funziona come un incantesimo! – Ghazi

0

ho risolto il problema più o meno come Duke. Tranne che capisco che la variabile $ PATH non funziona per me.

sys_path = '/home/[user]/.rbenv/versions/[ruby_version]/bin' 

job_type :runner, "cd :path && PATH=#{sys_path} bin/rails runner -e :environment ':task' :output" 
job_type :rake, "cd :path && PATH=#{sys_path} :environment_variable=:environment bin/bundle exec rake :task --silent :output" 
2

Se nessuno di questi ha lavorato per voi, provate:

gem install rails 

Questo ha fatto il lavoro per me, spero che aiuta!

Problemi correlati