162

Mac OS 10.9.3 に Nokogiri をインストールしようとしましたが、何をしようとしても、最終的に次のエラー メッセージが表示されてインストールに失敗しました。

$ sudo gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building native extensions with: '--with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib'
This could take a while...
Building nokogiri using packaged libraries.
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Building nokogiri using packaged libraries.
checking for iconv.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
-----
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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/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


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.2.1/ext/nokogiri/gem_make.out

brew を使用した libxml2 と libxslt のビルドとインストール、およびソースからの libiconv のビルド (「Nokogiri のインストール」で説明) など、Web で見つけた多くのヘルプに従った後でも、エラーは同じままです。

Nokogiri のインストールを実行しようとすると、libxml2 と libxslt は正常に検出されたようですが、libiconv は検出されませんでした。

これらのことをよく知っている人は、ノコギリをインストールする方法を知っていますか?

4

33 に答える 33

240

同じ問題がありました。残念ながら、「Nokogiri のインストール」では、Iconv の問題はカバーされていません。これが私が問題を解決した方法です。

最初にhomebrewをインストールすると、作業が楽になります。すでにインストールされている場合は、次のように更新して最新の式を取得してください。

brew update

: OSX 10.9 以降では、libiconv をインストールできるように xCode コマンド ツールをインストールする必要がある場合があります。

xcode-select --install

次に、libiconv の新しいバージョンをインストールします

brew install libiconv

次に、gemをインストールします

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
于 2011-05-28T16:59:13.867 に答える
96

システム ライブラリを使用してみてください。OSX には新しいバージョンの libiconv が付属していますが、デフォルトのインストール スクリプトには問題があるようです

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

編集:Geoffが述べたように、バンドラーを使用している場合は、次のことができます:

bundle config build.nokogiri --use-system-libraries
于 2014-07-10T15:11:14.407 に答える
20

私はついにこの問題を解決することができました。上記の解決策のどれも私のためにそれを完全に修正しませんでした。

gem install nokogiriOSX Lion 10.7.2を試してみると、このエラーが発生していました。まず、このエラーはlibiconvが欠落していると言って実際の問題を覆い隠します。これは、nokogiriがlibxsltまたはlibxml2を見つけられなくても同じエラーが発生するためです。私の場合は、見つけることができませんでした。

そこで、http://nokogiri.org/tutorials/installing_nokogiri.htmlのHomebrewセクションの指示に従いました(libxml2の最新バージョンを考慮して少し変更しました)。

brew install libxml2
brew link libxml2

# install libxslt from source
wget ftp://xmlsoft.org/libxml2/libxslt-1.1.26.tar.gz
tar -zxvf libxslt-1.1.26.tar.gz
cd libxslt-1.1.26
./configure --prefix=/usr/local/Cellar/libxslt/1.1.26 --with-libxml-prefix=/usr/local/Cellar/libxml2/2.7.8
make
sudo make install

この時点で、のこぎりサイトの指示に従って試してみました

gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26

ただし、ソースからlibxsltをビルドする/includeと、ファンキーな場所にフォルダーがインストールされるため、これはまだ失敗しました。libしたがって、次のようにとincludeフォルダを個別に指定する必要があります。

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt

これはまだ機能しませんでした(同じlibiconvエラー)ので、必要な3つのライブラリ(libxslt、libxml2、libiconv)をすべて指定しようとしました。

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8

今、私は別のエラーが発生しました!それでもエラーでしたが、少なくとも違いました。makeプロセスが失敗しました:

in /opt/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64

ええと、何?たくさんのグーグルの後、私はこの奇跡の投稿に出くわしました:http: //www.refresherate.com/2010/01/08/fixing-ld-warning-in-usrlocalliblibz-dylib-file-is-not-of-required -建築/

