Я вызываю скрипт оболочки, используя Kernel.system
из моего контроллера Rails. Сценарий оболочки может вызывать другой сценарий Ruby на основании некоторых условий. Этот скрипт на Ruby требует твиттера. Мое приложение Rails работает в Apache, используя Passenger. Теперь, когда этот скрипт Ruby вызывается из моего приложения Rails, я получаю следующую ошибку в журналах apache.
/var/www/webapps/test/twitter/twitter_post.rb:2:in `require': no such file to load -- twitter (LoadError)
from /var/www/webapps/test/twitter/twitter_post.rb:2
Тот же скрипт Ruby прекрасно работает из оболочки Linux. Теперь, если я перечислю драгоценный камень twitter в моем Gemfile, он отлично работает. Kernel.system
должен вызывать команды в подоболочке, поэтому Rails изменяет какие-либо переменные окружения в своей оболочке выполнения?