0

我可以使用 rbenv 安装其他原生扩展gem install。但是,所有服务器(减去 webrick)都给我这个问题:

构建原生扩展。这可能需要一段时间...

错误:安装瘦身时出错:

       ERROR: Failed to build gem native extension.

/custom_dir/.rbenv/versions/ruby-2.0.0-p247/bin/ruby extconf.rb

的输出gem_make.out与上一行相同。 bundle install并且bundle install --deployment工作正常。服务器在bundle exec. 但是,我无法弄清楚为什么gem install puma|thin|etc会失败。这并不重要,但我想知道如果这是另一个问题的征兆,会发生什么。

另一个症状:如果我安装瘦或独角兽,我会根据它们的依赖关系得到相同的错误。换句话说,它告诉我查看kgio/gem_make.outorraindrops/gem_make.out等​​。但是,如果我单独安装它们的依赖项:kgio、raindrops 等,它们安装得很好(使用gem install kgio)。但是,当我尝试安装最终包、瘦、独角兽等时,它给了我同样的错误ruby extconf.rb,没有进一步的细节。

另一个症状:如果我遗漏了 rdoc/ri 文档,我只能编译 Ruby 2.0。make: *** [rdoc] Error 137如果我用文档编译 Ruby,我会得到一个。我相信这与服务器 gem 无法编译的原因有关。我已经设法unicorn手动安装 w/o Rubygems,使用Ruby 2.0.

Ruby 1.9.与 rdoc/ri 文档一起编译得很好。puma和其他安装正常,即使使用 rdoc/ri 文档生成。所以这似乎是一个问题:

  1. 红宝石 2.0
  2. rdoc/ri 生成

更新:Ruby 2.0使用 RVM(而不是 rbenv)安装有效。安装所有其他服务器 gem 工作正常,可执行文件(例如puma)工作正常。RVM 似乎做了一些额外的事情,而 rbenv/ruby-build 没有。

4

5 回答 5

1

在我的例子中,结果是我正在编译的虚拟机内存不足。我只配置了 256MB。一旦我将它提升到至少 512MB RAM,这个问题就消失了。

我正在使用rbenvruby-build串联。

RDoc 编译过程中的某些内容必须占用大量内存。

于 2014-02-26T13:50:38.777 回答
0

I have no idea why this "solution" works:

Compile ruby-2.0.0-p247 with the following flags:

./configure prefix=/change_this/to/your/needs --disable-install-doc --enable-shared

Those flags are the same ones used by RVM. puma, thin, and unicorn all install fine.

Note: rbenv users: change prefix= to your .rbenv/versions directory.

于 2013-08-15T04:58:16.713 回答
0

@patcoll 和 @dgo.a 都是正确的:失败是由于可用内存不足。禁用 RDoc 安装将解决此问题。

但是,您不需要手动./configure或启用共享 rbenv。

相反,使用 rbenv 的 configure env var 安装 Ruby:

export CONFIGURE_OPTS="--disable-install-doc"; rbenv install 2.1.2
于 2014-06-03T15:24:54.827 回答
0

使用 rbenv 和 512MB 内存它仍然失败,所以:

CONFIGURE_OPTS="--disable-install-doc" rbenv install 2.1.2

事实证明,内存不是问题,而是它的磁盘空间。查看您的日志文件夹 ( du -sh)。

于 2014-11-14T18:40:19.880 回答
0

make: *** [rdoc] Error 137从源代码构建 Ruby 2 时,如果出现错误,请配置禁用文档。

./configure --disable-install-doc

此问题似乎发生在低内存环境(小于 512MB)中。

于 2014-11-17T18:04:46.830 回答