【问题标题】:Error on installing gem Nokogiri-1.8.4安装 gem Nokogiri-1.8.4 时出错
【发布时间】:2019-01-08 17:56:26
【问题描述】:

操作系统:AMI 2018.03.0 (HVM)
Ruby 版本:2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux-gnu] - 使用 yum install ruby23 安装

gem install nokogiri 抛出:

Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
ERROR: Failed to build gem native extension.

current directory: /home/ec2-user/.gem/ruby/2.3/gems/nokogiri- 
1.8.4/ext/nokogiri
/usr/bin/ruby2.3 -r ./siteconf20180801-6218-101te4s.rb extconf.rb
mkmf.rb can't find header files for ruby at 
/usr/share/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /home/ec2- 
user/.gem/ruby/2.3/gems/nokogiri-1.8.4 for inspection.
Results logged to /home/ec2-user/.gem/ruby/2.3/extensions/x86_64- 
linux/2.3/nokogiri-1.8.4/gem_make.out

我在这里错过了什么?

【问题讨论】:

  • 不要尝试使用系统Ruby进行开发。我建议安装 rvm 或 rbenv 来管理你的开发红宝石。
  • 使用 rvm/rben 对开发环境管理多个版本很有意义。但是在服务器上,您不需要多个 rb 版本。有用的考虑 - 但可能是错误的建议。 ;)

标签: ruby amazon-ec2 rubygems nokogiri


【解决方案1】:

从错误输出来看,它似乎找不到 Ruby 的开发依赖项,Nokogiri 正在尝试使用这些依赖项来本地构建 gem。

您可以运行yum -y install gcc ruby-devel rubygems 以确保安装了依赖项。

我的回答有点来自https://stackoverflow.com/a/4502672/1129980

更新

现在在一个新的 EC2 实例上进行了测试:

yum install -y ruby23-devel gcc libxml2 libxml2-devel libxslt libxslt-devel patch
gem install nokogiri --no-ri --no-rdoc

这行得通:)

【讨论】:

  • 很遗憾,yum -y install gcc ruby-devel rubygems 没有帮助
【解决方案2】:

尝试运行下面提到的命令

sudo yum -y install ruby-dev ( or ruby-devel)
sudo yum -y install libgmp-dev libgmpxx4ldbl ruby-dev ruby2.3-dev

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 2016-02-03
    相关资源
    最近更新 更多