web-dev-qa-db-fra.com

outils de ligne de commande pour le nouvel OSX 10.9 pour Ruby gems?

Après avoir installé la démo OSX Mavericks 10.9, je l'obtiens après avoir exécuté le bundle

    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.

Je pense que je n'ai pas d'outils de ligne de commande, j'ai donc essayé d'en télécharger quelques-uns. Il a découvert qu'il n'y a pas de lien habituel pour cela dans mon XCode (c'est 4, pas 5, je ne sais pas pourquoi. S'il existe un moyen d'installer le cinquième xcode - aidez-moi s'il vous plaît). Je suis donc allé à Apple page Web des développeurs et je n'ai pas trouvé d'outils de ligne de commande pour 10.9. J'ai essayé pour 10.8 - il affiche "Try install for 10.7", après avoir essayé avec des outils pour 10.7 - it prints "try pour 10,8 ".

S'il vous plaît, aidez. Je fournirai toutes les informations pour vous aider.

40
sandric

TLDR:

xcode-select --install

Dans OS X 10.9, les outils de développement en ligne de commande sont désormais installés à la demande lorsqu'ils sont utilisés (c'est le popup que vous mentionnez voir dans un commentaire ultérieur).

La première fois que quelque chose essaie d'utiliser l'un des outils de ligne de commande, la fenêtre contextuelle sera présentée et la commande d'origine retournera avec un message indiquant que les outils de ligne de commande doivent être installés et avec un code d'erreur. Dans ce cas, le problème est que le processus Ruby masque le message concernant les outils de ligne de commande nécessaires).

Si vous souhaitez installer explicitement les outils de ligne de commande (au lieu d'attendre le déclenchement de la fenêtre contextuelle), vous pouvez exécuter xcode-select --install. Le package d'outils de ligne de commande est également disponible en téléchargement indépendant depuis http://developer.Apple.com/downloads .

Notez que si Xcode est installé sur votre système, vous ne devriez plus avoir besoin du package séparé d'outils de ligne de commande, les outils dans/usr/bin utiliseront automatiquement ceux situés à l'intérieur de l'application Xcode. C'est pourquoi l'interface utilisateur de Xcode n'offre plus la possibilité d'installer les outils de ligne de commande pour vous.

99
Daniel Dunbar

Pour d'autres rencontrant ce problème, j'ai dû également installer Apple-gcc via brew pour le faire fonctionner:

brew install Apple-gcc42

15
Ian Ehlert

J'ai eu ce même problème lors de l'installation de gemmes après la mise à niveau vers OSX Mavericks. J'ai vu cela parmi les messages d'erreur:

make: gcc-4.2: No such file or directory

Ce qui suggère qu'il a du mal à trouver gcc. Quand je tape "ls/usr/bin", je vois que j'ai "gcc" mais pas "gcc-4.2". J'ai donc mis en place un lien symbolique pour lui dire de regarder dans "gcc" au lieu de "gcc-4.2", comme ceci:

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

Cela a résolu mon problème. J'espère que cela aide.

8
biobonnie

J'ai dû exécuter les deux xcode-select --install et Sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 pour obtenir le bundle à installer ffi

5
Stanley

Je n'ai pas assez de réputation pour commenter, mais la solution de Vyke m'a été utile/requise. Mon chemin vers le succès après la mise à jour vers mavericks était le suivant:

  • Installez xcode depuis l'appstore (le terminal n'a pas pu le trouver sur le serveur)
  • Ouvrez xcode et acceptez les termes
  • Utilisez la solution de biobonnie pour déplacer le fichier GCC
  • système RVM
  • rvm obtenir la tête
  • gem installez votregemname (dans mon cas json)
  • installation du bundle
  • râteau de mise à jour de gemme

... et ensuite je pourrais revenir à la mise à jour de notre site Web basé sur jekyll/octopress.

1
Chunsaker

XCode 5.0.2 sur Mavericks m'a donné la même erreur. Semble qu'il n'a pas été corrigé dans 5.0.1 comme prévu.

En essayant xcode-select -- install a fait apparaître une boîte de dialogue pour installer les outils de ligne de commande (ce que j'avais déjà fait deux fois), mais a échoué car ils "n'ont pas été trouvés sur le serveur". Peut-être que cette approche est dépassée?

la solution de biobonnie ci-dessus a fonctionné pour moi:

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

Après cela, les cocoapods s'installent enfin correctement! Merci! (Voterait, mais ne peut pas encore ...)

1
mc01

Je viens de mettre à niveau Mountain Lion en non-conformistes et j'ai reçu le message ci-dessus.

J'ai fini par lancer XCode et il m'a demandé d'installer automatiquement les composants. Une fois cela terminé, j'ai re-empaqueté et cela a fonctionné.

0
Coderama