安装Ruby Gem Nokogiri时缺少libxslt

15

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

我正在安装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

所以,这个错误导致我尝试使用以下命令安装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需要这个软件包,但是这个软件包已经安装了!! 我似乎无法解决这个问题,有任何帮助吗?

6个回答

39

首先确保您拥有所有依赖项,如 "在Ubuntu上使用RVM安装Nokogiri" 中所述(该页面提到了相同的错误消息)

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

$ 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

考虑到 "在Ubuntu上安装RVM后无法安装gem(zlib错误)", 由于你已经安装了libxslt1-dev(而不是libxslt-dev),你可能需要重新编译你的Ruby。
(就像 "如何在Ubuntu 11.10上使用RVM获取IRB中的Readline支持" 中所描述的那样)


Nokogiri 的 GitHub 页面不再提及此事,但在为旧项目设置开发环境时,你的回答恰好是我所需的。 - Jason
@Jason 谢谢。我已经恢复了第一个链接。 - VonC

14
请尝试使用 Nokogiri 1.6.0.rc1,该 gem 包含了 libxml2 和 libxslt,这应该可以解决您的安装问题。
gem install nokogiri --pre

应该就可以解决问题了。


1
一个依赖于nokogiri 1.5.x的gem怎么办? - sethetter
aws-sdk(〜> 1.24.0)Ruby依赖于nokogiri(<1.6.0,> = 1.4.4)Ruby。:(这已经是我第三次遇到同样的问题了。通常我的解决过程意味着尝试很多东西直到有一个起作用。 - ffflabs

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

缺少libxslt库。请访问http://nokogiri.org/tutorials/installing_nokogiri.html以获得安装依赖项的帮助。

您需要安装libxslt的开发版本:

apt-get install libxslt-dev

或在CentOS中:

yum install libxslt-devel

谢谢,伙计!你救了我的一天。 - tagaism

11

尝试安装依赖

sudo apt-get install libxslt-dev libxml2-dev

1

根据您的Linux版本选择并安装适当的库:

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

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


0

如果你想安装一个旧版本的nokogiri,安装Nokogiri 1.6.0.rc1是行不通的。

你必须单独安装libxslt

sudo apt-get install libxslt-dev libxml2-dev

之后再次运行你的命令: (在我的情况下)

gem install nokogiri -v '1.5.11'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接