【问题标题】:Error - "gem install rails" - libxml2 is missing错误 - “gem install rails” - libxml2 丢失
【发布时间】:2015-03-18 06:21:54
【问题描述】:

我一直在研究 Rails 安装说明 (http://railsapps.github.io/installrubyonrails-mac.html),直到我到达 New Rails 应用程序 下的 gem install rails 部分之前一切正常。当我运行时,我得到了 libxml2 丢失。这是日志:http://codecascade.com/sIjhQ/raw

我在安装 nokogiri 时遇到了类似的问题,我能够解决它的唯一方法是使用

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

我使用的是 OS X 10.10.2。如果可能相关,我也安装了 RubyMine。

【问题讨论】:

  • 请不要链接到与问题相关的信息。要求人们在另一个站点的安装日志中查找信息只会阻碍潜在的帮助。另外 when 链接中断您的问题将丢失有用的信息。相反,请在您的问题中总结该信息。
  • 回复可能会帮助某人(包括我未来的自己)github.com/termux/termux-packages/issues/…

标签: ruby-on-rails ruby nokogiri libxml2


【解决方案1】:

我刚刚遇到了同样的问题,并能够解决如下:

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

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

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

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

【讨论】:

    【解决方案2】:

    你没有需要的库,google解决方法很简单:

     brew install libxml2
    

    【讨论】:

    • 您明白这需要 OP 使用/安装自制软件,对吧?我不了解它们,但我不喜欢在我的 Mac 上运行那种类型的第三方包管理器。特别是不要获得一个图书馆。而且我从来不需要为了让rails正常工作。
    • @DaveMunger nokogiri 需要 libxml2 - 所以您不想安装 libxml2?你不能使用nokogiri。 OP 说,他在 OS X 10.10.2 上。 Home brew - 最受欢迎的搜索 n 安装库服务。
    • 我说我不想安装自制软件。您可以在不使用自制软件的情况下安装 libxml2。我无法判断您在此回复中是否在讽刺,但您在原始答案中的语气只是有点评判。不同的人处理事情的方式不同,我们都可以相处。 :) 编辑:我忘了说,我已经在 Mac 上安装了几次 libxml2,而没有使用自制软件。
    • @DaveMunger 哦,对不起,现在我明白你的意思了。但我认为有时 - 最流行的解决方案 - 最佳解决方案(对于初级)因为初级在从很多意见中选择时遇到麻烦,如果他对每一个意见一无所知。所以通常我的计划是 1)你必须使用 A,然后回答诸如“什么是 A?”之类的问题。 “我如何安装A?” “除了A还有其他解决方案吗?”。也许我错了。这只是我的理论。我在大学当老师只教学生 1 年 course "information systems"
    • 我同意 Homebrew 是最简单的方法,如果您可以安装它的话。
    【解决方案3】:

    试试这个:

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

    【讨论】:

    • 我收到一个错误:Operation not permitted - /usr/bin/sprockets
    【解决方案4】:

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

    • Libxml2-dev
    • Libxslt1-dev

    【讨论】:

      【解决方案5】:

      这对我有用 (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
      

      【讨论】:

        【解决方案6】:

        由于某种原因,libxml2 的 nokogiri 构建过程会放错构建版本。

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

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

        【讨论】:

          【解决方案7】:

          正如 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/ 存在,你可能需要自制它。

          brew install libxml2
          

          如果你像我一样在新安装的 OS X EL CAPITAN 上安装它,你可能会发现 homebrew 告诉你 libxml2 已经安装,brew 不会用新安装的 libxml2 替换现有的 libxml2,它位于 /usr/ local/Cellar/libxml2/,这是我们真正应该将库链接到的地方。由于系统默认的libxml2不会链接成功。

          【讨论】:

            【解决方案8】:

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

            gem install libxml-ruby -v '3.0.0
            

            运行以下命令为我解决了 Mac 上的问题:

            gem update --system
            
            xcode-select --install
            
            gem install nokogiri
            

            详情请见installing nokogiri

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-09-09
              • 2014-10-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多