2011-06-06 9 views

risposta

10

/etc/init.d/unicorn non sa dove trovare Ruby perché è gestito tramite RVM. Normalmente, il tuo file .bashrc o simile viene eseguito e imposta l'ambiente; questo non accade negli script di init (o probabilmente in qualsiasi altra cosa eseguita da root).

La soluzione è utilizzare i wrapper. Ad esempio, per creare un binario chiamato system_ruby che carica fino 1.9.2p180 ambiente di RVM e poi esegue ruby, eseguire il seguente:

rvm wrapper ruby-1.9.2-p180 system ruby 

Per maggiori informazioni e ulteriori dettagli, controlla this answer of mine, che si rivolge a un simile problema.

+0

ho eseguito questo comand e nulla era cambiato. '/etc/init.d/unicorn start Avvio dell'app DPP.cz.cc:/usr/bin/env: ruby: Niente file o directory unicorn. – Kir

+0

Se si crea un eseguibile chiamato' system_ruby' è necessario per aggiornare lo script '/ etc/init.d/unicorn' per usarlo al posto di' ruby'. –

+0

Ci sono solo percorsi per unicorn.rb e per unicorn binario. Come cambiare il mio '/ etc/init.d/unicorn'? È qui https://gist.github.com/1010519 – Kir

0

Tipo: which ruby (visualizza il percorso rubino bin) quindi digitare questo: ln -s (change_to_ruby_path) /usr/bin/env/ruby (costruire l'accesso corretto per il proprio sistema)

1

Symlink funziona anche,

which ruby<your version> 
ln-s /ruby/path/ruby<your version> /ruby/path/ruby 
0

Ho avuto lo stesso problema e questo per me

rvm --default use <version>