安装 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.
转关于 Nokogiri 的安装依赖 libxml2安装问题