どうやらOSXLionにはlibzライブラリのいくつかの悪いバージョン(libz.dylib, libz.1.dylib, libz.1.2.4.dylib)が付属しており、それらをXcodeSDKの最新バージョンに置き換える必要があります。記事は私ができるよりもそれをよりよく説明しているので、特定の指示については上記のリンクを読んでください。

これらが交換されたら、私は走りました

gem install nokogiri -- --with-xslt-lib=/usr/local/Cellar/libxslt/1.1.26/lib --with-xslt-include=/usr/local/Cellar/libxslt/1.1.26/include/libxslt --with-iconv-dir=/usr/local/Cellar/libiconv/1.14 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8

再び、すべてが順調でした。これが他の誰かに役立つことを願っています。

于 2011-11-30T08:26:57.987 に答える
18

群衆に私の声を追加するだけですが、mkmf.log は x86_64 アーキテクチャのシンボルを見つけることができないことについて何かを言いました. 私はこの解決策に出くわしました:

sudo env ARCHFLAGS="-arch x86_64" gem install nokogiri -- --use-system-libraries

元の質問者にとっては何も解決しないかもしれませんが、これは誰かを助けるかもしれません.

補足: nokogiri は、Ruby アプリケーションの使用に対する私の最大の障壁でした。誰かが別のバージョンに依存するたびに、私はそれをビルドする方法を見つけなければなりません。そして、私の問題は毎回異なります。

于 2014-11-28T04:22:16.707 に答える
4

私は多くのことを試みましたが、何もうまくいきませんでした。それから私はついにiconvのドキュメントを見つけました、そしてそれは私の日を救いました!

于 2011-09-19T21:32:19.193 に答える
3

mkmf ファイルを見ると、nokogiri (または gem、わかりません) が /op/local/ で依存関係を見つけようとしているようです。私にとって、それらを検索するのは正しい道ではありません。

nokogiri に適切な場所でライブラリを見つけるように強制すると (私は自作を使用します)、うまくいきました。

$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

のこぎりに何か直せるところがあるのか​​な…

HTH、

于 2011-04-21T12:48:58.473 に答える
3

libiconv は Homebrew 0.9 から削除されました。 libiconv をソースからコンパイルし、nokogiri gem をインストールするときにそのインストールを参照することをお勧めします。Nokogiri のインストール ページの Homebrew 0.9 セクションにあるNokogiri のインストール手順を参照してください。

于 2012-04-13T07:45:20.150 に答える
2

今日はOS X 10.10 Yosemiteでしばらくノコギリと格闘してました

なぜか環境がおかしくなった。

which bundleそして私にwhich gem与えていた代わりに/usr/bin/bundle/usr/bin/gem~/.rbenv/shims/gem

私にとってそれを修正するのに役立ったのはsudo rm -i /usr/bin/gem /usr/bin/bundle

その後、私: 1. プロジェクト ディレクトリに戻りました 2. 依存関係をアンインストールしました 3. 依存関係ライブラリを (再) インストールしました: 実行しましたbrew install libxml2 libiconv libxslt 4. 自分の Ruby バージョンを (rbenv で) 新しくインストールしました 5.実行しましたgem install bundler 6. そして bundle install何もせずに実行しました問題。

Nokogiriその後は大丈夫でした。

参考のため:

╰─% cat .bundle/config           
---
BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_JOBS: 4

╰─% which ruby bundle gem
~/.rbenv/shims/ruby
~/.rbenv/shims/bundle
~/.rbenv/shims/gem
于 2014-11-04T10:14:47.847 に答える
2

MacPorts で libxml2 と libxslt をインストールしたと仮定すると、have_func('iconv_open', 'iconv.h') の呼び出しで使用されるインクルード パスとリンク パスの順序の不一致が原因で、このエラーが引き続き発生する可能性があります。

簡単な (パッチ) 解決策: /usr/local/lib の libiconv.* を削除します

于 2011-06-13T21:51:48.210 に答える
2

Mavericks でこれを行うこともできます。

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

xcodeがインストールされていることを確認してください

