13

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

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

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 需要这个包,但是这个包已经安装了!!我似乎无法解决这个问题,有什么帮助吗?

4

6 回答 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 不会让我安装 gems(zlib 错误) ”,因为您有libxslt1-dev(但没有libxslt-dev),您可能会考虑重新编译您的 ruby​​。
(有点像“如何在 Ubuntu 11.10 上使用 RVM 在 IRB 中获得 Readline 支持”)

于 2013-04-18T13:38:58.280 回答
14

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

gem install nokogiri --pre

应该做的伎俩。

于 2013-04-23T20:50:29.330 回答
11

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


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

于 2015-09-11T14:42:54.207 回答
10

尝试安装依赖项

sudo apt-get install libxslt-dev libxml2-dev
于 2014-04-22T08:00:27.187 回答
1

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

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

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

于 2019-08-17T18:48:35.830 回答
0

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

您必须单独安装libxslt

sudo apt-get install libxslt-dev libxml2-dev

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

宝石安装 nokogiri -v '1.5.11'

于 2015-02-04T15:50:50.083 回答