J'essaie d'installer Ruby 1.9.3 mais j'ai des problèmes. J'ai installé RVM, puis j'ai tapé:
rvm install 1.9.3
La sortie indique:
ERROR: Error running ' ./configure....
Le journal indique:
configure: WARNING: unrecognized options: --with-libyaml-dir
checking build system type... x86_64-Apple-darwin11.2.0
checking Host system type... x86_64-Apple-darwin11.2.0
checking target system type...x86_64-Apple-darwin11.2.0
checking whether the C compiler works... no
configure: error: in `/Users/myuser/.rvm/src/Ruby-1.9.3-p0':
configure: error: C compiler cannot create executables See `config.log' for more details
J'ai téléchargé le nouveau XCode sur l'App Store et l'ai installé.
Essayez d'utiliser le compilateur clang au lieu de celui par défaut:
rvm install 1.9.3 --with-gcc=clang
RVM a besoin de gcc-4.2 pour pouvoir installer Ruby 1.9.3. Malheureusement Lion n'inclut plus gcc-4-2, juste la version llvm:
lrwxr-xr-x 1 root wheel 12 15 feb 17:21 /usr/bin/gcc -> llvm-gcc-4.2
Si vous avez Lion mais mis à niveau à partir de Snow Leopard, il est probable que vous ayez toujours gcc-4.2. Si vous avez une toute nouvelle installation de Lion, vous devez télécharger gcc-4.2. J'ai recommandé de télécharger ce package.
https://github.com/kennethreitz/osx-gcc-installer
Vérifiez que gcc-4.2 est maintenant installé:
-rwxr-xr-x 1 root wheel 113024 16 may 2011 /usr/bin/gcc-4.2
lrwxr-xr-x 1 root wheel 12 15 feb 17:21 /usr/bin/gcc -> llvm-gcc-4.2
Vous pouvez maintenant installer Ruby 1.9.3 comme d'habitude:
rvm install 1.9.3
rvm use 1.9.3 --default
Si vous souhaitez simplement installer et tenir à jour la dernière version de Ruby (au lieu de basculer entre les différentes versions de Ruby), vous pouvez installer Ruby via homebrew :
brew install Ruby
Essayez ceci en premier:
rvm get latest
Voici ce que je travaille:
rvm:
version: "rvm 1.9.2 by Wayne E. Seguin ([email protected]) [https://rvm.beginrescueend.com/]"
Ruby:
interpreter: "Ruby"
version: "1.9.3p0"
date: "2011-10-30"
platform: "x86_64-darwin11.2.0"
patchlevel: "2011-10-30 revision 33570"
full_version: "Ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]"
Réellement, Ruby-1.9.3-p125
fonctionne maintenant avec gcc-llvm
. Mais, les versions stables/dernières de rvm
ne le sont pas (encore). Mais c'était juste rvm
étant prudent et il y a maintenant un correctif à cette solution de contournement dans la branche principale de rvm
.
Simplement, mettez à niveau rvm
vers la branche principale et installez/mettez à niveau Ruby
:
GT-MBP:~ gthiruva$ rvm upgrade Ruby-1.9.3-p0 1.9.3
Are you sure you wish to upgrade from Ruby-1.9.3-p0 to Ruby-1.9.3-p125? (Y/n): Y
Installing new Ruby ruby-1.9.3-p125
Fetching yaml-0.1.4.tar.gz to /Users/gthiruva/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /Users/gthiruva/.rvm/src
Configuring yaml in /Users/gthiruva/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/gthiruva/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/gthiruva/.rvm/usr
The autodetected CC(/usr/bin/gcc-4.2) is LLVM based, it is not yet fully supported by
Ruby and gems, please read `rvm requirements`, and set CC=/path/to/gcc .
Unable to install Ruby ruby-1.9.3-p125. Please install it manually to continue.
GT-MBP:~ gthiruva$ rvm get head
Original installed RVM version:
rvm 1.10.2 by Wayne E. Seguin <[email protected]>, Michal Papis
<[email protected]>`enter code here` [https://rvm.beginrescueend.com/]
...
RVM reloaded!
GT-MBP:~ gthiruva$ rvm reload
RVM reloaded!
GT-MBP:~ gthiruva$ exec bash
rvm 1.10.2 by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]>
[https://rvm.beginrescueend.com/]
GT-MBP:~ gthiruva$ rvm upgrade Ruby-1.9.3-p0 1.9.3
Are you sure you wish to upgrade from Ruby-1.9.3-p0 to Ruby-1.9.3-p125? (Y/n): Y
Installing new Ruby ruby-1.9.3-p125
...
Successfully migrated Ruby-1.9.3-p0 to Ruby-1.9.3-p125
Upgrade complete!
Fonctionne avec OS X Lion 10.7.3 et les outils de ligne de commande Xcode 4.3 installés.
Tapez les commandes suivantes
rvm est une fonction
~ $: vi ~/.bash_profile ajoutez cette ligne dans bash_profile "source ~/.rvm/scripts/rvm"
~ $: rvm install 1.9.3
Clang ne coupait pas de rubis pour moi et l'installation de rvm rubis a échoué, peu importe ce qui se passe avec rvm à utilisateur unique. Sudo combiné avec quelques modifications de permission et $ PATH à mon utilisateur a rendu cela possible. Voici ce que j'ai fait:
Sudo bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )</pre>
Sudo rvm pkg install readline
Sudo rvm install 1.9.3
L'installation de rvm à partir de l'utilisateur root crée un script Shell dans/usr/local/rvm/scripts/rvm Le code extrait de cet exécutable et l'a placé dans mon .bash_profile afin que .bash_profile soit enregistré sous:
[ -s "/usr/local/rvm/scripts/rvm" ]] ;
true ${rvm_path:="/usr/local/rvm"}
source "/usr/local/rvm/scripts/rvm"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
Le groupe d'utilisateurs RVM a été créé lors de l'installation de l'utilisateur root rvm. La dernière chose que j'ai faite était d'aller dans mon volet de préférences dans OSX 10.7 et d'ajouter mon utilisateur au nouveau groupe rvm. Enfin, j'ai rechargé mon terminal et j'ai pu installer 1.9.3 via rvm single user.
En utilisant rvm, Ruby 1.9.3, et en essayant d'utiliser gcc, je n'ai pas pu obtenir Ruby pour construire proprement avec yaml . Bien qu'il existe une variété de hacks pour faire fonctionner la compilation yaml, aucun ne semblait fonctionner avec rvm. Je dépannais tard dans la nuit et je n'ai pas conservé mes erreurs, donc je travaille de mémoire ici - je apprécierait que quelqu'un d'autre avec un environnement propre puisse tester ces étapes.
En utilisant le --with-gcc=clang
la solution a produit l'erreur légèrement infâme sur l'analyseur yaml:
It seems your Ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your Ruby.
Puisque j'ai besoin de yaml pour ce que je vais faire, et que libyaml s'est bien compilé lorsqu'il n'est pas exécuté par rvm, et que je l'ai même installé dans/usr/lib après l'avoir construit à la main, je ne comprends pas pourquoi rvm ne pouvait pas pas trouver et utiliser cette version de libyaml, même avec le --shared-libs
option.
En utilisant CC=/usr/bin/gcc rvm install 1.9.3
a produit des erreurs. Dans le fichier .rvm/log/Ruby-1.9.3-p385/configure.log, j'ai trouvé ce qui suit:
configure: error: C compiler cannot create executables
See `config.log' for more details
Cette erreur était également présente dans .rvm/log/libyaml-0.14/configure.log.
La solution pour moi a finalement été d'exécuter la commande rvm avec Sudo. L'exécution d'une compilation en tant que root semble supprimer la désapprobation de la chaîne d'outils GCC d'Apple à l'égard des utilisateurs qui font quelque chose d'aussi sale que la compilation de logiciels.
Alors Sudo CC=/usr/bin/gcc rvm install 1.9.3 --disable-binary
m'a donné une compilation propre de Ruby + yaml dans le dossier rvm. Je devais alors Sudo chown -R username ~/.rvm && Sudo chgrp -R staff ~/.rvm
pour récupérer les choses dans mon utilisateur et les exécuter avec mes autorisations.
Je ne pas recommande de compiler les choses en tant que root, car je le vois comme un risque pour la sécurité (en particulier avec les vulnérabilités trouvées dans la pile Ruby et rubygems.org récemment) - - mais cela a produit une installation propre de Ruby sous rvm et pourrait aider quelqu'un avec plus de talent ou de temps à comprendre la cause première du problème avec gcc d'Apple.