OSX 10.9 MaverickにNokogiriをインストールする際のエラー?


109

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

XCode 5.0.1、コマンドラインツール(を使用xcode-select --install)、およびlibb2 をHomebrewからインストールしましたが、それでも問題が解決しません。

エラーは:

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をインストールしましたが、あまり機能しません。

私の環境のどこが悪いのかわからないのですが、手伝ってもらえますか?



2
xcodeを開いて、EULA /ライセンスに同意してください。
moander

回答:


245

NokogiriをMac OS X 10.9 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を使用している場合は、次のコマンドが機能します。

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

4
私ではありません:「libxml2がありません。依存関係のインストールについては、nokogiri.org / tutorials / installing_nokogiri.htmlにアクセスしてください。」引き続き同じエラーが発生します。
Pop-A-Stash 2014年

1
--use-system-librariesを追加する必要がありました。Xcode 5.1.1とbrewを使用したまったく新しいmavericksのインストールに取り組んだよりも。
jmg 2014

11
追加する必要がありました--use-system-libraries仕事にこれを取得する:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
マーベリック

1
10.10.3では、これが私にとって唯一機能します。sudogem install nokogiri---with-iconv-lib = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include- with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-libraries
Erik Villegas

10
あなたは、すべてのOS Xのバージョン間で動作するとXcodeのパスをインストールする必要があり、より一般的なコマンドを使用して、あなたの答えを更新する可能性がありますgem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
フィリップ・

30

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


ありがとう、私のために働きます!PS:非常に良いjasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks
Tizón

ええ、はい、クリーンなMavericksインストールにXCodeコマンドラインツールをインストールするのを怠っていました。
スーパールミナリー2014

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 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