于 2014-08-14T16:51:20.433 に答える
2
$ gem install nokogiri -- --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/

上記と同様に、これは自作でgem installを使用するためのソリューションです(変更を適用するのはバージョンによって異なります)

ただし、Gemfile を使用してバンドル インストールする場合は、インストールする前にバンドル構成を適用する必要があります。

$ bundle config build.nokogiri --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 --with-xml2-dir=/usr/local/Cellar/libxml2/2.7.8/ --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

繰り返しますが、バージョンに応じて変更を適用します

これがあなたを助けることを願っています。

クレジット: https://gist.github.com/1344331

于 2011-12-19T02:45:47.130 に答える
1

Homebrew を 0.9 にアップグレードする必要があります

次に、次の手順に従います

brew install libxml2 libxslt
brew link libxml2 libxslt
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

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 --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

フォルダ ライブラリのバージョンを再確認する必要があります。

于 2013-04-09T12:03:19.427 に答える
0

今朝、これに遭遇しました... Mavericksへのアップグレード後。私たちは多くのことをしました。ただし、誰かがこの問題を抱えている場合は、ここで試してみてください。

「xcode-select --install」を実行してから、コマンド ライン ツールをインストールしました (これが OS のアップグレードで更新されなかったことに驚きました)。「rvm implode」を実行しました (後でビルドします)。

2 つのエラー出力ファイルをつなぎ合わせました。

~/.vagrant.d/gems/gems/nokogiri-1.6.3.1/ext/nokogiri/gem_make.out

~/.vagrant.d/gems/gems/nokogiri-1.6.3.1/ext/nokogiri/tmp/x86_64-apple-darwin12.5.0/ports/libxml2/2.8.0/configure.log

これは、c コンパイラが驚くべき設定を使用していたことを示しているようです。

「env」を実行しました

出力内容:

...
CXX=/usr/local/opt/apple-gcc42/bin/g++-4.2
...
CC=/usr/local/opt/apple-gcc42/bin/gcc-4.2
...

これらのファイルはファイル システムに存在しませんでした...

これらすべての変更が新しいターミナル ウィンドウに移行した後 (つまり、すべてが新鮮でした)。vagrant-berkshelf のインストール (これにより、nokogiri がインストールされます) は正常に機能しました。

注:新しいウィンドウで「env」を実行すると、CCまたはCXXの設定がなくなりました...

これの重要な部分、または順序が重要かどうかはわかりませんが、これを機能させる上で役割を果たしていると思われる部分を再現しようとしました.

于 2014-08-01T16:40:33.100 に答える
0

Mac OS を Yosemite にアップグレードしたときに、この問題が発生しました。次のようにして、この問題を解決できました。

xcode-select --install
brew uninstall libiconv
brew install libiconv
gem install nokogiri
于 2014-10-17T12:59:51.637 に答える
0

私は同様の問題を抱えていましたが、受け入れられた答えは私にとってはうまくいきました。gmkdirただし、この質問のように、コマンドが欠落している新しいエラーメッセージが表示されています。

gem install nokogiri -v '1.5.11' が原因で失敗しました: /usr/local/bin/gmkdir: No such file or directory

私にとってうまくいったのは、最初の小さなクリーンアップでした:

brew uninstall libiconv
brew uninstall libxml2
brew uninstall libxslt

そして、brew unlink libiconvその他、リンクを解除する必要があるものはすべて ( で確認してくださいbrew doctor)。次に、魔法の2行(リンクされた回答からコピー):

brew install coreutils
gem install nokogiri
于 2016-07-29T13:06:42.997 に答える
-1

私の場合、(scotchiと同様に)/ opt / local / libにある互換性のないiconvライブラリが原因で、ビルドが失敗しました。デフォルトでは、Nokogiriビルドプロセスは最初に/ opt/localを調べます。別のインストールディレクトリ、たとえば/ usr / localを使用するように強制するには、次のようにします。

