Нет такого файла для загрузки ошибки упаковщика для Rails 3

У меня есть приложение Rails 3, готовое к постановке.

У меня еще не настроен хост VPS. Поскольку я планировал, чтобы все было на общем хосте в течение первых нескольких месяцев.

Проблема:

Результат проверки пакета cd myapp:

The Gemfile's dependencies are satisfied

Пассажирская ошибка:

Error message:
    no such file to load -- bundler
Exception class:
    LoadError

Разочарование в общих хостах заключается в том, что я должен добавить эти строки на config.ru:

ENV['GEM_HOME'] = '/home/username/.gems'
ENV['GEM_PATH'] = '$GEM_HOME:/usr/lib/ruby/gems/1.8'

Все еще не повезло. Так же нет такого файла, чтобы загрузить ошибку упаковщика появляется.

Кто-нибудь получил это работает? Rails 3, Debian, общий хост (dreamhost)?

Я мог бы просто зарегистрироваться на Slicehost/Fivebean, но прежде чем я это сделаю, я хотел бы знать, почему эта ошибка появляется.

Благодарю.

6 ответов

Решение

Решение находится здесь http://rvm.beginrescueend.com/integration/passenger/. Вам нужно указать свой HTTP-сервер на оболочку passenger_ruby вместо bin /ruby.

Например, для RVM и Apache это должно быть примерно так:

PassengerRuby /Users/username/.rvm/bin/passenger_ruby

Пассажир не читает переменные окружения с config.ru до тех пор, пока не загрузится. Без вашего следа я не могу быть уверенным, но я подозреваю, что все будет работать, если вы просто побежите bundle lock, Если после этого у вас все еще возникают проблемы, в нижней части комплекта README приведен список информации об устранении неполадок, который мне нужен, чтобы точно знать, что происходит.

Хостинг Rails на общих хостах - это уже минное поле, но использование Rails 3 во всей его добротности перед выпуском, в том числе Bundler, заново изобретая рабочий процесс rubygems, - это рецепт для того, чтобы избавиться от проблем.

Я размещаю несколько сайтов Rails на Dreamhost, но только те версии, которые они официально поддерживают, иначе это просто не стоит времени. Вы можете получить VPS сейчас почти так же дешево, как Dreamhost, и вы сэкономите часы и часы своего времени.

Если вы ищете простой ответ, я бы предложил проголосовать ниже и скрестить пальцы:

Рельсы 3 на Dreamhost?

Для меня это оказалось проблемой с директивой passenger_ruby, которую в конце установки выкладывает passenger-install-nginx-module. На пути к рубину ему не хватало названия драгоценного камня.

Это работает: (исправить)

passenger_ruby /Users/dzello/.rvm/wrappers/ruby-1.9.2-p0@rails3/ruby;

Это не так: (что выплевывает пассажирский-установочный-nginx-модуль)

passenger_ruby /Users/dzello/.rvm/rubies/ruby-1.9.2-p0/bin/ruby

Обратите внимание, что строка passenger_ruby не содержит правильного пути к самоцвету - часть @rails3 (rails3 - название набора гемов) отсутствует, даже если она подходит для корня пассажира.

У меня была эта проблема с vps плюс rvm, rails3, capistrano и nginx.

Пассажир был установлен пользователем root, но сайт был установлен пользователем fox. Nginx (root) был настроен для запуска приложения от имени Fox. Когда вы вошли в систему как fox, Bundler был установлен, но с запущенным упаковщиком списка гемов, поскольку root не показывал гем.

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

Нашел какой-то случайный блог. Там было несколько строк, которые шли в "config.ru", которые, казалось, работали для меня.

ENV['GEM_HOME'] = '/home/farleyknight/.gems'
ENV['GEM_PATH'] = '$GEM_HOME:/usr/lib/ruby/gems/1.8'
require 'rubygems'
Gem.clear_paths

Может быть, это будет работать для вас..

Другие вопросы по тегам