1. ホーム
  2. rubygems

[解決済み] cannot load such file -- bundler/setup (LoadError)

2022-01-30 17:51:08

質問

Ruby 2.0でRails 4アプリケーションを設定していますが、"Webアプリケーションを開始できませんでした"と表示され、このトレースが表示されます。

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

そして今、それは動作しています。

この修正方法は正しいのでしょうか?

どのように解決するのですか?

2.0をインストールする前に、以前のRuby環境がシステムにインストールされていた可能性があります。この場合、GEM_PATH が /1.8 につながっていて、バージョン 2.0 のインストールではそれがそのまま残っている可能性があります。

この問題は、Passenger/Apacheが/2.0ディレクトリを探し、実際にはgemsが/1.8ディレクトリにあったことに起因していると思われます。1.8ディレクトリを使用するように明示的にapacheに指示することは、この問題を解決するために理にかなっています。

SetEnv GEM_HOME /usr/lib/ruby/gems/1.8

また Rubyのバージョン管理 を使えば、複数のRuby環境を扱うことができます。

Googleで見つけたものをいくつか。