質問: ### 前提・実現したいこと centOS6.5に、rvmとCapistranoを利用してデプロイした環境で、 centOSの起動スクリプト(/etc/init.d/hoghoge)からunicornを起動したいと思い、 シェルスクリプトを書きました。 しかし、unicorn起動のためのコマンドの、bundle exec unicornの部分でエラーが発生してしまいます。 なお、デプロイは正常に行われ、unicornも起動できています。 ### 発生している問題・エラーメッセージ 下記シェルをsudoで実行したときに、以下のメッセージが出て先に進みません。 ``` $ sudo /etc/init.d/hogehoge start Could not find rake-10.4.2 in any of the sources Run `bundle install` to install missing gems. ``` ### 該当のソースコード ``` #!/bin/sh # # chkconfig: - 85 15 . /etc/rc.d/init.d/functions PROG_NAME=hogehoge USER=execute_user APP_ROOT=/home/execute_user/hogehoge RAILS_ENV=staging PID_FILE="/var/run/hogehoge/unicorn.pid" CONFIG_FILE=$APP_ROOT/current/config/unicorn/$RAILS_ENV.rb CMD="cd $APP_ROOT/current && (RAILS_ENV=$RAILS_ENV bundle exec unicorn -c $CONFIG_FILE -D -E $RAILS_ENV )" cd $APP_ROOT/current || exit 1 case $1 in start) su $USER -c "$CMD" ;; stop) killproc -p $PID_FILE $PROG_NAME -QUIT ;; restart) killproc -p $PID_FILE $PROG_NAME -USR2 ;; *) echo >&2 "Usage: $0 " exit 1 ;; esac ``` ### 試したこと sshでexecute_userにログインし、上記スクリプトの$CMDと同じコマンドを発行したときは正常動作します。 環境変数のGEM_HOME,GEM_PATHあたりが怪しいかと思い、そのあたりの確認のために、 上記スクリプトの$CMDを `"cd $APP_ROOT/current && printenv && (RAILS_ENV=$RAILS_ENV bundle exec unicorn -c $CONFIG_FILE -D -E $RAILS_ENV )"` に変更して環境変数を出力し、sshでログインしたexecute_userのprintenvと見比べてみたのですが、特に異なった所はありません。 また、sudo権限を持つユーザーでsshログインして、 `sudo su - execute_user -c "bundle exec 'ruby -e $LOAD_PATH'"` 等として見ても、bundle exec実行の際に上記エラーで止まってしまいます。 オプションでbundlerを選べるのかとか考え、 `sudo su - execute_user -c "BUNDLE_BIN_PATH=/home/execute_user/.rvm/rubies/2.1.5/bin bundle exec 'ruby -e $LOAD_PATH'"` 等ともやってみるのですが、結果は同様です。 ### 補足情報(言語/FW/ツール等のバージョンなど) CentOS 6.5 rvm 1.26.11 rvm ruby 2.1.5 rails 3.2.22
回答: このリンク先の情報は役に立つでしょうか。 Could not find XXXX in any of the sources エラーの修正方法 - Qiita