安装 ruby​​ gem nokogiri 时缺少 libxslt

Posted

技术标签:

【中文标题】安装 ruby​​ gem nokogiri 时缺少 libxslt【英文标题】:libxslt is missing while installing ruby gem nokogiri 【发布时间】:2013-04-11 15:19:02 【问题描述】:

我知道这是一个重复的问题,但是我发现的与此问题相关的所有其他答案似乎都没有帮助我...

我正在安装 GitLab 并运行 gem 依赖项,当它达到 NokoGiri gem 要求并失败并显示以下信息时:

ERROR:  Error installing nokogiri:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
extconf.rb:10:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:10:in `<main>': Use RbConfig instead of obsolete and deprecated Config. 
extconf.rb:11:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... yes
checking for xmlParseDoc()... -lxml2
checking for xsltParseStylesheetDoc()... -lxslt
-----
libxslt is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----

所以,这个错误导致我尝试使用以下命令安装libxslt

$ sudo apt-get install libxslt-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libxslt1-dev' instead of 'libxslt-dev'
libxslt1-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 146 not upgraded.

那是什么? NokoGiri 需要这个包,但是这个包已经安装了!!我似乎无法解决这个问题,有什么帮助吗?

【问题讨论】:

【参考方案1】:

首先确保您拥有所有依赖项,如“Installing Nokogiri with RVM on Ubuntu”中所述(其中提到了相同的错误消息)

我不知道为什么它找不到包“libxslt”。与其担心这个,我将安装Nokogiri GitHub page 上列出的依赖项:

$ sudo apt-get install libxslt-dev libxml2-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libxslt1-dev' instead of 'libxslt-dev'
libxslt1-dev is already the newest version.
libxml2-dev is already the newest version.

这似乎已经足够好,所以我继续前进。下一步是安装实际的 Nokogiri gem。说明说要使用“sudo gem install nokogiri”,但因为我使用的是 RVM,所以我删除了“sudo”部分:

$ gem install nokogiri

考虑到“Fresh install of RVM in Ubuntu isn't letting me install gems (zlib error)”,因为你有libxslt1-dev(而不是libxslt-dev),你可能会考虑重新编译你的ruby。 (有点像“How to get Readline support in IRB using RVM on Ubuntu 11.10”)

【讨论】:

Nokogiri github 页面不再引用此内容,但在为旧项目设置开发环境时。但是,您的回答正是我所需要的。 @Jason 谢谢。我已经恢复了第一个链接。【参考方案2】:

试试 Nokogiri 1.6.0.rc1,它在 gem 中捆绑了 libxml2 和 libxslt。这应该可以解决您的安装问题:

gem install nokogiri --pre

应该可以解决问题。

【讨论】:

依赖 nokogiri 1.5.x 的 gem 怎么样? aws-sdk (~> 1.24.0) ruby​​ 依赖于 nokogiri (= 1.4.4) ruby​​ 。 :(这就像我第三次遇到同样的问题。通常我的解决过程意味着尝试很多东西直到一个有效。【参考方案3】:

也许这对其他人有帮助: 如果收到错误:

libxslt is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.

您还需要安装 libxslt 的开发版本 apt-get install libxslt-dev 或在 CentOS 中

yum install libxslt-devel

【讨论】:

谢谢,伙计!你拯救了我的一天。【参考方案4】:

尝试安装依赖项

sudo apt-get install libxslt-dev libxml2-dev

【讨论】:

【参考方案5】:

根据您的 Linux 风格从下面选择并安装合适的库:-

deb: libxslt1-dev(Debian、Ubuntu 等) rpm:libxslt-devel(Fedora、CentOS、RHEL) csw: libxslt_dev (Solaris)

使用适当的命令安装,如 apt-get、yum 等。

【讨论】:

【参考方案6】:

如果您想安装以前版本的 nokogiri,安装 Nokogiri 1.6.0.rc1 将无法解决问题。

您必须单独安装libxslt

sudo apt-get install libxslt-dev libxml2-dev

之后再次运行您的命令: (就我而言)

gem install nokogiri -v '1.5.11'

【讨论】:

以上是关于安装 ruby​​ gem nokogiri 时缺少 libxslt的主要内容,如果未能解决你的问题,请参考以下文章

LoadError:库版本不兼容 - /home/ubuntu/.rvm/gems/ruby-2.3.1@lm5/gems/nokogiri-1.8.2/lib/nokogiri/nokogiri.s

ruby on rails - 问题捆绑安装nokogiri 1.7.2 on ruby on rails 4.x.

使用新的 Ruby 版本在 Mac OSX 上安装 gem

转关于 Nokogiri 的安装依赖 libxml2安装问题

当我运行bundle install时,Nokogiri'无法构建gem native extension'

gem安装软件时遇到的问题以及解决思路