Ruby Passenger: нет такого файла для загрузки bundler
Я установил Phusion Passenger с Nginx, настроил Nginx, чтобы указать правильный каталог, затем я запустил каталог webapp, и это загрузило gemfiles, но он не может найти драгоценные камни.
когда я посещаю сайт, я получаю стандартную страницу ошибки пассажира, которая говорит:
Error message:
no such file to load -- bundler
вот полная ошибка:http://tinypic.com/view.php?pic=vpx36r&s=7
Я делаю gem install bundler
поэтому я знаю, что bundler установлен, но я думаю, что он смотрит в не то место для камней.
похоже, что пассажир установил ruby-enterprise-1.8.7, и похоже, что 1.8 уже был установлен в этом поле.
gem env дает мне следующее:
- RUBYGEMS VERSION: 1.4.2
- RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/ruby-enterprise-1.8.7-2010.01/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/ruby-enterprise-1.8.7-2010.01/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/local/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8
- /root/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
из того, что я прочитал, это кажется проблемой пути, но я не знаю, как лучше всего это исправить.
вот вывод
что Руби:
/opt/local/ree/bin/ruby
какая вязка:
/opt/local/ree/bin/bundle
Я запустите bundle install в этом каталоге, и он дал мне:
Your bundle is complete! It was installed into ./vendor/bundle
1 ответов
похоже у вас есть некоторые проблемы путь (как вы уже сказали). попробуйте проверить почему у вас есть два разных пути для установки ruby.
Я имею в виду, согласно вашему выходу gem env, у вас есть некоторая установка на
/opt/local/ruby-enterprise-1.8.7-2010.01/
но у вас также есть Руби и банлдер под
/opt/local/ree/
Итак, начните отсюда, чтобы проверить, правильны ли все пути и / или у вас нет двойных установок (ну, этого достаточно, чтобы проверить, ENVs последовательны).
другая проблема может быть связана с вашим nginx.conf, у вас должно быть что-то вроде этого:
[...]
http {
passenger_root /your/path/to/passenger/gem;
passenger_ruby /path/to/ruby;
[...]
}
обновление (только что видел дополнительные комментарии с nginx.conf):
как вы можете видеть, есть проблема с путями: у вас есть два пути для установки ruby и gems:
/opt/local/ruby-enterprise....
и
/opt/local/ree
вы должны удалить последний (не физически, просто просмотрите ENVs, чтобы указать на первый один)
изменить: чтобы изменить свое окружение, вы можете добавить следующую строку / etc / bash.bashrc и (или файл whaterver загружается из вашей оболочки по умолчанию):
PATH="/opt/local/ruby-enterprise-1.8.7-2010.01/bin:$PATH"
затем выйдите из системы и войдите в систему или для быстрого тестирования запустите эту команду из shell:
источник /и т. Д./Баш.bashrc и
теперь повторите попытку увидеть, какой двоичный файл используется по умолчанию с:
which ruby
which gem
which rake
gem env
...
все должно быть / opt / локальный / ruby-enterprise-1.8.7-2010.01/ префикс (это то, что используется из конфигураций nginx и passenger).
обновление 2: из комментариев выяснилось, что у вас есть как минимум 3 установки ruby:
- ruby из вашего менеджера пакетов в /usr/lib/ ruby / (вы используете ubuntu linux?)
- Рубин в/opt/local/ree/
- Рубин в / opt / local / ruby-enterprise -....
в этот момент лучше всего делать это:
- удалите все rubys под /opt / local / и все их драгоценные камни
удаление (очистка) системы при условии ruby пакеты (вам это не нужно)
установка и настройка RVM:https://rvm.io
- переустановите пассажира с помощью RVM:https://rvm.io/integration/passenger/
- исправить nginx.conf использовать пассажирский путь и ruby