我正在尝试使用Passenger将RoR应用部署到我的DreamHost主机帐户,但是无法启动并运行。
我的申请需要两个自定义宝石'amazon-ecs'和'nokogiri'。根据DreamHost wiki(http://wiki.dreamhost.com/Freezing_Gems)上的说明,我通过将宝石编码到我的配置文件(config.gem“nokogiri”)中将宝石冻结给供应商,然后使用rake gems: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'
我的配置文件如下所示:
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
我是否错过了宝石的一步?我是在正确的轨道上吗?
答案 0 :(得分:5)
任何具有原生扩展名的宝石都无法与您的应用程序一起出售,并且有一个很好的选择,在DH上,config.gem也无法正常工作。您必须安装自己的rubygems并让您的应用程序使用它。我建议看看这个:
http://railstips.org/2008/11/24/rubygems-yours-mine-and-ours
它有关于在DH上设置环境的很好的说明。我上次在服务器升级后必须这样做,它仍然适用。
答案 1 :(得分:0)
所以/ 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"
回溯看起来不是很有帮助,究竟发生了什么? : - )
答案 2 :(得分:0)
我使用最近部署的应用程序获得了相同的回溯(在Passenger错误页面上)。事实证明,它无法找到我依赖的一个宝石(config.gem)......尽管rake gems说它在那里([I] test-unit = 1.2.3)。
Dreamhost支持建议我尝试冻结/解压缩我的宝石。这可能会有用(找到我的其他任何宝石都没有问题,但是由于某种原因,rake gems:unpack没有为我做任何事情,所以我最后只是评论出来的配置.gem line,因为我无论如何都不需要它在制作中,这很有效!
因此,如果其他人收到此错误,则强烈表示您的某个宝石未找到。尝试注释掉你的config.gem行,一次一个,直到它开始工作或给出不同的错误?
答案 3 :(得分:0)
上周我在DreamHost上遇到了一个问题,我的工作Rails应用程序由于缺少宝石而突然停止工作。我联系过支持,这是他们的答复:
看起来有些变化 到您的服务器和大多数 系统安装的rubygems不是 像他们应该的那样重新安装 是。我手动安装了sqlite3 宝石为你,但我们的管理员谁处理 这将不得不看一看 弄清楚他们为什么不是 安装。如果你还有更多 你看到不工作,我可以看看 可能将它们安装为停止 同时存在差距。
你有可能受到同样的事情的影响。尝试联系支持人员以了解相关信息。