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をインストールし、Nokogiriをインストールするようにparamsを設定しましたが、動作しません。
私の環境で何が悪いのかわかりません。助けてくれませんか?
このログを見つけて、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 brew install Apple-gcc42
を使用して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
Mac OS X 10.9にNokogiriをインストールすることもできますMavericks完全なXCodeインストールを使用して:
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 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
アニメーションGIF ここ をナビゲートした後、私がしなければならなかったことは、単にxcode-select --install
とgem install nokogiri
が正常に機能することだけでした。
Xcode 5.1を実行している場合、コマンドラインツールはnokogiri 1.6.1では機能しません。 Apple から2013年10月下旬のツールをダウンロードする必要があります。実行したら
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
これがOSX Mavericksで私のために働いたものです:
Sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc
私はOSX Mavericksを使用していますが、私の問題はRubyの不適切なインストールであることが判明しました。
そこで、Rubyをrvmで再インストールしました。
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
問題が解決しました。
私は通常、システムが提供するものに固執するのが好きです。これは私のために働いた:
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/
Mavericks 10.9.5アップデートと10.9 DeveloperツールアップデートをAppleからインストールした直後に、この問題に遭遇しました。 xcode-select --install
を実行しましたが、問題は解決しませんでした。次に、XCodeを開いてeulaを受け入れ、XCodeを終了しました。これで問題は解決しました。
これは@thomas_wittの投稿と同じですが、Mac OS X 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
今日、この問題が発生しました。Maverickでは、これが問題の解決方法です。
brew update
brew install libiconv
brew link libiconv
Cellar mineのlibiconvのバージョンが1.14であることを確認してから、以下のようにインストールします。
gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
Nokogiriの特定のバージョンが必要な場合(例:-v '1.6.2.1')、次のようにインストールします:
gem install nokogiri -v '1.6.2.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14
ノコギリが正常にインストールされました!
これは私のために働く
system: OS X Yosemite 10.10
rvm: 1.26.10
Ruby: Ruby 2.2.1
以下の2つのコマンドを実行するだけです
$ xcode-select --install
「はい」とダウンロードするように求められ、次に「インストール」をクリックしてxcodeコンポーネントをインストールするように求められます。
以下のコマンドでgemをインストールしてみてください
gem install nokogiri --no-ri --no-rdoc
これは上記の環境で動作します。
MacPorts を使用している場合は、MacPorts
経由でlibxml2
をインストールしたことを確認してください。次に入力します:
bundle config build.nokogiri --use-system-libraries
bundle install
これはトリックを行う必要があり、フルパスを使用せずに私のために働いた。
別のリファレンスを次に示します。
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
インストールを機能させるには、gem install
コマンドのファイルパスを変更して、システム上のファイルパスと一致させる必要がありました。 libxml2とlibiconvの異なるバージョンと、わずかに異なるファイル構造があります。私の変更を加えたコマンドは次のとおりです。
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.13.1/include
--with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib
Homebrewを使用する場合は、brew install libxml2 libxslt
を使用します。
エラーメッセージはここに手がかりを与えます:The compiler failed to generate an executable file. (RuntimeError)
xcode-select --install # not sure if this is required
brew install Apple-gcc42
gem install nokogiri
これらをインストールしてリンクする必要があるかもしれません:
libxml2 libxslt
Rails 3バージョンのアプリケーションを実行しようとしたときに、過去2週間に同じ問題に直面していました。
問題は、rvm/rbenvがCコンパイラを使用していないことです。
互換性のあるCコンパイラを使用するには、rvmにこのコマンドを使用します
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コンパイラを使用していないことです。
互換性のあるCコンパイラを使用するには、rvmにこのコマンドを使用します
CC=gcc rvm install-version
したがって、Ruby 1.9.3を使用している場合は、このように使用します
CC=gcc rvm install-1.9.3
インストールなどをバンドルできないたびにこのコマンドを使用してください。
このことはエルキャピタンに取り組んでいます、Rails 3.2.16、Ruby 1.9.3、mysql 5.7うまくいけば、問題を解決するでしょう。 また、Xcodeを既にお持ちで、gemをインストールしても同じエラーが発生しない場合は、このソリューションを試してください。
アップグレードの直後にこの同じ問題に出会った後、ここに私の発見を追加しました: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/
修正は、単純に次の2つのコマンドです。
xcode-select --install
gem install nokogiri
それが役に立てば幸い。
Maverickにアップグレードした後、同様の問題が発生しました。 Ruby 1.9.2-p320でRVMを使用し、ここでいくつかの解決策を試しましたが、問題は解決しませんでした。
その後、Ruby 2.1.2に変更し、bundle install
でNokogiriをすぐにインストールしました。
Mavrickでも同じ問題に遭遇しましたが、解決策は次のとおりです。
xcode-select --install
ただし、 AppleのCommand-line-toolのダウンロードページ には現在インストーラーが公開されていないため、それは機能していません。
したがって、Mavricksのコマンドラインツールを使用する場合は、有料アカウントが必要です。その後、あなただけがインストールできます。インストールすると、Nokogiriでこの問題に直面することはありません。
私にとってのエラーは、gcc(4.2.1、Homebrewからインストール)が次のように不平を言っていたことです。
-E, -S, -save-temps and -M options are not allowed with multiple -Arch flags
X86_64のみを強制することで問題を解決しました。
ARCHFLAGS="-Arch x86_64" gem install nokogiri
Mavericksの新規インストールでも同じエラーが発生しました。判断を失った後、Xcodeアプリバンドルの名前をXcode 5.0.1.app
に変更しました。
どうやら、Nokogiriのインストールスクリプトはそのパスを引用していないため、ファイル名のスペースがあらゆる種類またはトラブルを引き起こしました。エラーが明らかになったのは、brew install libxml2
を試したときだけでした。
教訓:ファイル名のスペースは悪です。
私の場合、/ usr/bin/gcc-4.2をシンボリックリンクした後に実際に実行する必要がありました。ライセンス契約に同意する必要があります。同意しないとハングします。
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/*
バンドラーを使用しているときに、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
これらの答えはどれも私の特定の場合にはうまくいきませんでした。
Yosemiteを使用しており、Ruby 1.9.3p547を使用していました。 p547にセキュリティ上の危険があったため、Ruby 1.9.3p550以上に更新しようとしていました。 RVMを使用してから、gemを移行しようとしましたが、それらの多くは移行しませんでした。その後、バンドルインストールを試みましたが、失敗し、さまざまなパスと依存関係の競合であると考えたため、古いバージョンのRubyを削除しました。これはすべてを壊した。
XCodeをダウンロードして、CLIツールを最近更新したにもかかわらず、Cコンパイラが見つからないというメッセージを受け取り続けました。サードパーティのGCCをダウンロードするように指示する別のWebサイトを見つけましたが、それを行いました。すべてが悪化しました。
プロファイルとPATHを修正する必要があるというメッセージが表示されるようになりました。または、OSXを再インストールする方が簡単な場合があります。だから私はやった。
とにかく、長い話は単に長いです:最終的に私のために働いた解決策は、RVMを取り除き、Rubyバージョンをダウンロードしてからbundle install
を実行する前に欲しかったことでした。 Nokogiri FIRSTの正しいバージョンをインストールします。
brew install Ruby193
Sudo gem install nokogiri -v '1.6.0'
bundle install
windowsの場合は、ローカルインストールを試すこともできます。
環境に基づいて適切なgemをダウンロードします。
gemファイルを保存したディレクトリに移動します。
gem install --local nokogiri-1.6.3.1-x86-mingw32.gem
動作しない場合は、zlibとmingwまたは適切なcコンパイラがインストールされているかどうかを確認できます。
ここにあるすべてのくそったれは私のためにそれをしませんでした(私は醸造再インストールに入りませんでした)
gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2
幸運を。 #yakshaving!
私もこの問題を抱えていました。 brew doctor
を実行すると、/ user/local/libに予期しないバージョンのlibiconvがあることがわかりました。
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