【发布时间】:2011-09-07 08:48:13
【问题描述】:
我正在 Amazon EC2 云服务器上部署 Ruby On Rails 应用程序。该服务器在 Amazon Linux alami-2011.02 上运行。我不能说它所基于的发行版(来自我的搜索,RedHat/CentOS,但我是该领域的新手)。
我已经使用 RVM 安装了我的 Ruby 环境(以 root 身份安装)。我已经设置了两个红宝石:
- 稀土 1.8.7
- Ruby 1.9.2-p290
对于我部署的每个 Rails 应用程序,我都会创建一个单独的 RVM gemset。
自从我遇到这个问题以来,我已经通过运行rvm implode 彻底刷新了 Ruby 环境。
这是我的环境版本:
ruby -v ---> ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
rvm -v ---> 1.8.1
gem -v ---> 1.6.2
bundle -v ---> Bundler version 1.0.18
在此之后rvm implode:
- 我再次安装了 2 颗红宝石
- 我为 ree-1.8.7 应用程序创建了一个 gemset 并安装了所需的 gem -> 没问题
- 我为一个 ruby-1.9.2 应用程序创建了一个 gemset,并通过 Bundle 安装了这些 gem -> 没问题,即使对于带有本机扩展的 gems
- 我为另一个 ruby-1.9.2 创建了一个 gemset,尝试通过 Bundle 安装这些 gem...又来了!
这是我在执行bundle install(以root身份登录)时所知道的:
Updating https://github.com/p7r/will_paginate.git
Fetching source index for http://rubygems.org/
Installing rake (0.9.2)
Installing multi_json (1.0.3)
Installing activesupport (3.1.0)
Installing bcrypt-ruby (3.0.0) with native extensions /usr/local/rvm/scripts/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:552:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/usr/local/rvm/scripts/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
Gem files will remain installed in /usr/local/rvm/scripts/rvm/gems/ruby-1.9.2-p290@app/gems/bcrypt-ruby-3.0.0 for inspection.
Results logged to /usr/local/rvm/scripts/rvm/gems/ruby-1.9.2-p290@app/gems/bcrypt-ruby-3.0.0/ext/mri/gem_make.out
[ removed the backtrace ]
但是,如果我只使用gem install bcrypt,gem 安装正确,我可以使用bundle install,它将一直运行到下一个带有本机扩展的 gem...
我在安装 ruby-1.9.2-p180 时遇到了同样的问题,我尝试将 RubyGems 降级到不同的版本,直到 1.5.3,我的 RVM 内爆了……我在网上看了很多答案,这个问题似乎经常出现,但对我没有任何帮助。
提前感谢您的帮助!
【问题讨论】:
-
当你尝试一个简单的 : gem install bcrypt-ruby 会发生什么?
-
日志文件
/usr/local/rvm/scripts/rvm/gems/ruby-1.9.2-p290@app/gems/bcrypt-ruby-3.0.0/ext/mri/gem_make.out包含什么? -
gem install bcrypt与任何gem install一样适用于带有无法自行安装的本机扩展的 gem。所以我可以手动实现我的目标,但是自动化部署并不容易...... -
嗯,这确实是一个棘手的问题......我刚刚创建了一个新的 gemset 来重现这个问题。 Bundle 几乎安装了所有的 gem,但它终于在 unicorn 上再次遇到问题,这是最后一个......同样的错误消息,文件的内容没有多大帮助:
/usr/local/rvm/scripts/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb -
我遇到了同样的问题。你找到解决办法了吗?
标签: ruby-on-rails-3 rubygems rvm bundler