我正在尝试部署一个使用Passenger的RoR应用程序到我的DreamHost托管帐户上,但在启动和运行时遇到了问题。
我的应用程序需要两个自定义gem 'amazon-ecs‘和'nokogiri.’‘。按照rake (http://wiki.dreamhost.com/Freezing_Gems)上的说明,我将gem编码到我的配置文件(config.gem "nokogiri")中,然后使用DreamHost gems:unpack命令将它们构建到供应商中。
然后,我使用rake rails:freeze:gems冻结了rails gem,并将其上传到我的子域。
我的回溯的最后七行代码如下:
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我是不是错过了宝石的一步?我在正确的轨道上吗?
发布于 2009-09-17 18:36:07
任何具有本地扩展的gem都不能与您的应用程序一起提供,而且很可能在DH上,config.gem也不能正常工作。你必须安装你自己的rubygems并让你的应用使用它。我建议你看看这个:
http://railstips.org/2008/11/24/rubygems-yours-mine-and-ours
它有关于在DH上设置环境的很好的说明。我上周在服务器升级后不得不这样做,而且它仍然适用。
发布于 2009-09-15 14:50:01
那么,/vendor/rails和/vendor/plugins/nokogiri和amazon-ecs存在,您觉得还好吗?您可以重试一次,这次在配置中指定gem的确切版本,如下所示
config.gem "nokogiri", :version => "1.0"或者如果宝石在Github上
config.gem "tenderlove-nokogiri", :version => "1.0", :lib => "nokogiri", :source => "http://gems.github.com"回溯看起来没什么用,到底是怎么回事?:-)
发布于 2009-09-16 22:49:14
我最近部署的一个应用程序也得到了相同的回溯(在乘客错误页面上)。结果它找不到我所依赖的一个宝石(config.gem)……尽管rake gem说它就在那里(I test-unit = 1.2.3)。
Dreamhost支持人员建议我尝试冻结/解包我的gem。这可能会起作用(找到我的任何其他gem都是冻结的,没有问题),但出于某种原因,rake gems:unpack对我没有任何作用,所以我最终注释掉了config.gem行,因为我在生产中无论如何都不需要它,这是有效的!
因此,如果其他任何人收到这个错误,它强烈地表明您的一个gem没有被找到。尝试注释掉您的config.gem行,一次注释一行,直到它开始工作或给出不同的错误?
https://stackoverflow.com/questions/1402524
复制相似问题