在带有Ruby 1.9.3的Windows 8 x64上,nokogiri gem缺少libxml2
我发现搜索类似问题的是Nokogiri还没有使用Ruby 2.0的 x64支持。 然而,虽然我在Windows x64机器上,我的Ruby版本是来自railsinstaller.org的ruby 1.9.3p392(2013-02-22)[i386-mingw32](使用Rails 3.2.13) 。 这也意味着已经安装了DevKit 。
gem install nokogiri –pre给出了这个错误:
Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb checking for libxml/parser.h... no ----- libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokog iri.html for help with installing dependencies. ----- *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=C:/RailsInstaller/Ruby1.9.3/bin/ruby --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --with-iconv-dir --without-iconv-dir --with-iconv-include --without-iconv-include=${iconv-dir}/include --with-iconv-lib --without-iconv-lib=${iconv-dir}/lib --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib=${xml2-dir}/lib
虽然gem install nokogiri –pre –withwith xml2-lib –with-xslt-lib –platform = ruby会引发此错误:
Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb --with-xml2-lib --wi th-xslt-lib --platform=ruby *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=C:/RailsInstaller/Ruby1.9.3/bin/ruby --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --with-iconv-dir --without-iconv-dir --with-iconv-include --without-iconv-include=${iconv-dir}/include --with-iconv-lib --without-iconv-lib=${iconv-dir}/lib --with-xml2-dir --without-xml2-dir --with-xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib=${xml2-dir}/lib C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/mkmf.rb:1544:in `dir_config': undefin ed method `split' for true:TrueClass (NoMethodError) from extconf.rb:147:in `'
我无法通过SO / google群组/博客/等找到任何具体的解决方案,有吗?
这是我的路径:
PATH=C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby1.9.3\bin;C:\windows;C:\win dows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files( x86)\Git\cmd;C:\Program Files\nodejs\;C:\cygwin\bin;C:\mingw64\x86_64-w64-mingw3 2\bin;C:\mingw64\bin;C:\Program Files (x86)\Heroku\bin;C:\Program Files (x86)\gi t\cmd;C:\Users\Joshua\AppData\Roaming\npm;C:\mingw64\x86_64-w64-mingw32\bin;C:\P rogram Files\PostgreSQL\9.2\bin;
我也尝试从http://linux.softpedia.com/progDownload/libxml2-Download-162.html下载libxml2并将内容放在C:\ RailsInstaller \ Ruby1.9.3 \ lib以及C:\ RailsInstaller \ DevKit中\ lib但我收到了同样的错误。
tl; dr似乎有两个不同的错误,具体取决于我通过的选项。 parser.h错误和TrueClass’拆分’错误。
@Steve – 有一个新版本的nokogiri(1.6.2)支持x64 Ruby(这在Win7 x64 Ruby 200上适用于我)。 在撰写时,它是在预发布版中,使用以下命令安装:
gem install nokogiri --prerelease
我有类似的沮丧,但我刚刚删除了Ruby 2.0,以及我安装的DevKit以保持简单。
然后我:
- 安装1.9.3
( http://rubyforge.org/frs/download.php/76952/rubyinstaller-1.9.3-p429.exe ) - DevKit(DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe)
现在一切正在发挥作用。
请确保您通过以下所有检查: https : //github.com/oneclick/rubyinstaller/wiki/Development-Kit
以下是如何使用Chocolatey和DevKit x64安装适用于Windows 8.1 x64的Nokogiri。
https://stackoverflow.com/a/22210252/148844
cinst libxml2 cinst libxslt cinst libiconv
gem install nokogiri – –with-xml2-include = C:\ Chocolatey \ lib \ libxml2.2.7.8.7 \ build \ native \ include –with-xml2-lib = C:\ Chocolatey \ lib \ libxml2.redist。 2.7.8.7 \ build \ native \ bin \ v110 \ x64 \ Release \ dynamic \ cdecl –with-iconv-include = C:\ Chocolatey \ lib \ libiconv.1.14.0.11 \ build \ native \ include –with-iconv -lib = C:\ Chocolatey \ lib \ libiconv.redist.1.14.0.11 \ build \ native \ bin \ v110 \ x64 \ Release \ dynamic \ cdecl –with-xslt-include = C:\ Chocolatey \ lib \ libxslt。 1.1.28.0 \ build \ native \ include –with-xslt-lib = C:\ Chocolatey \ lib \ libxslt.redist.1.1.28.0 \ build \ native \ bin \ v110 \ x64 \ Release \ dynamic
刚刚遇到这个问题,看起来Nokogiri不支持64位Ruby: https : //github.com/sparklemotion/nokogiri/issues/864解决方案似乎是使用32位Ruby,或者等到它们支持64位Ruby 。
更新:更新以反映来自@magiccrafter的评论,现在应该支持64位Ruby。