Comment mettre à jour Ruby vers 1.9.x sur Mac?


107

J'ai créé un nouveau compte utilisateur sur mon mac et j'essaie de mettre à jour la version actuelle de ruby ​​dessus (1.9.2) à partir de la valeur par défaut de Snow Leopard de 1.8.7. Quelqu'un peut-il me diriger vers un tutoriel ou m'expliquer la meilleure méthode pour mettre à jour Ruby sur mon mac de la 1.8 à la 1.9.2? Merci

Réponses:


66

Je vais faire une suggestion forte pour rvm .

C'est un excellent moyen de gérer plusieurs ensembles de rubis et de gemmes sans entrer en collision avec la version du système.


J'ajouterai que maintenant (02/04/2013), j'utilise beaucoup rbenv , car mes besoins sont simples. RVM est génial, mais il a beaucoup de capacités dont je n'ai jamais besoin, donc je l'ai sur certaines machines et rbenv sur mon ordinateur de bureau et mon ordinateur portable. Cela vaut la peine de vérifier les deux et de voir lequel répond le mieux à vos besoins.


D'accord. Et même si plusieurs versions ne sont pas un problème (ha!), Rvm est idéal pour découvrir quelles bibliothèques natives manquent. Assez indispensable.
Isaac Rabinovitch

198

Comme le suggère The Tin Man (ci-dessus) RVM ( Ruby Version Manager ) est la norme pour la mise à niveau de votre installation Ruby sur OSX: https://rvm.io

Pour commencer, ouvrez une fenêtre de terminal et exécutez la commande suivante:

\curl -L https://get.rvm.io | bash -s stable --ruby

