私は、nginxとunicornを使ってRuby on Railsアプリケーションを配備しようとしています。私は私のユニコーンinitスクリプトを実行しようとすると、私は次のエラーを取得する:suが実際のユーザーとしてログインしているときと比べて、別のルビーバージョンを使用しているのはなぜですか?
$ sudo service rails_app start
Starting rails_app
-su: bundle: command not found
それは、このコマンドで実行に失敗:
su - complab -c "bundle exec unicorn -c config/unicorn.rb -E production -D"
しかし、ちょうど$USER
作品としてログインし、手動でユニコーンを実行しています罰金:
$ bundle exec unicorn -c config/unicorn.rb -E production
私は、initスクリプトで設定されたパスが正しいことを確認しました。さらに調査したところ、$USER
にはrbenv経由でインストールされたrubyバージョン2.2.0がありましたが、su - $USER -c "ruby -v"
を実行すると、1.9.3で動作していることがわかりました。
私は既にrbenv global 2.2.0
を実行していますが、まだ動作しません。
su
は、セッションを所有しているユーザーを一時的に変更できたと思いましたか? su $USER
は私がであるときと実際にはと異なるルビーバージョンを表示するのはなぜですか?$USER
としてログインしていますか?
あなたが私を助けることを願っています!
ログインしていないシェルや非対話シェルで動作するよう 'rbenv'を設定しましたか? –
いいえ、 'su - $ USER'でも動作すると思う私の' $ USER'のためだけに設定しました。私は '$ USER'の外での使用のためにそれを設定する方法がわかりません... – meyagen