Нет такого файла, чтобы загрузить ошибку упаковщика для Rails 3 - PullRequest
8 голосов
/ 03 апреля 2010

У меня есть приложение 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 ]

9 голосов
/ 29 апреля 2010

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

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

PassengerRuby /Users/username/.rvm/bin/passenger_ruby
4 голосов
/ 03 апреля 2010

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

3 голосов
/ 03 апреля 2010

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

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

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

Рельсы 3 на Dreamhost?

2 голосов
/ 02 февраля 2011

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

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

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

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

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

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

0 голосов
/ 14 апреля 2011

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

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

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

0 голосов
/ 28 апреля 2010

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

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

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

...