我知道这是一个重复的问题,但是我发现与这个问题相关的所有其他答案似乎都没有帮助我…
我正在安装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需要这个包,但是这个包已经安装了!!我似乎无法解决这个问题,有什么帮助吗?
首先确保你有所有的依赖项,正如"在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不允许我安装gems (zlib错误)",因为你有libxslt1-dev
(而不是libxslt-dev
),你可能会考虑重新编译你的ruby。
(有点像"如何在Ubuntu 11.10上使用RVM在IRB中获得Readline支持")
试试Nokogiri 1.6.0。Rc1,它在gem中捆绑了libxml2和libxslt。这将解决您的安装问题:
gem install nokogiri --pre
尝试安装依赖项
sudo apt-get install libxslt-dev libxml2-dev
也许这对其他人会有帮助:如果收到错误:
<>之前
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
根据您的Linux风格从下面选择并安装合适的库:-
- deb: libxslt1-dev (Debian, Ubuntu等)
- rpm: libxslt-devel (Fedora, CentOS, RHEL)
- 世界基督教联合会: libxslt_dev (Solaris)
使用apt-get、yum等合适的命令安装
如果您想安装nokogiri的旧版本,请安装nokogiri 1.6.0。
您必须单独安装libxslt
:
sudo apt-get install libxslt-dev libxml2-dev
之后再次运行命令:(对我来说)
gem install nokogiri -v '1.5.11'