109

OSX (Lion) を Mavericks にアップグレードしましたが、自分のプロジェクトに Nokogiri をインストールできません。

XCode 5.0.1、コマンド ライン ツール (を使用xcode-select --install) を既にインストールしており、Homebrew から libxml2 を既にインストールしていますが、まだ問題があります。

エラーは次のとおりです。

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** 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
    --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/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/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
    --without-xml2-lib=${xml2-dir}/lib
    --with-xslt-dir
    --without-xslt-dir
    --with-xslt-include
    --without-xslt-include=${xslt-dir}/include
    --with-xslt-lib
    --without-xslt-lib=${xslt-dir}/lib
    --with-libxslt-config
    --without-libxslt-config
    --with-pkg-config
    --without-pkg-config
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:116:in `<main>'


Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.

Homebrew から libxml2、libxslt、libiconv をインストールし、params を設定して Nokogiri をインストールしましたが、動作しません。

私の環境で何が問題なのかわかりません、助けてもらえますか?

4

30 に答える 30

244

以下を使用して、Mac OS X 10.9 Mavericksに完全な XCode インストールを使用して Nokogiri をインストールすることもできます。

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

アップデート

Yosemiteを使用している場合は、次のコマンドが機能します。

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

または、実際にはあなたのMacOSX10.11.sdkフォルダーにある可能性があります (私の場合は 2015 年 9 月 18 日現在)。したがって、El Capitan にまだ完全に対応していない場合でも、最近 XCode を更新したので、El Capitan SDK を使用する必要があるかもしれません。次に続くパス:

アップデート

El Capitanを使用している場合は、次のコマンドが機能します。

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

アップデート

Sierraを使用している場合は、次のコマンドが機能します。

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries
于 2013-11-06T08:50:46.510 に答える
30

ここでアニメーションGIFをナビゲートした後、私がしなければならなかったことは、単にうまくいっxcode-select --installたことだけでした.gem install nokogiri

于 2014-02-13T05:45:05.650 に答える
20

このログを見つけたところ、gcc-4.2 が見つからないことがわかりました。

package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2

package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2

package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  conftest.c  -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L.  -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib     -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2  -lxml2  -lruby.1.9.1-static  -lpthread -ldl -lobjc  "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

この問題を解決するために、homebrew を使用して apple-gcc42 をインストールbrew install apple-gcc42し、 /usr/bin へのシンボリック リンクを作成しました。

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2

于 2013-10-28T19:55:33.477 に答える
15

Xcode 5.1 を実行している場合、コマンド ライン ツールは nokogiri 1.6.1 では機能しません。2013 年 10 月下旬のツールをAppleからダウンロードする必要があります。あなたがそれを実行したら

sudo xcode-select -s /Library/Developer/CommandLineTools/

Xcode 5.0.X コマンド ライン ツールを使用するようにマシンをセットアップするには、次のコマンドを実行します。

gem install nokogiri

コマンド ライン ツールを後で Xcode.app バージョンにリセットする場合は、実行します。

sudo xcode-select -r

または、不明なコマンド ライン引数を無視するフラグを追加することもできます。次に、インストールは次のようになります。

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri
于 2014-03-28T03:56:05.873 に答える
10

私は OSX Mavericks を使用していますが、問題は Ruby の不適切なインストールであることが判明しました。

そこで、 rvm を使用して ruby​​ を再インストールしました。

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

それから私はすることができました

gem install nokogiri --no-ri --no-rdoc

問題が解決しました。

于 2014-05-02T15:48:46.183 に答える
9

私は通常、システム提供のものに固執するのが好きです。これは私のために働いた:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/
于 2014-08-11T01:39:37.197 に答える
5

Apple から Mavericks 10.9.5 アップデートと 10.9 Developer tools アップデートをインストールした直後に、この問題に遭遇しました。を実行xcode-select --installしましたが、問題は解決しませんでした。次に、XCode を開き、eula に同意して、XCode を終了しました。これで問題は解決しました。

于 2014-09-27T20:55:47.817 に答える
2

ここに別の参照があります:

system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

nokogiriのインストール中にエラーが発生しました

このようなエラー:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)

最初に開発ツールをインストールする必要があります。

次に、おそらく必要です:

$ xcode-select --install

または、次のようなエラーが発生した場合

checking for libxml/parser.h... no

次の方法で lib パスを修正するだけです。

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

バンドルには次のようなものが必要です:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install
于 2015-03-19T01:34:25.270 に答える
1

Maverick にアップグレードした後、同様の問題が発生しました。Ruby 1.9.2-p320 で RVM を使用しており、ここに記載されているいくつかの解決策を試しましたが、問題は解決しませんでした。

それから Ruby 2.1.2 に変更し、bundle installすぐに Nokogiri をインストールしました。

于 2014-05-30T12:10:05.550 に答える
1

マーベリックスの新規インストールでも同じエラーが発生しました。判断を誤った後、Xcode アプリバンドルの名前を に変更しましたXcode 5.0.1.app

どうやら Nokogiri インストール スクリプトはそのパスを引用していないため、ファイル名のスペースがあらゆる種類のトラブルを引き起こしました。brew install libxml2エラーが明らかになったのは、私が試してからでした。

教訓:ファイル名のスペースは悪です。

于 2013-11-05T23:16:08.933 に答える
1

Rails 3 バージョンのアプリケーションを実行しようとしているときに、過去 2 週間から同じ問題に直面していました。

問題は、rvm/rbenv が C コンパイラを使用していないことです。

このコマンドを rvm に使用して、互換性のある C コンパイラを取得します。

CC=gcc rvm install-version

したがって、Ruby 1.9.3 を使用している場合は、このように使用します

CC=gcc rvm install-1.9.3

インストールなどをバンドルできない場合は常に、このコマンドを使用してください。 このことは、El Capitan、rails 3.2.16、ruby 1.9.3、mysql 5.7 で動作しています。問題が解決されることを願っています。

Rails 3 バージョンのアプリケーションを実行しようとしているときに、過去 2 週間から同じ問題に直面していました。

問題は、rvm/rbenv が C コンパイラを使用していないことです。

このコマンドを rvm に使用して、互換性のある C コンパイラを取得します。

CC=gcc rvm install-version

したがって、Ruby 1.9.3 を使用している場合は、このように使用します

CC=gcc rvm install-1.9.3

インストールなどをバンドルできない場合は常に、このコマンドを使用してください。

このことは、El Capitan、rails 3.2.16、ruby 1.9.3、mysql 5.7 で動作しています。問題が解決されることを願っています。 また、すでに Xcode を持っていて、gem をインストールしても同じエラーが発生しない場合は、この解決策を試してください。

于 2016-05-24T05:02:49.490 に答える
1
brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
    --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/*
于 2014-05-26T15:03:55.897 に答える
1

バンドラーを使用しているときに、el capitan でこの問題が発生している場合。

xcode コマンド ライン ツールがインストールされていることを確認し、これを実行します。

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries
于 2016-01-28T08:19:11.977 に答える
1

私にとってのエラーは、gcc (Homebrew からインストールされた 4.2.1) が次のように不平を言っていることでした。

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

x86_64 のみを強制することで問題を解決しました。

ARCHFLAGS="-arch x86_64" gem install nokogiri 
于 2014-09-29T14:21:39.347 に答える
1

アップグレード直後にこの同じ問題に遭遇した後、ここに調査結果を追加しました: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

修正は、単に次の 2 つのコマンドです。

xcode-select --install
gem install nokogiri

それが役に立てば幸い。

于 2013-12-05T21:21:54.863 に答える
0

これらの答えはどれも私の特定のケースではうまくいきませんでした。私は初心者なので、私の解決策が他の誰かを助けることができるかもしれないと考えました.

Yosemite を使用しており、Ruby 1.9.3p547 を使用していました。p547 にはセキュリティ上の問題があったため、Ruby 1.9.3p550 以降に更新しようとしていました。私は RVM を使用してから、自分の gem を移行しようとしましたが、それらの多くは移行できませんでした。次に、インストールをバンドルしようとしましたが、失敗し、さまざまなパスと依存関係の間の競合である可能性があると考えたため、古いバージョンの Ruby を削除しました。これですべてが壊れました。

XCode をダウンロードし、最近 CLI ツールを更新したにもかかわらず、C コンパイラが見つからないというメッセージが表示され続けました。サードパーティの GCC をダウンロードするように指示された別の Web サイトを見つけました。それはすべてを悪化させました。

プロファイルと PATH を修正する必要がある、または OSX を再インストールする方が簡単かもしれないというメッセージが表示されます。だから私はしました。

とにかく、話が長くなるだけです。最終的にうまくいった解決策は、RVM を取り除き、brew を使用して必要な Ruby バージョンをダウンロードしてから実行することbundle installでした。Nokogiri FIRST の正しいバージョンをインストールします。

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install
于 2014-12-12T21:50:49.327 に答える
0

私もこの問題を抱えていました。実行brew doctorすると、予期しないバージョンの libiconv が /user/local/lib にあることがわかりました。

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libcharset.1.dylib
    /usr/local/lib/libiconv.2.dylib

そこで、それらを削除して、libxml を再作成しました。

rm  /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
  /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

最後に、nokogiri をインストールしました。

Jeff$ gem install nokogiri
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed
于 2013-12-08T16:15:12.810 に答える
-3

コマンドライン ツールのバージョンを確認します。Xcode 5.0.X コマンド ライン ツールを使用するようにマシンをセットアップし、次を実行します。

gem install nokogiri
于 2014-06-01T06:05:35.207 に答える