У меня проблема с тем, что моя среда RubyGems неверна при запуске приложения Rails из Upstart в Ubuntu. В моем сценарии Upstart я использую setuid www
, затем запускаю скрипт-обертку, который в конечном итоге запускает Puma.
Из командной строки, как пользователь www
, вывод gem env
- это то, что я ожидаю:
- GEM PATHS:
- /var/lib/gems/2.5.0
- /home/www/.gem/ruby/2.5.0
- /usr/share/rubygems-integration/2.5.0
- /usr/share/rubygems-integration/all
Если я запускаю gem env
из сценария Upstart, после установки setuid www
я получаю это:
- GEM PATHS:
- /var/lib/gems/2.5.0
- /.gem/ruby/2.5.0
- /usr/share/ruby
Это приводит к тому, что драгоценные камни устанавливаются не в том месте или не могут быть найдены, потому что они были установлены с помощью --user-install
, помещая их в /home/www/.gem/
.
На данный момент я могу явно установить $GEM_HOME
и $GEM_PATH
, но было бы разумнее просто полагаться на среду RubyGems по умолчанию для пользователя www
.