安装ruby gem nokogiri时缺少libxslt

时间:2013-04-18 13:20:15

标签: ruby gem nokogiri gitlab libxslt

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

我正在安装GitLab并在遇到NokoGiri gem要求时运行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需要这个包,但是已经安装了包!我似乎无法解决这个问题,那里有任何帮助吗?

6 个答案:

答案 0 :(得分:35)

首先确保您拥有所有依赖项,如&#34; Installing Nokogiri with RVM on Ubuntu&#34; (提到了同样的错误信息)

  

我不知道为什么它找不到包&#34; libxslt&#34;。我没有担心这一点,而是要安装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宝石。说明使用&#34; sudo gem install nokogiri&#34;,但因为我使用RVM,我放弃&#34; sudo&#34;部分:

$ gem install nokogiri

考虑&#34; Fresh install of RVM in Ubuntu isn't letting me install gems (zlib error)&#34;,因为您有libxslt1-dev(而非libxslt-dev),您可能会考虑重新编译您的红宝石。
(有点像&#34; How to get Readline support in IRB using RVM on Ubuntu 11.10&#34;)

答案 1 :(得分:12)

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

gem install nokogiri --pre

应该这样做。

答案 2 :(得分:10)

尝试安装依赖项

sudo apt-get install libxslt-dev libxml2-dev

答案 3 :(得分:9)

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


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 :(得分:1)

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

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

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

答案 5 :(得分:0)

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

您必须安装libxslt separetly:

  

sudo apt-get install libxslt-dev libxml2-dev

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

  

gem install nokogiri -v&#39; 1.5.11&#39;