ruby-on-rails-3 – 无法修复具有本机扩展的gem的“bundle install”失败

前端之家收集整理的这篇文章主要介绍了ruby-on-rails-3 – 无法修复具有本机扩展的gem的“bundle install”失败前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在Amazon EC2云服务器上部署 Ruby On Rails应用程序.该服务器在Amazon Linux alami-2011.02上运行.我不能说它的基础上的发行版(从我的搜索,RedHat / CentOS,但我是该领域的新手).

我已经用RVM安装了我的Ruby环境(以root用户身份安装).我设置了两个ruby:

> REE 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内爆之后:

>我再次安装了2颗ruby
>我为ree-1.8.7应用程序创建了一个gemset并安装了所需的宝石 – >没问题
>我为ruby-1.9.2应用程序创建了一个gemset,并通过Bundle安装了gem – >没问题,即使对于具有原生扩展名的宝石也是如此
>我为另一个ruby-1.9.2创建了一个gemset,尝试通过Bundle安装宝石……这里又来了!

这是我在执行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 ……我在网上看了很多寻求答案,这个问题似乎反复出现,但对我来说没有任何作用.

在此先感谢您的帮助!

解决方法

这可能是由于内存不足以编译本机扩展.根据我的经验,bundle install比简单地使用gem install更加占用内存.查看/ var / log / messages,看看是否存在任何此类问题.此外,使用top来识别任何重量级进程,例如同事离开rails控制台在屏幕会话中运行.

猜你在找的Ruby相关文章