在DreamHost上托管帮助 - 自定义宝石

rya*_*yan 2 hosting rubygems ruby-on-rails passenger dreamhost

我正在尝试使用Passenger将RoR应用程序部署到我的DreamHost主机帐户上,但是无法启动并运行它.

我的申请需要两个自定义宝石'amazon-ecs'和'nokogiri'.根据DreamHost wiki(http://wiki.dreamhost.com/Freezing_Gems)上的说明,我将宝石编码到我的配置文件(config.gem"nokogiri")中,然后使用rake gems:unpack将宝石冻结给供应商:unpack命令将它们构建到供应商中.

然后我使用rake rails冻结了rails gems: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'
Run Code Online (Sandbox Code Playgroud)

我的配置文件如下所示:

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
Run Code Online (Sandbox Code Playgroud)

我错过了宝石的一步吗?我是在正确的轨道上吗?

Bri*_*gan 5

任何具有原生扩展名的宝石都不能与您的应用程序一起出售,并且有一个很好的选择,在DH上,config.gem也无法正常工作.您必须安装自己的rubygems并让您的应用程序使用它.我建议看看这个:

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

它有关于在DH上设置环境的很好的说明.我在上周服务器升级后不得不这样做,它仍然适用.