アップスタートでデプロイするレールアプリを取得しようとしています。この一環として、rbenv ルビー (ルビー 1.9.3p392、問題ありません) を使用しています。
長い一連のデバッグを通じて、最小限のテスト ケースと思われるものにたどり着きました。このスクリプト:
require 'readline'
コマンドラインから実行すると機能しますが、次のようなスタンザで upstart を介して起動すると機能します。
script
env > /tmp/upstart.env
gem environment > /tmp/gem.env
/home/topshelf-deploy/.rbenv/shims/ruby bundle_test.rb > /tmp/bt.log 2>&1
end script
私のログファイルには以下が含まれます:
/home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/rb-readline-0.4.2/lib/rbreadline.rb:1091:in `<module:RbReadline>': undefined method `+' for nil:NilClass (NoMethodError)
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/rb-readline-0.4.2/lib/rbreadline.rb:13:in `<top (required)>'
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/rb-readline-0.4.2/lib/readline.rb:8:in `<module:Readline>'
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/rb-readline-0.4.2/lib/readline.rb:6:in `<top (required)>'
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
from /home/topshelf-deploy/.rbenv/versions/1.9.3-p392/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from bundle_test.rb:1:in `<main>'
私のgem環境は、upstartまたはインタラクティブシェルのどちらで実行しているかに応じて同一のように見えます(これも正常に動作します)。rbenv ルビーを指すように PATH を設定しました。
これを機能させる方法に関するアドバイスはありますか?私のGoogle検索では、リモートで似たようなものは何も見つかりません. 私は困惑しています。