Я хочу, чтобы рабочая машина работала с приложением Ruby on Rails. Тем не менее, эта рабочая машина управляется с помощью Plesk и обеспечивает только элементарный доступ, но обещали, что она сможет запускать приложения Ruby on Rails.
Действительно, в принципе, он способен запускать Ruby на рельсах для слишком простого примера, но запускает любое приложение, требующее гемов с собственными расширениями (например, nokogiri, которое уже требуется приложением по умолчанию для rails, сгенерированным rails new
) уже терпит неудачу.
Часть журнала выглядит так:
libruby.so.2.4: cannot open shared object file: No such file or directory - /var/www/vhosts/hosting116285.a2f45.netcup.net/test.gcsb.info/vendor/bundle/ruby/2.4.0/gems/msgpack-1.2.6-x86_64-linux/lib/msgpack/msgpack.so (LoadError)
/var/www/vhosts/hosting116285.a2f45.netcup.net/test.gcsb.info/vendor/bundle/ruby/2.4.0/gems/msgpack-1.2.6-x86_64-linux/lib/msgpack.rb:11:in `require'
...
...
...
/var/www/vhosts/hosting116285.a2f45.netcup.net/test.gcsb.info/vendor/bundle/ruby/2.4.0/gems/rack-2.0.6/lib/rack/builder.rb:55:in `initialize'
config.ru:1:in `new'
config.ru:1:in `<main>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `eval'
/usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `preload_app'
/usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'
У меня есть варианты «перезапустить приложение», «установить пакеты» (который выполняет bundle install --path vendor/bundle
в соответствии с документацией) и «добавить переменные среды».
У меня очень ограниченный SSH-доступ к машине, но нет доступа ни к каким компиляторам или библиотекам.
Служба поддержки посоветовала мне «предварительно скомпилировать мои драгоценные камни», но не дала никаких конкретных советов, как это сделать. Я установил виртуальную машину для разработки, которая в некоторой степени близка к рабочей машине, но определенно еще не одинакова с точки зрения всех путей и, например, Версия ядра Linux. Я компилирую с помощью gem-compiler (https://github.com/luislavena/gem-compiler), который предположительно работает нормально, но с предварительно скомпилированными гемами в bundle / cache, и устанавливаю их через интерфейс Plesk.
Однако приложение продолжает выдавать ошибки. Предварительно скомпилированные гемы (msgpack
- один из них; изначально с нативными расширениями), похоже, неправильно связаны? Я, честно говоря, понятия не имею больше. Я уже пытался упаковать libruby.so.2.4
своей машины для разработки на производственную машину, что немного уменьшило количество ошибок, но не помогло их решить.
Есть ли у вас какие-либо предложения относительно целесообразной стратегии, позволяющей обойти данные ограничения? Я делаю это правильно, но просто невозможно заставить его работать в этой среде?
Заранее спасибо!
Роберт