Недавно я обратился к поддержке Dreamhost (не очень хороший опыт), и в конце концов они рекомендовали заморозить драгоценные камни в приложении. В лучшем случае это частичное решение, потому что, похоже, оно работает для некоторых драгоценных камней, а не для других.
Вместо
require 'sinatra'
У меня есть:
require 'vendor/gems/sinatra-0.9.4/lib/sinatra'
Замораживание драгоценных камней рассматривается в другом месте, но кратко: чтобы подготовиться к этому, нужно сделать
mkdir vendor/gems
cd vendor/gems
gem unpack sinatra
В результате этого изменения я никогда не получаю экран ошибки запуска, цитируя sinatra как файл, который он не может загрузить. Тем не менее, я все еще получаю его за некоторые другие драгоценные камни, которые требуют себя или части других драгоценных камней. Не слишком ясно о деталях, но я работаю над идеей взлома установленных гемов, чтобы каждый «требуемый» использовал путь непосредственно из моей библиотеки «vendor».