これで問題は解決しませんでしたが、同じエラーメッセージが引き続き表示されます:(
David Portabella

1
私は(brewから)rvmとrubyを完全にアンインストールし、再度インストールしました。
David Portabella、2013年

3
したがって、私はbrew install apple-gcc42..を実行するだけで動作します。そのコマンドは機能しませんか?
スキーヤー、2013年

4
私はxcode-select --installbrewのインストール前に実行しましたが、現在はすべて動作しています。
Quickredfox 2013年

1
@LucyBain本当に覚えていません....しかし、ログファイルはgem_meake.outと同じディレクトリにあったと思います...
squiter

15

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

12

これは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

驚くべきことに、これはこのトレッド全体で私を助けた唯一のものです。ありがとう!
KonstantinK

この問題は、sudoRVMまたはrbenv を使用すると、サンドボックス化されたルビーがどこに住んでいるかがrootにわからないため、問題が発生することです。これについては、RVMのインストールページで説明しています。OPはRVMを使用しており、これを使用sudoすると、NokogiriはユーザーではなくAppleのRubyにインストールされます。あなたがされた場合を除き、これをしないSUREあなたは別の* nixにしている場合は、Mac OS上で、またはシステムルビーにならAppleのルビーにインストールします。
ブリキマン

10

私は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

問題が解決しました。


涼しい。mavericksでrvmを使用しているので、vimを開いてみてください。SEGVエラー?美しい。
Tim

フォルダーが空ではなかったため、gemsetを削除できませんでしたが、gemsetを再インストールすると(エラーがあった場合でも)できました!これは私のために働いた唯一のものです!
Onikoroshi

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/

何時間もそれをググった後、それは私のために働いた唯一の解決策でした、ありがとう!:D
Rogerio Chaves 2014年

5

私はMavericks 10.9.5アップデートとAppleの10.9 Developerツールアップデートをインストールした直後にこの問題に遭遇しました。私は走ったがxcode-select --install、それは問題を解決しなかった。次に、XCodeを開き、エウラを受け入れ、XCodeを終了しました。これで問題が解決しました。


3

今日私はこの問題を抱えていました、マーベリックで、これが私が問題を解決した方法です:

brew update
brew install libiconv
brew link libiconv

以下のCell 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

のこぎりが正常にインストールされました!


ヨセミテでも私のために働きました。上記の答えはどれもしませんでした。
MattL

3

これは@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

2

インストールを機能させる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

私はファイルパスに細心の注意を払わなければなりませんでした。コマンドを正しく作成するために何度も試してみました。
darkmoves 2013年

ここだリンク間違ったのlibxmlのバージョンの問題に対する別の解決策には。
darkmoves 2014年

2

MacPortsを使用している人は、からインストールlibxml2したことを確認してくださいMacPorts。次に、次のように入力します。

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

これはトリックを実行するはずであり、フルパスを使用せずに私のために働きました。



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

2

これは私のために働く

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

これは、上記の環境で動作します。


1

私はMavrickでも同じ問題に遭遇し、解決策は次のとおりでした。

xcode-select --install

ただし、AppleのCommand-line-toolのダウンロードページにはそのインストーラーが公開されていないため、これは機能していません。

そのため、Mavricksのコマンドラインツールを使用する場合は、有料アカウントが必要です。その後、あなただけがそれをインストールすることができます。インストールすると、Nokogiriでこの問題は発生しなくなります。


有料アカウントを持っていないので、コマンドラインツールをインストールしました。端末を使用してインストールしましたが、私のダウンロードページを使用して私の友人がインストールしました。彼も有料アカウントを持っていません。
スクイター、2013年

仰るとおりです。2013年11月24日まで同じことが起こりました。ただし、今そのページにアクセスしてアクセスしようとすると、このエラーが発生します。奇妙なことに、あなたはあなたの資格情報でログインしますが、ゲストとしてログインし続けます。これは私のアカウントでページに表示されるメッセージです:Apple Developer Program Big Warningリクエストを処理できません。前のページに戻るか、ブラウザを終了して、もう一度リクエストしてください。サポートが必要な場合は、Apple Developer Supportにお問い合わせください。
shinesecret 2013年

1

Mavericksの新規インストールで同じエラーが発生しました。判決を下した後、Xcodeアプリバンドルの名前をに変更しましたXcode 5.0.1.app

どうやらNokogiriインストールスクリプトはパスを引用していないため、ファイル名のスペースがすべての並べ替えや問題の原因でした。brew install libxml2エラーが明らかになるのは、私が試してみるまででした。

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


1

私の場合、/ usr / bin / gcc-4.2をシンボリックリンクした後、実際に実行する必要がありました。使用許諾契約に同意する必要があります。同意しないとハングします。


1

エラーメッセージはここに手掛かりを与えます: 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

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/*

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 

1

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

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


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

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のインストールで同じエラーが発生しない場合も、この解決策を試してください。


1

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

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

xcode-select --install
gem install nokogiri

それが役に立てば幸い。


5
記事はここに投稿してください-リンクは壊れる可能性があります(ガイドラインを参照)
Justin

それは私を助けましたが、リンクではなくここに答えを投稿するという感情をエコーし​​ます:)
Richard

これは、スタックオーバーフローでは推奨されない、リンクのみの回答と見なされるものです。自分のサイトへのリンクを投稿するだけでなく、重要な情報を回答にまとめます。そうすれば、リンクが腐敗する傾向にある場合でも、答えは引き続き何らかの価値を提供します。
Tin Man

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

同様の問題(リンクされていないlibiconv)がありました。libiconvのリンクを解除して再インストールしました。brewはlibiconvをインストールし、次にgemはnokogirlをインストールします。
ベン

0

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

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

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

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

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

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install

を使用sudoすると、ルートで認識されている唯一のRubyにNokogiriがインストールされます。これは、Homebrewを使用しない限り、 AppleがインストールしたRubyである可能性が高いです。OPはRVMを使用していたので、RVMで管理されたRubyからNokogiriが認識されず、問題が複雑になるだけです。sudoこの場合は使用しても問題はなかったかもしれませんが、RVMまたはrbenvで管理されたRubyでは試してはいけません。RVMは、具体的には、インストールドキュメントでそれを行わないように言っています
ティンマン

0

Windowsの場合は、ローカルインストールを試すこともできます。

  1. 環境に基づいて適切な宝石をダウンロードします。

  2. gemファイルを保存したディレクトリに移動します。

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

機能しない場合は、zlibとmingw、または適切なcコンパイラがインストールされているかどうかを確認できます。


0

ここですべての気の利いたことは私のためにそれをしませんでしたが(私はbrewの再インストールには入りませんでした)

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

幸運を。#yakshaving!


-3

コマンドラインツールのバージョンを確認します。Xcode 5.0.Xコマンドラインツールを使用するようにマシンを設定してから、次のコマンドを実行します。

gem install nokogiri

このコマンドを使用する必要があります。オープンターミナル。このコマンドを記述します。export NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat '
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.