错误 - " gem install rails" - 缺少libxml2

时间:2015-03-18 06:21:54

标签: ruby-on-rails ruby nokogiri libxml2

我一直在处理Rails安装说明(http://railsapps.github.io/installrubyonrails-mac.html),一切都没问题,直到我到 New Rails Application gem install rails部分。当我运行时,我得到了libxml2。这是日志:http://codecascade.com/sIjhQ/raw

我有类似的问题安装nokogiri,我能够解决它的唯一方法是

gem install nokogiri -- --use-system-libraries

我在OS X 10.10.2上。我也安装了RubyMine,如果它可能相关的话。

8 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,并且能够按如下方式解决:

仅在使用系统库时单独安装Nokogiri:

gem install nokogiri -- --use-system-libraries

...但在执行bundle install时仍然失败。因此,只需配置bundler以使用系统库构建Nokogiri:

bundle config build.nokogiri --use-system-libraries

答案 1 :(得分:6)

您没有所需的库,谷歌解决方案很容易:

 brew install libxml2

答案 2 :(得分:4)

尝试使用:

sudo gem install rails -- --use-system-libraries --with-xml=/usr/local/Cellar/libxml2/

答案 3 :(得分:1)

我有同样的问题,在Debian上似乎只是缺少'dev'库的问题,可能需要在安装期间编译源代码(我猜)。我通过安装(通过apt-get或aptitude)以下包解决了这个问题:

  • 的libxml2-dev的
  • Libxslt1-dev的

答案 4 :(得分:1)

这对我有用(based on this Github thread):

gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/

作为一个说明,我的问题是:

...
checking for main() in -llzma... yes
checking for xmlParseDoc() in libxml/parser.h... no
checking for xmlParseDoc() in -lxml2... no
checking for xmlParseDoc() in -llibxml2... no
-----
libxml2 is missing.  Please locate mkmf.log to investigate how it is failing.
-----
*** 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=/Users/seanshadmand/.rvm/rubies/ruby-2.1.1/bin/ruby
    --help
    --clean
    --use-system-libraries
    --enable-static
    --disable-static
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --enable-cross-build
    --disable-cross-build
    --with-xml2lib
    --without-xml2lib
    --with-libxml2lib
    --without-libxml2lib

To see why this extension failed to ...

extconf failed, exit code 1

答案 5 :(得分:0)

由于某种原因,libxml2的nokogiri构建过程将错误地放置构建版本。

而不是lib/它将会lib64/。 Nokogiri将在错误的目录中查找它。

更多信息: https://github.com/sparklemotion/nokogiri/issues/1334

答案 6 :(得分:0)

Simar提到它对我有用。

sudo gem install rails -- --use-system-libraries --with-xml=/usr/local/Cellar/libxml2/

如果您遇到麻烦,请在Mac上安装。 https://gorails.com/setup/osx/10.11-el-capitan

此外,如果您找不到/ usr / local / Cellar / libxml2 / existing,您可能需要自制它。

brew install libxml2

如果你像我一样在新安装的OS X EL CAPITAN上安装它,你可能会发现自制软件已经安装了libxml2并且brew不会用它新安装的libxml2替换现有的libxml2在/ usr / local / Cellar / libxml2 /,这是我们真正应该链接库的那个。由于系统默认的libxml2无法成功链接。

答案 7 :(得分:0)

我尝试时遇到同样的问题:

gem install libxml-ruby -v '3.0.0

运行以下内容为我解决了Mac上的问题:

gem update --system

xcode-select --install

gem install nokogiri

有关详细信息,请参阅installing nokogiri