(vous devrez faire confiance à l'équipe de développement RVM que la commande n'est pas malveillante - si vous êtes un pingouin paranoïaque comme moi, vous pouvez toujours aller lire la source : https://github.com/wayneeseguin/rvm ) Quand c'est terminé vous devez redémarrer le terminal pour que la rvmcommande fonctionne.

rvm list known

(vous montre les dernières versions disponibles de Ruby)

rvm install ruby-2.3.1

Pour une version spécifique, suivi de

rvm use ruby-2.3.1

ou si vous voulez juste la dernière version (actuelle):

rvm install current && rvm use current

(installe la version stable actuelle - au moment de la rédaction de ruby-2.3.1 - veuillez mettre à jour ce wiki lorsque de nouvelles versions sont publiées)

Remarque sur la compilation de Ruby : Dans mon cas, j'ai également dû installer Homebrew http://mxcl.github.com/homebrew/ pour obtenir les gemmes dont j'avais besoin ( RSpec ), ce qui vous oblige à installer Xcode (si vous ne l'avez pas déjà ) https://itunes.apple.com/us/app/xcode/id497799835 ET / OU installez le paquet GCC à partir de: https://github.com/kennethreitz/osx-gcc-installer pour éviter les erreurs lors de l'exécution de " make ".

Edit: À partir de Mavericks, vous pouvez choisir d'installer uniquement les outils de ligne de commande Xcode au lieu de tout le package Xcode, qui est livré avec gcc et beaucoup d'autres choses dont vous pourriez avoir besoin pour créer des packages. Il peut être installé en exécutant xcode-select --installet en suivant l'invite à l'écran.

Remarque sur les erreurs : si vous obtenez l'erreur " RVM n'est pas une fonction " en essayant cette commande, visitez: Comment changer ma version de Ruby en utilisant RVM? pour la solution.


Mettre tout cela en place sur Mountain Lion demande beaucoup de patience. Si vous rencontrez une erreur "Erreur lors de l'exécution de 'env GEM_PATH = / Users / ..." ce ne sont pas vos chemins, et vous verrez dans le journal que c'est qu'openssl (qui est probablement installé) est interrompu dans RVM et ils fournissent un page sur le travail à travers rvm.io/packages/openssl
Dylan Valade

4
Je déteste vraiment le désordre qu'est Ruby. C'est une pagaille. Cependant, cette réponse m'a mis sur la bonne voie et merci beaucoup pour cela!
Ian Lewis

1
Errant entre les articles qui m'amènent à d'autres problèmes, j'ai trouvé celui-ci très utile car il explique comment utiliser RVM, pas seulement l'utiliser.
Hector Ordonez

19

Avec infusion, il s'agit d'un one-liner:

(en supposant que vous ayez tapé homebrew / versions, ce qui peut être fait en exécutant brew tap homebrew/versions)

brew install ruby193

Cela a fonctionné hors de la boîte pour moi sur OS X 10.8.4. Ou si vous voulez 2.0, vousbrew install ruby

Plus généralement, brew search rubyvous montre les différents dépôts disponibles, et si vous voulez être vraiment spécifique, vous pouvez utiliser brew versions rubyet récupérer une version spécifique à la place.


1
Excellent one-liner pour installer une version spécifique de ruby! basculer entre les versions ruby ​​avec brew n'est pas aussi facile ... stackoverflow.com/questions/8730676
nelsonic

4

Je sais que c'est un article plus ancien, mais je veux ajouter des informations supplémentaires à ce sujet. Premièrement, je pense que cela rvmfait du bien MAIS ce n'était pas la mise à jour de ruby ​​de mon système (MAC OS Yosemite).

Ce rvmque je faisais: installer à un autre endroit et configurer le chemin vers ma variable d'environnement ... Et je m'ennuyais un peu, car j'avais maintenant deux rubis sur mon système.

Donc, pour résoudre ce problème, j'ai désinstallé le rvm, puis utilisé le gestionnaire de paquets Homebrew disponible ici et installé la commande de terminal ruby ​​throw en faisant brew install ruby.

Et puis, tout fonctionnait parfaitement! Le rubis de mon système a été mis à jour! J'espère que cela aidera les prochains aventuriers!


1
J'avais du mal à décider si je devais utiliser rvmou brew. CA aide. merci
unifreak

La bière ne fait-elle pas la même chose?
Anon

3

Je ne suis pas d'accord avec The Tin Man ici. Je considère que rbenv est préférable à RVM. rbenvn'interfère pas drastiquement avec votre shell comme le fait RVM, et il vous permet d'ajouter des installations Ruby séparées dans des dossiers ordinaires que vous pouvez examiner directement. Il vous permet de compiler Ruby vous-même. Bon aperçu des différences ici: https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

Je donne des instructions pour la compilation de Ruby 1.9 pour rbenv ici . Plus d'informations, plus détaillées ici . J'ai utilisé cette technique avec un succès facile sur Snow Leopard, Lion et Mountain Lion.


1
Au moment où cette question a été posée à l'origine, rbenv n'était pas une option. Les temps changent, tout comme le code. RVM est toujours un bon choix, mais il est lourd par rapport à rbenv. J'utilise les deux sur des machines différentes, car ils sont tous deux utiles de différentes manières.
the Tin Man

2

L'article Hivelogic de Dan Benjamin Installer Ruby, RubyGems et Rails sur Snow Leopard est l'endroit recommandé bien que l'article soit pour la version 1.8, voici donc une installation spécifique à Ruby 1.9 sur Snow Leopard . Méfiez-vous de la chose 64 bits ... soit allez tout 64 bits `` gros '' (comme c'est - par exemple - Apache sur OS X, qui peut causer des problèmes avec les bibliothèques 32 bits) ou vérifiez les gemmes que vous êtes susceptible à utiliser pour s'assurer qu'ils sont corrects pour 64 bits.


2

Cette commande fonctionne réellement

\curl -L https://get.rvm.io | bash -s stable --ruby


0

Comme mentionné précédemment, la version du bundler est peut-être trop élevée pour votre version de rails.

J'ai rencontré le même problème en utilisant Rails 3.0.1 qui nécessite Bundler v1.0.0 - v1.0.22

Vérifiez la version de votre bundler en utilisant: gem list bundler

Si la version de votre bundler n'est pas dans la plage appropriée, j'ai trouvé cette solution qui fonctionnait: rvm @global do gem uninstall bundler

Remarque: rvm est nécessaire pour cette solution ... un autre cas pour lequel vous devriez utiliser rvm en premier lieu.


0

Il y a plusieurs autres gestionnaires de versions à considérer, voyez pour quelques exemples et celui qui n'est pas listé ici et que je vais essayer bientôt est ch-ruby . J'ai essayé rbenv mais j'ai eu trop de problèmes avec. RVM est mon pilier, bien qu'il ait parfois un problème étrange (d'où mon souhait d'essayer ch-ruby quand j'en ai l'occasion). Je ne toucherais pas au système Ruby, car d'autres choses peuvent en dépendre.

Je devrais ajouter que j'ai également compilé mon propre Ruby plusieurs fois, et utiliser l'article Hivelogic (comme Dave Everitt l'a suggéré) est une bonne idée si vous prenez cette voie.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.