2010-03-15 18 views
5

Sto eseguendo un crontab che esegue un'attività di rake. Sto ottenendo il seguente errore (con MAILTO da crontab):Crontab + rails3 + bundler

rake aborted! 
no such file to load -- bundler 
/Users/Mendel/Sites/misnooit/Rakefile:4 
(See full trace by running task with --trace)

sto usando rvm con:
rubino: rubino 1.9.1p378
: Rotaie 3.0.0.beta rotaie
$ GEM_HOME : /Users/Mendel/.rvm/gems/ruby-1.9.1-p378
bundler: Bundler (0.9.11)

l'errore è piuttosto auto esplicativo, ma io non sono in grado di risolvere il problema. C'è qualcuno con più conoscenza su questo argomento? Grazie in anticipo.

+0

sei sicuro che il tuo utente carica la configurazione di rvm? – shingara

+0

Penso di esserlo, ma puoi mostrarmi come lo faresti? Forse sto facendo qualcosa di sbagliato. – user288764

risposta

1

Solo supposizioni: è Ruby 1.9.1p378 il tuo Ruby predefinito?

Penso che sia non così si può solo eseguire rvm --defaults "ruby-1.9.1-p378" Se questo non aiuta, sei sicuro bundler è stato installato quando è stato utilizzato Ruby 1.9?

Inoltre, nell'ambiente di test/produzione, è possibile eseguire cron con un utente diverso da te. Quindi ti suggerisco di installare rvm come "root" e impostare (ancora come root) un RVM predefinito che sarà l'impostazione predefinita per tutti gli utenti del sistema. Ovviamente, è possibile sovrascrivere questo per utente.

1

Ho avuto una buona esperienza con http://github.com/javan/whenever

Esso utilizza un modem DSL Ruby per gestire le attività cron e gestisce l'impostazione tutta la magia dell'ambiente.

every 3.hours do 
    runner "MyModel.some_process" 
    rake "my:rake:task" 
end 
1

avere il vostro eseguire il comando con --trace asserito per garantire non ci sia qualcosa di ovvio nel comando rake, ma quello che si potrebbe fare è catena di comandi crontab

rvm 1.9.1;rake do_whatever_task 

In questo modo caricherà l'ambiente rubino ogni volta prima di eseguire il rake.

6

Ho appena sperimentato questo. Il problema per me era che le istanze di rastrello e rubino che usavo venivano create localmente e installate in/usr/local/bin. Ci sono altre versioni in/usr/bin (deve controllare cosa ho installato usando apt-get in passato ..).

Così, nel mio file crontab ho impostato il percorso utilizzando

PATH =/usr/local/bin:/usr/bin:/bin

(che stavo vedendo come PATH =/usr/bin:/bin nelle e-mail crontab fallite)

e funziona.

0

Ho avuto un problema simile questo fine settimana, ho scoperto che il mio Rake Gem è stato aggiornato a 0.90 è necessario il rake 0.8.7. Questo ha risolto il problema dalla mia parte.