2011-06-06 11 views
7

私のRVMはrootとしてインストールされています。 私はユニコーンソケットを開始しようとしているとき、それはRVM&Unicorn deploy

[email protected]:~$ /etc/init.d/unicorn start 
Starting myapp app: /usr/bin/env: ruby: No such file or directory 
unicorn. 

を印刷します。しかし、私は

[email protected]:~$ ruby -v 
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] 

/usr/local/rvm/gems/ruby-1.9.2-p180/bin/unicornパスを入力した場合に存在します。

私のユニコーンconfigが:https://gist.github.com/1010519

答えて

10

/etc/init.d/unicorn(システムの正しいアクセスを構築します) RubyはRVM経由で管理されているためです。通常、あなたの.bashrcまたは類似のファイルが実行され、環境が設定されます。これはinitスクリプト(またはrootによって実行される可能性が高い他のもの)では起こりません。

解決策は、ラッパーを使用することです。

rvm wrapper ruby-1.9.2-p180 system ruby 

詳細情報および詳細については、同様のを扱っている、this answer of mineをチェックアウト:たとえば、次のコマンドを実行し、はrubyを実行し、その後RVMの1.9.2p180環境をロードするsystem_rubyと呼ばれるバイナリとを作成します問題。

+0

のために同じ問題と、これを持っていました。 '/etc/init.d/unicorn start DPP.cz.cc appの起動:/ usr/bin/env:ruby:そのようなファイルやディレクトリはありません。' – Kir

+0

'system_ruby'という実行可能ファイルをビルドすると、 '/ etc/init.d/unicorn'スクリプトを更新して' ruby​​'の代わりに使用するようにしてください。 –

+0

unicorn.rbとunicornバイナリへのパスしかありません。 '/ etc/init.d/unicorn'を変更するには?ここにありますhttps://gist.github.com/1010519 – Kir

0

タイプ: which rubyは(ルビーbinパスを表示)し、このように入力します。ln -s (change_to_ruby_path) /usr/bin/env/rubyはどこ見つけるために知っていません

1

シンボリックリンクでも動作しますが、

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

私はこのCOMANDを実行し、何も変わらなかった私

rvm --default use <version>