Развертывание Jruby: не удается найти пакет

#ruby-on-rails #deployment #jruby

#ruby-on-rails #развертывание #jruby

Вопрос:

Ошибка загрузки: нет такого файла для загрузки — bundler / setup

Попытка развернуть приложение rails как .war

Я могу запустить его через командную строку от имени моего пользователя deploy, но запуск сервера приложений от имени root при загрузке компьютера приводит к ошибке.

Я установил свой GEM_HOME в /etc/environment, но это не помогает.

 RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.9
  - RUBY VERSION: 1.9.2 (2011-10-17 patchlevel 136) [java]
  - INSTALLATION DIRECTORY: /usr/local/rbenv/versions/jruby-1_6-latest/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/rbenv/versions/jruby-1_6-latest/bin/jruby
  - EXECUTABLE DIRECTORY: /usr/local/rbenv/versions/jruby-1_6-latest/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-java-1.6
  - GEM PATHS:
     - /usr/local/rbenv/versions/jruby-1_6-latest/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "install" => "--no-rdoc --no-ri --env-shebang"
     - "update" => "--no-rdoc --no-ri --env-shebang"
  - REMOTE SOURCES:
     - http://rubygems.org/
  

Комментарии:

1. ты bundle install эд, верно?

2. да. но bundler не упаковывается в . файл войны за то, что он стоит (я не думаю, что он должен в любом случае). опять же, я могу запустить его как обычный пользователь, но не как root при запуске.

Ответ №1:

В итоге это стало проблемой с Warbler, в частности, Warbler делает некоторые предположения о том, какую версию Rubygems вы используете.

Если вы используете последнюю стабильную версию Warbler (1.3.2), используйте JRuby 1.6.4. Если вы используете JRuby 1.6.5, используйте последнюю версию Warbler с github.

Ответ №2:

У меня была аналогичная проблема с созданием файла war для Tomcat, сообщение об jruby -S warble ошибке было:

 warning: skipping bundler (d:/builders3/jruby-1.5.6/lib/ruby/gems/1.8/gems/gems/bundler-1.0.15 does not exist
  

(Кстати, эта часть «gems / gems» является поддельной; не уверен, как он построил этот путь.)

Файл war (по-видимому) был собран, но при попытке развертывания в Tomcat он выдает серьезную ошибку : can't find bundler/setup .

Моя среда: JRuby 1.5.6, Ruby 1.8.7, Rails 3.0.15. gem — v #=> 1.3.6.

Наконец-то я получил это для правильной сборки файла war и развертывания — ключевым изменением было установить warbler на 1.3.2 в Gemfile и запустить «bundle exec warble».