【问题标题】:gem install nokogiri -v '1.6.3.1' on OS X 10.10 Yosemite not installing在 OS X 10.10 Yosemite 上 gem install nokogiri -v '1.6.3.1' 没有安装
【发布时间】:2014-12-25 05:22:46
【问题描述】:

更新到 OS X 10.10 Yosemite 后,我无法安装 nokogiri (1.6.3.1)

> bundle

Building nokogiri using packaged libraries.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /Users/ju/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb
Building nokogiri using packaged libraries.
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.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=/Users/ju/.rvm/rubies/ruby-2.1.2/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

extconf failed, exit code 1

Gem files will remain installed in /Users/ju/.rvm/gems/ruby-2.1.2@sumup/gems/nokogiri-1.6.3.1 for inspection.
Results logged to /Users/ju/.rvm/gems/ruby-2.1.2@sumup/extensions/x86_64-darwin-13/2.1.0-static/nokogiri-1.6.3.1/gem_make.out
An error occurred while installing nokogiri (1.6.3.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.3.1'` succeeds before bundling.

【问题讨论】:

    标签: ruby macos nokogiri osx-yosemite


    【解决方案1】:
    > brew update
    > brew install libxml2 libxslt libiconv
    
    > brew --prefix libxml2
    /usr/local/opt/libxml2
    
    > brew --prefix libxslt
    /usr/local/opt/libxslt
    
    > brew --prefix libiconv
    /usr/local/opt/libiconv
    
    > gem uninstall nokogiri
    
    > gem install nokogiri -v 1.6.3.1 -- --with-xslt-dir=/usr/local/opt/libxslt --with-iconv-dir=/usr/local/opt/libiconv --with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xslt-config=/usr/local/opt/libxslt/bin/xslt-config
    

    基于:Mac fix 1 - Install the Nokogiri gem on Mac OS 10.9 Mavericks

    其他解决方案:

    > gem install nokogiri -v 1.6.3.1 -- --use-system-libraries --with-xml2-include=/usr/local/opt/libxml2/include/libxml2/
    

    来自 cmets 的另一个解决方案:

    > xcode-select --install gem install nokogiri
    

    【讨论】:

    • 我认为不需要--prefix(我从未使用过)只需 brew install 二进制库然后执行gem install nokogiri
    • 我正在使用它来获得正确的路径,对我来说它是必需的
    • 在 10.10 Yosemite 中为我工作(没有 xcode-select..)
    • 为什么每次我更新 osx 时只有 nokogiri 失败。好痛
    • 对我有用的是上面提到的gem install nokogiri -v x.x.x -- --use-system-libraries --with-xml2-include=/usr/local/opt/libxml2/include/libxml2/
    【解决方案2】:

    以下内容在 Yosemite 10.10.3 上为我工作:

    sudo gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --use-system-libraries
    

    取自Nokogiri issues tracker

    【讨论】:

      【解决方案3】:

      酿造更新 brew install libxml2 libxslt libiconv

      brew --prefix libxml2 /usr/local/opt/libxml2

      brew --prefix libxslt /usr/local/opt/libxslt

      brew --prefix libiconv /usr/local/opt/libiconv

      gem 卸载 nokogiri

      gem install nokogiri -v 1.6.3.1 --with-xslt-dir=/usr/local/opt/libxslt --with-iconv-dir=/usr/local/opt/libiconv --with-xml2 -config=/usr/local/opt/libxml2/bin/xml2-config --with-xslt-config=/usr/local/opt/libxslt/bin/xslt-config

      【讨论】:

        【解决方案4】:

        如果您使用 bundle install --path vendor/bundle 将 gem 安装到本地文件夹并出现错误

        Building nokogiri using packaged libraries.
        Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
        

        然后,你需要做以下使用

        bundle config build.nokogiri --use-system-libraries
        bundle install --path vendor/bundle
        

        然后安装将通过

        Fetching nokogiri 1.6.3.1
        Installing nokogiri 1.6.3.1 with native extensions
        Building nokogiri using system libraries.
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-02
          • 2015-03-01
          • 2014-07-28
          • 2014-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-16
          相关资源
          最近更新 更多