2010-08-08 5 views
2

Bundler를 사용하려면 Sinatra를 구성하는 데 문제가 있습니다. 보석을 설치해야하는 곳에 대해 혼란 스럽습니다. this question과이 documentation을 모두 읽었습니다. 내가 bundle install 모든 것을 실행할 때, 제대로 작동하고 지금Sinatra, Bundler 및 BUNDLE_PATH 혼동

require "rubygems" 
require "sinatra" 
require "AWS" 

#... rest of application 

: 같은

require "rubygems" 
require "bundler" 
Bundler.setup 
require "application" 
run Sinatra::Application 

application.rb 보이는 :

source "http://rubygems.org" 
gem "sinatra" 
gem "amazon-ec2" 

config.ru은 다음과 같습니다처럼

Gemfile 보인다 보석이 설치됩니다. 내 홈 디렉토리에 ~/.bundle/. 내가 .bundle/config 살펴있는 경우 그러나, 내 응용 프로그램에서 보여줍니다 : 나는 (그런데 승객을 사용하여) 응용 프로그램을 시작할 때

--- 
BUNDLE_WITHOUT: "" 
BUNDLE_PATH: vendor/gems 

충분히 물론, 그것은 말한다 : 분명히

Could not find gem 'amazon-ec2 (>= 0, runtime)' in the gems available on this machine. (Bundler::GemNotFound) 

bundle install Sinatra가 기대하는 곳에 다른 장소에 보석을 설치합니다. 즉, bundle install vendor을 사용해야하거나 응용 프로그램에서 보석이 ~/.bundle이 될 것으로 예상하도록 다른 것을 다시 구성해야합니까?

+0

사용중인 들러 어떤 버전의 bundler deployment mode에 대한 몇 가지 세부 사항은 ./vendor/bundle

갈 : 나는 생산에서이 작업을 실행하여 그것을 통해있어? –

+0

0.9.26을 사용하고 있습니다. 필자는'bundle install vendor/gems '라는 홈 디렉토리가 아닌'vendor/gems' 파일에 항상 명시 적으로 보석을 넣음으로써 로컬 작업을 할 수있었습니다. 그러나 Synatra는 시스템 위치에서 일부 보석을로드 할 수없고, 일부는 '공급 업체/보석'에서 동시에로드합니다. - AFAICT, 모든 보석을로드해야합니다. 같은 위치에서. Bundler는 Rails 3에서 쉽게 작업하지만 Sinatra와는 악몽처럼 보입니다. 나는 틀린 일을하고 있다고 확신한다. ( – aaronrussell

답변

2

@aaronrussell의 초기 게시 이후 약 1 년 후, Passenger, Nginx, Bundler, Sinatra와 같은 문제가 발생했습니다.

bundle install --deployment 

번들 보석이 여기