2013-04-24 4 views
4

나는 내 자신의 보석 "RocketRuby"를 가지고 있습니다. 내가 irb에로드하고 그것을 로딩했습니다. 초기 버전에서는 config.ru 파일을 가지고 있었고 작동했습니다.보석이 config.ru를 통해로드되지 않습니다.

이제 다시 컴파일하고 다시 설치했습니다. 그런 나를 승용차 충돌 (여전히 IRB에 넣기로 일하고있어) 및 알려줍니다

cannot load such file -- rocketruby (LoadError) 
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `require' 
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require' 
    /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
    config.ru:1:in `block in <main>' 
    /var/lib/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval' 
    /var/lib/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize' 
    config.ru:1:in `new' 
    config.ru:1:in `<main>' 
    /var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:82:in `eval' 
    /var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:82:in `preload_app' 
    /var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:127:in `<module:App>' 
    /var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:6:in `<module:PhusionPassenger>' 
    /var/lib/gems/1.9.1/gems/passenger-4.0.0.rc6/helper-scripts/rack-preloader.rb:5:in `<main>' 

config.ru 것은 다음과 같습니다

require "rocketruby" 
require "./shop_of_one.rb" 

ShopOfOne.instance 

run RocketRuby::RackApplication.new 

이 오류가 오는 동안 아주 이상한 일이있다, irb require "rocketruby" 여전히 작동하지 않습니다.

어떤 도움이 필요합니까?

+1

응용 프로그램으로 어떤 사용자가 실행되고 있습니까? Phusion Passenger 오류 페이지에서 확인할 수 있습니다. 사용자가 원하는대로 실행되고 있습니까? 또한 해당 오류 페이지에서 Ruby로드 경로를 확인하십시오. 그것이 당신이 기대하는 것입니까? – Hongli

답변

0

승객은 자신의 사용자 권한으로 실행되며로드되는 apache 사용자의 환경을 공유하지 않습니다. 즉, 실행하려고 할 때 보석이 설치되지 않았을 가능성이 있습니다.

require 'rubygems' 
require 'bundler' 

Bundler.require 

문제를 해결할 랙 응용 프로그램의 상단에 :

사용 들러 내가 다른 방법이 있는지 해요,하지만하는 Gemfile을 추가 bundle install --deployment을 실행하고이를 추가,이 문제를 해결합니다.

관련 문제