У меня есть грабли, которые выглядят так (crontab):
cd /data/TheApp/current && bundle exec rake nightly_tasks[3]
--trace --silent 2>> /data/TheApp/shared/log/tasks_prod_errors.log
Все работает нормально в test и dev, но на prod я получаю эту ошибку:
rake aborted!
no such file to load -- ruby-debug
/usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in
`require'
/usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in
`block (2 levels) in require'
ОК, поэтому я проверяю свой гемфайл, и у меня есть это:
group :development, :test do
gem 'ruby-debug19', :require => 'ruby-debug', :platforms => :ruby
...
Производственная среда должна игнорировать это требование отладки ruby. Поэтому я проверяю свой RAILS_ENV, и это правильно:
$ echo $RAILS_ENV
production
Кроме того, закомментирована строка, которая требовала отладки ruby в этой задаче rake. Так что для меня это выглядит так, будто нет никакой возможности, чтобы bundle exec пытался загрузить ruby-debug в prod. Может быть, это как-то связано с gemfile.lock? Там есть запись для ruby-debug19. Но почему в этом случае моя задача с граблями загружает его?
Кроме того, выполнение команды из командной строки работает нормально. Смешение.