Я устанавливаю приложение Rails 4 с помощью Ruby 2.0, но получаю сообщение «Не удалось запустить веб-приложение» и получаю следующую трассировку:
cannot load such file -- bundler/setup (LoadError)
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/lib/phusion_passenger/loader_shared_helpers.rb:212:in `run_load_path_setup_code'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:96:in `preload_app'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:150:in `<module:App>'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>'
/usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:28:in `<main>'
Мой apache2.conf:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19
PassengerDefaultRuby /usr/local/bin/ruby
bundle -v
является:
Bundler version 1.3.5
ruby -v
является:
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
gem env
является:
RubyGems Environment:
- RUBYGEMS VERSION: 2.1.5
- RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/local/bin/ruby
- EXECUTABLE DIRECTORY: /usr/lib/ruby/gems/1.8/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /root/.gems/bin
- /usr/lib/ruby/gems/1.8/bin/
- /usr/local/bin
- /usr/bin
- /bin
- /usr/bin/X11
- /usr/games
- /usr/sbin
- /sbin
echo $GEM_PATH
является:
/usr/lib/ruby/gems/1.8:/usr/lib/ruby/gems/1.8
Не должно GEM_PATH
быть /usr/lib/ruby/gems/2.0
?
Внутри виртуального хоста в apache2.conf я добавил:
SetEnv GEM_HOME /usr/lib/ruby/gems/1.8
И теперь он работает.
Это правильный способ исправить это?
источник
sudo
действительно ли это необходимо? Я использовал,sudo
но теперь мне интересно, что бы произошло, если бы я этого не сделал.sudo
!sudo gem ....
установитdefault
версиюsudo
гема и (в моем случае Ubuntu 14.04) не сможет запустить rvm.sudo
был системный ruby по умолчанию, но он не нужен ни для одной из версий ruby, которые я установил с помощью rvm.gem 2.7.6
иruby 2.5.0p0
что делать?Скорее всего, у вас установлено более одного Ruby.
Если вы используете RVM, вам, вероятно, нужно запустить:
чтобы установить используемую версию рубина.
См. Http://rvm.io/rubies/default
сообщит вам версию, которую вы используете в настоящее время.
источник
Вы можете попробовать запустить:
Как упоминал @Dinesh в Rails 5:
источник
В моем случае строки, добавленные в файл конфигурации apache после установки пассажира, были следующими:
Но для приложения требуется Ruby 2.0.0, поэтому мне потребовалось некоторое время, но, наконец, ошибка была устранена после указания другого пути с помощью PassengerRuby ниже в файле конфигурации виртуального хоста Apache для приложения:
источник
PassengerDefaultRuby
речь шла о старой установке Ruby.Я получил эту ошибку в новом приложении Rails с правильно установленным пакетом. Комментирование весеннего гема в Gemfile решило проблему.
источник
gem install spring
вместо того, чтобы комментировать.Я столкнулся с той же проблемой, но я думаю, что это было связано с
spring
кешированием некоторых драгоценных камней и конфигураций. Я исправил это, запустивgem pristine --all
.Это восстанавливает установленные драгоценные камни до первоначального состояния из файлов, находящихся в кеше драгоценных камней.
или вы можете просто попробовать свой драгоценный камень, как
источник
Для меня это происходило в производственной среде.
rm /vendor/bundle
затем
bundle install --deployment
решил вопрос.
источник
Другая возможная ситуация: у вас есть несколько пользователей, определенных в вашей серверной среде. В этом случае бег
предоставит вам необходимую команду для указания вашего
nginx/sites-enabled/relevant_application
файла с вашим вариантом использования, например:источник
У меня была такая же проблема, и я безуспешно попробовал все ответы.
шаги, которые я сделал для воспроизведения:
rvm instal 2.1.10
rvm gemset create my_gemset
rvm use 2.1.10@my_gemset
bundle install
однако
bundle install
установил Rails, но у меня все еще естьcannot load such file -- bundler/setup (LoadError)
наконец работает
gem install rails -v 4.2
исправил этоисточник
Версия Bundler может быть причиной проблемы.
Пожалуйста, установите связку с другим номером версии.
Например,
gem install bundler -v 1.0.10
источник
gem uninstall -a bundler; gem install bundler -v '<2.0'
.У меня такое было, потому что в моем было что-то плохое
vendor/bundle
. Ничего общего с Apache, только в локальной среде разработки.Чтобы исправить, я удалил
vendor\bundle
, а также удалил ссылку на него в моем.bundle/config
чтобы он не использовался повторно.Затем я снова собрал (который затем установил
GEM_HOME
вместо,vendor/bundle
и проблема исчезла.источник
ПРИМЕЧАНИЕ. Моя хостинговая компания - Site5.com, и у меня есть управляемый VPS.
Я добавил переменные env для GEM_HOME и GEM_PATH в файл .htaccess в моем каталоге public_html (псевдоним общедоступного каталога в приложении rails)
Раньше они не были нужны, так что, должно быть, что-то изменилось на стороне хозяев. Эта ошибка возникла после касания файла restart.txt для перезапуска пассажирского сервера.
Получил GEM_PATH от:
эхо $ GEM_PATH
Получил GEM_HOME от:
драгоценный камень env
Обновлен файл .htaccess со следующими строками:
источник
Для меня проблема заключалась в том, чтобы связать RVM Ruby с Passenger. Поэтому мне нужно было интегрировать обертку RVM ruby в файл конфигурации пассажира.
Я узнаю путь к оболочке rvm ruby с помощью команды:
Я взял путь из результата и вошел в конфигурацию пассажира в
nginx/passenger.conf
:источник
Я исправил эту проблему, создав проект тестовых рельсов и установив все драгоценные камни, затем я заменил свой текущий Gemfile.lock тестом, и все работает нормально.
Я думаю, что эта проблема
bundler
связана с версиями с хостингом, поэтому убедитесь, что пакет хостинга совпадает с версией вашего проекта.источник
В моей ситуации речь шла о разрешениях:
источник
Версия ruby, в которой использовался пассажир phusion, отличается от вашего приложения rails.
Убедитесь, что версия httpd config совпадает с версией приложения rails.
источник
Потратив много времени, я пытаюсь следовать этим ответам после того, как приведенный ниже код сработал для меня. Перед тем как это сделать, просто убедитесь, что с обновлением проблем нет :)
gem update --system
источник