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

8
我一直在按照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,如果有必要的话。


可能是Libxml2在Mac OS X 10.10上缺失的问题的重复。 - smathy
请不要链接到与问题相关的信息。要求人们在另一个网站上追查安装日志中的信息只会使潜在的帮助者望而却步。此外,当链接失效时,您的问题将缺少有用的信息。相反,请在您的问题中总结该信息。 - the Tin Man
回馈信息可能会对某些人有帮助(包括我自己的未来),请查看 https://github.com/termux/termux-packages/issues/2340#issuecomment-660365808 - cregox
8个回答

7
我刚遇到了同样的问题,并通过以下方式解决:
只有在使用系统库时,单独安装Nokogiri才有效。
gem install nokogiri -- --use-system-libraries

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

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

6

你没有所需的库,而通过谷歌搜索解决方案是如此容易:

 brew install libxml2

1
你明白这需要使用/安装homebrew,对吧?我不知道他们怎么想,但我不喜欢在我的Mac上运行那种第三方软件包管理器。特别是为了获取一个单一的库。而且我从来没有必要这样做才能让rails工作。 - Dave Munger
@DaveMunger nokogiri需要libxml2库 - 所以你不想安装libxml2吗?那你就不能使用nokogiri了。OP说他在OS X 10.10.2上。Homebrew是最流行的搜索和安装类似库的服务。 - Legendary
我说过我不想安装homebrew。你可以在不使用homebrew的情况下安装libxml2。我无法确定你在回复中是否在讽刺,但是你在原始答案中的语气有点带有评判色彩。不同的人以不同的方式处理事情,我们都可以相处融洽。:) 编辑:我忘了说,我已经在Mac上几次安装了libxml2,而没有使用homebrew。 - Dave Munger
@DaveMunger 哦,抱歉,现在我理解你的意思了。但是我认为有时候 - 最流行的解决方案 - 对于初学者来说是最好的解决方案,因为初学者在从众多观点中进行选择时会遇到困难,如果他对每种观点都一无所知。因此,通常我的计划是 1)您必须使用A 然后回答诸如“什么是A?”“我如何安装A?”“除了A还有其他解决方案吗?”之类的问题。也许我错了。这只是我的理论。我作为一名教师,在大学里教授学生仅为期1年的“信息系统”课程。 - Legendary
我确实同意Homebrew是最简单的方法,如果您愿意安装它的话。 - Dave Munger

4
尝试使用以下内容:
sudo gem install rails -- --use-system-libraries --with-xml=/usr/local/Cellar/libxml2/

1
我收到一个错误:操作不允许 - /usr/bin/sprockets - Michael Ozeryansky

1
这对我有用(基于这个Github线程):
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

1

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

  • Libxml2-dev
  • Libxslt1-dev

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/ 目录,请尝试使用Homebrew安装。

brew install libxml2

如果您正在像我一样在新安装的OS X EL CAPITAN上安装它,您可能会发现homebrew告诉您libxml2已经安装,并且brew不会用其新安装的libxml2替换现有的libxml2,而这个新的libxml2位于/usr/local/Cellar/libxml2/,这才是我们真正应该将库链接到的位置。因为系统默认的libxml2无法成功链接。

0

0
我在尝试时遇到了相同的问题:
gem install libxml-ruby -v '3.0.0

以下命令可解决我在Mac上遇到的问题:

gem update --system

xcode-select --install

gem install nokogiri

请参阅安装nokogiri以获取更多详细信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接