gem install nokogiri -- --with-xml2-lib=/usr/local/lib --with-xml2-include=/usr/local/include/libxml2 --with-xslt-lib=/usr/local/lib --with-xslt-include=/usr/local/include
于 2012-07-19T15:50:29.743 に答える
-1

実行する前に最初にgccをインストールする必要がありました./configure --prefix=/usr/local/Cellar/libiconv/1.13.1

于 2014-05-30T10:29:44.270 に答える
-1

まず、nokogiri のインストール ガイドに従ってください: http://nokogiri.org/tutorials/installing_nokogiri.html

ガイドに従った後、私はまだこの問題を抱えていました。これが私がそれを解決した方法です:

まず、homebrew を使用して iconv をインストールしました: brew install iconv

それから ruby​​ をアンインストールしました。幸運なことに、これは rvm で非常に簡単です:

rvm uninstall 1.9.2        

次に、次のオプションを使用して ruby​​ を再インストールする必要がありました。

CC=gcc-4.2 rvm install 1.9.2-p290 --with-iconv-dir=/usr/local/Cellar/libiconv/1.13.1

次に、新しい Ruby バージョンで gemset を作成します。

rvm use 1.9.2@coolproject

次に、最終的に次のように nokogiri をインストールできます。

gem install nokogiri -v=1.4.4 -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26
于 2011-08-22T21:00:23.503 に答える
-1
$ gem install iconv # works but it is missing an iconv.so file in ruby 2.0.0-p247

$ ls -1 2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*
2.0.0-p0/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/iconv.so*

$ ls -1 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/*/*/*.so
2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so*

2.0.0-p0 gem インストールに存在する 2.0.0-p247 の /lib/iconv/iconv.so ファイルが欠落していることに注意してください。

$ rbenv version
2.0.0-p247 (set by /home/XXX/tmp/.ruby-version)
$ rbenv which gem
/home/XXX/.rbenv/versions/2.0.0-p247/bin/gem
$ gem --version
1.8.25

$ rbenv which pry
/home/XXX/.rbenv/versions/2.0.0-p247/bin/pry
$ pry
[1] pry(main)> require 'iconv'
LoadError: cannot load such file -- iconv/iconv.so
from /home/XXX/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require'

ファイルをコピーします

$ pushd ~/.rbenv/versions/
$ cp 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/ext/iconv/iconv.so 2.0.0-p247/lib/ruby/gems/2.0.0/gems/iconv-1.0.3/lib/iconv/

今すぐ機能します!

$ pry
[1] pry(main)> require 'iconv'
=> true
于 2013-09-19T03:41:46.933 に答える
-1

nokogiri インストール ページの指示に従い、xcode ツールもインストールしました。しかし、それでもうまくいきませんでした。

次に、brew install libxml2 libxsltコマンドが次の出力を出力することを確認しました(他のさまざまなものの中でも):

To allow the nokogiri gem to link against this libxslt run:
  gem install nokogiri -- --with-xslt-dir=/usr/local/opt/libxslt

というわけで、これを実行すると、nokogiri が正常にインストールされました。

于 2014-07-15T19:40:08.403 に答える
-1
  • 自己完結型のソリューションとして、最近の Mac OS X / Homebrew のインストールで動作するはずの要点として、この Ruby スクリプトをまとめました。
  • 基本的に、古い Apple のライブラリではなく、Homebrew のライブラリに頼っているだけです。単純。
  • 引数としてgem渡すことで、Bundler (の代わりに) を使用して構成およびインストールできます。bundle

ぜひチェックしてください。お気軽に投稿してください。これを 1 つのスクリプトにまとめて、すべてを修正できるかもしれません。

于 2014-08-18T20:52:38.167 に答える
-1

これは私のために働く:

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

Bundler を使用している場合は、次のオプションを使用するように指示します。

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

参照

于 2014-08-12T06:35:38.657 に答える