Sudo gem install nokogiri
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/Users/sajeev86/.rvm/rubies/Ruby-1.8.7-p352/bin/Ruby extconf.rb
checking for libxml/parser.h... no
-----
libxml2 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.
のこぎりをインストールできません。これはしばらくの間私に負担をかけています。 MacPortsとHomebrewを介して依存関係もインストールしました。
適切なディレクトリが相互に参照されていないと感じていますか?しかし、修正方法の手掛かりはありません。
Mavericksで、Homebrewを使用してライブラリをインストールし、gemをインストールする前に_NOKOGIRI_USE_SYSTEM_LIBRARIES=1
_を設定するとうまくいきました。
まとめ:
以前にインストールされている場合は、gemをアンインストールします。
_$ gem uninstall nokogiri
_
Homebrewを使用して_libxml2
_、libxslt
およびlibiconv
をインストールします。
_$ brew install libxml2 libxslt libiconv
_
リンクするライブラリへのパスを指定して、gemをインストールします。$ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"
絶対にnoneここにある他の回答は私にとってうまくいきました。
Mavericksの最新バージョンでは、私に成功した唯一の方法は次のとおりです。
$ brew install libxml2 libxslt libiconv
$ Sudo gem install nokogiri -v '1.6.5' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
Lionでも同じ問題が起こった。何時間も投稿を読んだり、自作やmacportsを試したりしました。これを見つけたとき post で、.rvm/gems/Ruby-1.8.7-p358/gems/nokogiri-1.4.4の内容を読みました。 /ext/nokogiri/mkmf.log、見た:
find_header: checking for libxml/parser.h... -------------------- no
"/usr/bin/gcc-4.2 -E -I. -I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/lib/Ruby/1.8/i686-darwin10.8.0 -I. -I-I-I/opt/local/include -I-I-I/usr/local/include -I-I-I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include -I-I-I/usr/include -I-I-I/usr/include/libxml2 -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include/libxml2 -I-I/opt/local/include -I-I/usr/local/include -I-I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include -I-I/usr/include -I-I/usr/include/libxml2 -I/opt/local/include -I/usr/local/include -I/Users/me/.rvm/rubies/Ruby-1.8.7-p358/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -g -O2 -fno-common -pipe -fno-common -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -o conftest.i"
checked program was:
/* begin */
1: #include <libxml/parser.h>
/* end */
ただし、gcc-4.2は存在しませんでした。
$ ls /usr/bin/gcc*
/usr/bin/gcc
したがって、gcc-4.2をgccへのシンボリックリンクにすることで、問題を解決してnokogiriをインストールすることができました。
Sudo ln -s gcc gcc-4.2
私はマーブリックについて同じ問題に遭遇し、解決策は
xcode-select --install
しかし、それはAppleダウンロードページにはそのインストーラが公開されていないため、機能していませんでした。したがって、Mavricksのコマンドラインツールを使用する場合は、有料アカウントが必要です。インストールすると、このNokogiriの問題は発生しなくなります。
エラーメッセージ(http://nokogiri.org/tutorials/installing_nokogiri.html)に示されているURLを確認します。問題は、使用しているHomebrewのバージョンですか。
brew -v
0.8+に更新します
brew update
brew upgrade
そして、もう一度インストールを試みます。
brew install libxml2 libxslt
brew link libxml2 libxslt
gem install nokogiri
brew install libxml2 libxslt
gem install nokogiri -v '1.6.5' -- --use-system-libraries
私に関しては、それは役立ちます:
brew install libxml2 libxslt
許可が拒否された場合Sudo chown -R $USER /Library/Caches/Homebrew/
Sudo env ARCHFLAGS="-Arch x86_64"
export NOKOGIRI_USE_SYSTEM_LIBRARIES=1
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri
ヨセミテでは私が使用しました:
brew install libxml2 libxslt
Sudo gem install nokogiri -v '1.6.5' -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib
上記のコマンドのいくつかに非常に近いがlibconvなし
パーティーには遅れますが、MacPortsの使用中に誰かがこの問題をまだ抱えている場合に備えて:
/ include dirを.profileファイルのPATHに追加して、nokogiriがそれを見つける場所を認識できるようにします。
例えば.
MacPortsは.profileファイルに書き込み、デフォルトで次の行を追加します。
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
まず、/ includeパスを次のように追加します。
export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/include/:$PATH
次に、同じターミナルウィンドウからこれを実行します。
source ~/.profile
(これにより、変更がないか.profileファイルを再確認するように端末に指示します)
最後に、同じターミナルウィンドウからgemをインストールしてみます。
Sudo gem install nokogiri
上記の問題に遭遇した、やや古いシステムについては、具体的には:
FENG-SHUI:demo Eric$ brew install libxml2
==> Downloading ftp://xmlsoft.org/libxml2/libxml2-2.9.0.tar.gz
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
######################################################################## 100.0%
==> Patching patching file threads.c patching file xpath.c
==> ./configure --prefix=/usr/local/Cellar/libxml2/2.9.0 --without-python
==> make
==> make install
==> Caveats This formula is keg-only: so it was not symlinked into /usr/local.
Mac OS X already provides this software and installing another version in parallel can cause all kinds of trouble.
Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables:
LDFLAGS: -L/usr/local/opt/libxml2/lib
CPPFLAGS: -I/usr/local/opt/libxml2/include
Error: Failed to create: /usr/local/opt/libxml2
Things that depend on libxml2 will probably not build.
==> Summary /usr/local/Cellar/libxml2/2.9.0: 273 files, 11M, built in 2.0 minutes
FENG-SHUI:demo Eric$ brew install libxml2 libxslt
Error: libxml2-2.9.0 already installed
Error: /usr/local/opt/libxml2 not present or broken Please reinstall libxml2. Sorry :(
これはlibxml2とlibxsltをうまく実行するための魔法の公式でした:
# latest version 2.9.0
brew install libxml2
# installing libxslt from source code
# get latest libxslt from ftp://xmlsoft.org/libxml2/libxslt-git-snapshot.tar.gz..
# then
./configure --prefix=/usr/local/Cellar/libxslt/1.1.28 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.9.0
make
Sudo make install
# installing nokogiri with this new compiled libs
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.0/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.0/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28
この男のおかげで: https://Gist.github.com/fabioyamate/44316
これが誰かを助けることを願っています!
これを機能させるには、次のコマンドを使用する必要がありました。
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
(ソース: http://www.virtlab.cx/Ruby-fix-error-install-nokogiri-yosemite/ 、作者に感謝)
これはOSXで私にとってうまくいきました-@remebererの答えと同じですが、完全なパスがあります。
Sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2
コマンドに--with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib
を追加してみてください。MacPortslibxml2がある場所を想定しています。
私はこのブログポストが見つかるまで何時間もこれに苦労しました: http://www.markhneedham.com/blog/2010/07/08/installing-Ruby-1-9-2-with-rvm-on-雪ヒョウ
コマンドを実行する
ファイル/usr/local/lib/libxml2.2.dylib
返されたターミナルで
/usr/local/lib/libxml2.2.dylib:Mach-O動的にリンクされた共有ライブラリi386
つまり、私のlibxml2.2は32ビットシステム用にコンパイルされたので、64ビットOS(ライオン)用にlibxml2を再コンパイルする必要がありました。
まず、LATEST_LIBXML2を ftp://xmlsoft.org/libxml2 からダウンロードし、次のコマンドを実行しました。
tar xzvf LATEST_LIBXML2
cd libxml2-2.8.0
./configure --with-python =/System/Library/Frameworks/Python.framework/Versions/2.3 /
make
次に、同じサイトからLATEST_LIBXSLTをダウンロードして、次のコマンドを実行しました。
tar xzvf LATEST_LIBXSLT
cd libxslt-1.1.26
。/構成、設定
make
Sudo make install
ランニング
ファイル/usr/local/lib/libxml2.2.dylib
再び戻った
/usr/local/lib/libxml2.2.dylib:Mach-O 64ビット動的リンク共有ライブラリx86_64
そしてようやくのこぎりをインストールできました!
私にとっては、私は単に次のことをしました
xcode-select --install
gem install nokogiri
より詳細なトラブルシューティングについては、チェックアウト Nokogiriのインストール
古いバージョンのNokogiri、つまり1.6より前のバージョンをインストールしている場合、これが役立つ場合があります。
Nokogiriインストールガイド で、彼らは次のように述べています:
Nokogiriはコンパイルしてlibxml2とlibxsltの両方に対して動的にリンクする必要があるため、インストールが複雑であるという評判を得ています。
Nokogiri 1.6以降、libxml2およびlibxsltソースコードはNokogiriにバンドルされ、gem-install-timeでコンパイルされます。このドキュメントは、すべてのバージョン1.6.4以降で機能します。
(Nokogiriの以前のバージョンのインストールのサポートが必要な場合は、このドキュメントのgit履歴を確認することをお勧めします。)
確かに、インストールは難しいですが、方法はあります。私はreadmeの履歴を詳しく調べて、よく書かれたコミットメッセージでこれを決定しました。
" 自作、私はあなたが嫌いです。 "
そのメッセージとここの他の回答から、私はNokogiriをインストールするときにlibxml2のlib、dir、includeディレクトリについて非常に具体的にする必要があることを知りました。以下は私にとってはうまくいきましたが、libxml2ソフトウェアのバージョンに一致するように更新してください(私のものは2.9.2
そして私はノコギリをインストールしていた1.5.0
):
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -v '1.5.0' --
--use-system-libraries
--with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib
--with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config"
--with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"
--with-xml2-dir=/usr/local/Cellar/libxml2/2.9.2/
--with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2
makeコマンドが/ usr/local/opt/Apple-gcc42/binでgcc-4.2を探していたことを除いて、Mountain Lionで同様のインストール問題に遭遇しました
これで問題は解決しました。 libxml2またはlibxsltをbrewでインストールしたり、-withオプションを追加したりする必要はありません。
mkdir -p /usr/local/opt/Apple-gcc42/bin
ln -s /usr/bin/gcc /usr/local/opt/Apple-gcc42/bin/gcc-4.2