RVM, Ruby 1.9.2, Rails 3, Passenger 3.0.2 (Bundler::GemNotFound)

Я использую RVM, Ruby 1.9.2, Rails 3, Passenger 3.0.2, настроенный для Nginx, я правильно настроил конфигурацию сервера. Еще одно приложение, работающее до сих пор.

Но для нового приложения при загрузке сервера

http://myapp.local (настроено так, чтобы хосты указывали на привязку сервера к конфигурации Nginx). Он возвращает (Bundler::GemNotFound ) ошибка. Как обойти это?

Спасибо.


person Harry    schedule 25.01.2011    source источник
comment
Пожалуйста, включите трассировку стека ошибки, чтобы мы могли получить больше информации о ней.   -  person raidfive    schedule 26.01.2011
comment
Это обратная связь от Passenger shorttext.com/w485coz56bs.   -  person Harry    schedule 26.01.2011
comment
он говорит Не удалось найти activemerchant-1.10.0 ни в одном из источников (Bundler::GemNotFound), но он не может найти ни одного драгоценного камня. Не связан с активным продавцом. (Проверено с перенастройкой Gemfile)   -  person Harry    schedule 26.01.2011


Ответы (4)


Хотите верьте, хотите нет, но это очень распространенная проблема, с которой сталкивается большинство разработчиков Rails. Взгляните на этот пост, в котором подробно описано исправление, которое, как я думаю, вы ищете. Удачи. http://dalibornasevic.com/posts/21-rvm-and-passenger-setup-for-rails-2-and-rails-3-apps

person ChuckJHardy    schedule 26.01.2011
comment
Оно работает. Решение также упоминается здесь rvm.beginrescueend.com/integration/passenger - person Harry; 26.01.2011
comment
Также файл RVM .rvmrc должен находиться на корневом пути. - person Harry; 26.01.2011
comment
Отличный материал, удачи, Гарри. - person kylewelsby; 26.01.2011

Чтобы получить более четкое и актуальное решение, посетите официальную страницу документации по использованию рубинов RVM с Passenger.

Для сути, добавьте

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    gems_path = ENV['MY_RUBY_HOME'].split(/@/)[0].sub(/rubies/,'gems')
    ENV['GEM_PATH'] = "#{gems_path}:#{gems_path}@global"
    require 'rvm'
    RVM.use_from_path! File.dirname(File.dirname(__FILE__))
  rescue LoadError
    raise "RVM gem is currently unavailable."
  end
end

# If you're not using Bundler at all, remove lines bellow
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'

к вашему <rails-app-path>/config/setup_load_paths.rb.

person Marius Butuc    schedule 24.03.2013

Для приложений на основе rvm и Passenger вы можете обратиться к этим документам:

https://rvm.io/integration/passenger http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerRuby

Моя особая проблема заключалась в том, что у меня не было установленного драгоценного камня пассажира в текущем наборе драгоценных камней:

$ gem list --local |grep passenger # returns nothing

Чтобы установить плагин и модуль Apache, я выполнил следующую последовательность команд:

$ gem install passenger # for a specific version use the '--version' flag
$ gem list --local |grep passenger
passenger (4.0.18)
$ passenger-install-apache2-module

После установки скрипт напечатал инструкции, как установить переменную PassengerDefaultRuby в конфигурации Apache. Вуаля! - никаких лишних скриптов и манипуляций с LOAD_PATH ;)

person Evgeniya Manolova    schedule 20.09.2013

Не знаю почему, но я установил недостающий Gem в Global Gemset и он работает!

person defmsy    schedule 18.07.2013
comment
Потому что вы установили глобальные наборы драгоценных камней. Глобально... понял? - person Victor S; 11.04.2014