2009-09-09 5 views
2

DreamHost 호스팅 계정에 Passenger를 사용하여 RoR 응용 프로그램을 배포하려고하는데 문제가 발생했습니다.DreamHost의 호스팅 도움말 - 사용자 정의 보석

내 응용 프로그램에는 'amazon-ecs'및 'nokogiri'라는 두 개의 맞춤 보석이 필요합니다. DreamHost wiki (http://wiki.dreamhost.com/Freezing_Gems)의 지침에 따라 나는 설정 파일 (config.gem "nokogiri")에 코딩하여 벤더에게 넘긴 다음 레이크 보석을 사용하여 벤더에 빌드 명령을 풀었다.

그런 다음 rake rails : freeze : gems를 사용하여 레일 보석을 동결 한 다음 내 하위 도메인에 업로드했습니다.

0 /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb 336  in `abort' 
1 /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb 336  in `check_gem_dependencies' 
2 /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb 170  in `process' 
3 /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb 113  in `send' 
4 /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb 113  in `run' 
5 ./config/environment.rb  9 
6 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb  31 in `gem_original_require' 
7 /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb  31 in `require' 

내 설정 파일은 다음과 같습니다 :

RAILS_GEM_VERSION = '2.3.3' unless defined? RAILS_GEM_VERSION 
require File.join(File.dirname(__FILE__), 'boot') 

Rails::Initializer.run do |config| 
config.gem "nokogiri" 
config.gem "amazon-ecs" 
config.time_zone = 'UTC' 
end 

내가 보석 단계를 놓친 건가 다음과 같이 내 역 추적의

지난 7 개 라인은 이동? 나는 올바른 길을 가고 있는가?

답변

5

네이티브 확장 기능이있는 보석은 앱과 ​​함께 배포 할 수 없으며 DH에서 config.gem이 제대로 작동하지 않을 수도 있습니다. 자신 만의 루비 젬을 설치하고 앱에서 사용하도록 만들어야합니다. 나는이에서 살펴 보는 것이 좋습니다

http://railstips.org/2008/11/24/rubygems-yours-mine-and-ours

그것은 DH에 환경을위한 좋은 지침이있다. 서버 업그레이드 후 지난주에이 작업을 수행해야했지만 여전히 적용됩니다.

0

so/vendor/rails 및/vendor/plugins/nokogiri 및 amazon-ecs가 존재하며 잘 보입니까? 다시 시도 할 수이 시간이

config.gem "nokogiri", :version => "1.0" 

처럼 설정에 보석의 정확한 버전을 지정하거나 보석 Github에서

config.gem "tenderlove-nokogiri", :version => "1.0", :lib => "nokogiri", :source => "http://gems.github.com" 

에 경우 역 추적이 매우 helpfull 보이지 않는 것 정확히 무슨 일이야? :-)

0

나는 최근에 배포 한 응용 프로그램과 동일한 backtrace (승객 오류 페이지)가 있습니다. 레이크 보석이 거기에 있다고 말했음에도 불구하고 (config.gem)에 의존하고 있던 보석 중 하나를 찾을 수 없다는 것이 밝혀졌습니다 ([I] test-unit = 1.2.3).

Dreamhost 지원을 통해 내 보석을 고정/풀어 볼 것을 제안했습니다. 그건 아마 작동했을 것입니다. (얼어 붙은 다른 보석을 찾는 데 문제가 없었습니다.) 그러나 어떤 이유에서 레이크 보석 : 포장을 풀어 주려고 아무것도하지 않았기 때문에 설정이 끝났습니다. .gem은 어쨌든 프로덕션 환경에서 필요하지 않았기 때문에.

다른 사람이이 오류를 표시하는 경우 사용자의 보석 중 하나가 발견되지 않았 음을 나타냅니다. config.gem 라인을 주석 처리 해보세요. 한 번에 하나씩 작동하기 시작하거나 다른 에러가 나옵니까?

+0

네이티브 확장을 필요로하는 보석은 판매/고정 될 수 없습니다. DH 폴더에 자신의 로컬 루비 젬을 설정하고 경로를 변경하여 대신 사용하십시오. 내 대답을 보라. –

0

지난주에 DreamHost에 문제가 발생하여 Rails 앱이 갑자기 보석 누락으로 인해 작동을 멈췄습니다.나는 지원에 연락을하고 여기에 대한 반응이었다

일부 변경 사항이 서버에 를 만들었다와 시스템 설치 젬의 대부분은 그들이 있었어야처럼하지 를 다시 설치했다처럼 보이는

. 수동으로 sqlite3 보석을 설치했으나 을 처리하는 Google 관리자는 을보고 이 아닌 이유를 파악해야합니다. 좀 더 이 보이지 않는다면 나는 을 볼 수 있습니다. 잠정적으로 설치하는 경우에는 갭이 있습니다.

동일한 일의 영향을받을 수도 있습니다. 자세한 내용은 지원부에 문의하십시오.