web-dev-qa-db-ja.com

Ruby gems?

OSX Mavericks 10.9デモをインストールした後、バンドルを実行した後にこれを取得する

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

    /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/bin/Ruby extconf.rb 
extconf.rb:17: Use RbConfig instead of obsolete and deprecated Config.
checking for socket() in -lsocket... *** 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=/Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/bin/Ruby
    --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-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-socketlib
    --without-socketlib
/Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:461:in `try_link0'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:476:in `try_link'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:619:in `try_func'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:845:in `block in have_library'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from /Users/sandric/.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/mkmf.rb:840:in `have_library'
    from extconf.rb:27:in `<main>'


Gem files will remain installed in /Users/sandric/.bundler/tmp/5282/gems/libxml-Ruby-2.6.0 for inspection.
Results logged to /Users/sandric/.bundler/tmp/5282/gems/libxml-Ruby-2.6.0/ext/libxml/gem_make.out
An error occurred while installing libxml-Ruby (2.6.0), and Bundler cannot continue.
Make sure that `gem install libxml-Ruby -v '2.6.0'` succeeds before bundling.

私はコマンドラインツールを持っていないと思うので、私はいくつかをダウンロードしようとしました。私のXCodeにはこれに関する通常のリンクがないことがわかりました(5ではなく4です、理由はわかりません。5番目のXcodeをインストールする方法がある場合-助けてください)。だから私はApple開発者のウェブページに行き、10.9のコマンドラインツールが見つかりませんでした。 10.8インチ。

助けてください。ヘルプのためにすべての情報を提供します。

40
sandric

TLDR:

xcode-select --install

OS X 10.9では、コマンドライン開発者ツールが使用時にオンデマンドでインストールされるようになりました(これは、後のコメントで参照するポップアップです)。

コマンドラインツールの1つを初めて使用しようとすると、ポップアップが表示され、コマンドラインツールをインストールする必要があるというメッセージとエラーコードとともに元のコマンドが返されます。この場合、問題はRubyプロセスが必要なコマンドラインツールに関するメッセージを隠していることです。

ポップアップがトリガーされるのを待つのではなく、コマンドラインツールを明示的にインストールする場合は、xcode-select --install。コマンドラインツールパッケージは、 http://developer.Apple.com/downloads からの独立したダウンロードとしても利用できます。

システムにXcodeがインストールされている場合、別のコマンドラインツールパッケージは不要になるはずです。/usr/binのツールは、Xcodeアプリケーション内にあるツールを自動的に使用します。これが、Xcode UIがコマンドラインツールをインストールするオプションを提供しなくなった理由です。

99
Daniel Dunbar

この問題に遭遇した他の人のために、私はそれを動作させるためにbrew経由でApple-gccもインストールしなければなりませんでした:

brew install Apple-gcc42

15
Ian Ehlert

OSX Mavericksにアップグレードした後にgemをインストールするのと同じ問題がありました。私はエラーメッセージの中でこれを見ました:

make: gcc-4.2: No such file or directory

これは、gccを見つけるのに問題があることを示唆しています。 「ls/usr/bin」と入力すると、「gcc」はあるが「gcc-4.2」はないことがわかります。そこで、次のように「gcc-4.2」ではなく「gcc」で検索するように指示するシンボリックリンクを設定しました。

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

これで問題が解決しました。それが役に立てば幸い。

8
biobonnie

両方を実行する必要がありましたxcode-select --installおよびSudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2インストールするバンドルを取得するにはffi

5
Stanley

コメントするほどの評判はありませんが、Vykeのソリューションは役に立ちました/必要でした。 mavericksに更新した後の私の成功への道は次のとおりでした。

  • アプリストアからxcodeをインストールします(ターミナルはサーバー上でそれを見つけることができませんでした)
  • Xcodeを開き、条件に同意します
  • Biobonnieのソリューションを使用してGCCファイルを移動します
  • rvmシステム
  • rvm get head
  • gem install yourgemname(私の場合はjson)
  • バンドルインストール
  • gem update rake

...そして、jekyll/octopressベースのWebサイトの更新に戻ることができました。

1
Chunsaker

MavericksのXCode 5.0.2でも同じエラーが発生しました。 5.0.1では予想どおりに修正されなかったようです。

xcode-select -- installは、コマンドラインツールをインストールするためのダイアログを表示しました(これは既に2回実行しました)が、「サーバーで見つからない」ため失敗しました。たぶんこのアプローチは時代遅れですか?

上記のbiobonnieのソリューションは私のために働いた:

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

その後、ついにココアポッドが適切にインストールされます!ありがとう! (賛成しますが、まだできません...)

1
mc01

私はちょうどMountain Lionをマーベリックにアップグレードし、上記のメッセージを受け取りました。

最終的にXCodeを起動し、コンポーネントを自動的にインストールするように要求しました。それが完了した後、私は再バンドルし、それが機能しました。

0
Coderama