Comment installer et utiliser différentes versions de ruby?

16

J'apprends les rails de différents livres qui utilisent différentes versions de rubis et de rails. Pour l'instant, j'ai installé ruby ​​1.87 sur mon Mac OS X Snow Leopard (en /usr/bin), mais je dois également utiliser ruby ​​1.9 pour une application de rails différente.

Quelqu'un peut-il me dire comment faire fonctionner cela? Je suis nouveau dans ce domaine, donc autant d'instructions que possible seraient grandement appréciées.

Michael
la source

Réponses:

21

Il existe deux "gestionnaires de versions Ruby", parmi lesquels vous pouvez choisir:

Ceux-ci vous permettent de conserver plusieurs versions de Ruby sur le même système. Une fois que vous avez installé un gestionnaire de versions et installé votre propre version de Ruby, vous ne gâcherez pas avec Ruby et ses gemmes de votre système, ce qui est le plus grand avantage. Pas plus sudo! Plus d'erreurs d'autorisation et de conflits Gem.

Lequel devrais-je choisir?

Les deux font la même chose, mais ils suivent des philosophies différentes. Le choix vous appartient.

Je recommanderais personnellement rbenvpour sa simplicité. Je l'utilise depuis des années et cela a toujours bien fonctionné. Auparavant, j'aurais recommandé RVM (et une version antérieure de cette réponse en faisait mention), mais je pense qu'il est plus difficile d'y entrer.

Comment les installer?

Si vous choisissez rbenv:

  • Suivez les instructions d'installation
  • Installer ruby-build
  • Exécutez rbenv install x.x.xx.x.xest la version (utilisez rbenv install --listpour voir celles qui sont disponibles
  • Courez rbenv global x.x.xpour changer votre version globale de Ruby

Si vous choisissez RVM:

  • Utilisez la méthode d'installation sécurisée
  • Lisez les instructions d'installation - vous voulez probablement la configuration mono-utilisateur
  • Utilisez rvm list knownpour répertorier les rubis disponibles, puis exécutez rvm install x.x.xpour installer une version spécifique.
  • Utilisez rvm use x.x.x --defaultpour changer votre Ruby par défaut
slhck
la source
1
Voir aussi rbenv .
user1686
@grawity Pourquoi ne pas poster une autre réponse? C'est bien d'avoir des alternatives, je n'ai pas encore vraiment étudié rbenv.
slhck
merci beaucoup, cela aide-t-il également à basculer entre les versions de Rails? différents livres que j'utilise emploient 3.05 (je pense) et 3.1 et cela cause des problèmes ...
Michael
J'ai essayé la ligne d'installation que vous avez écrite (et qui se trouve également sur le site rvm) et j'ai reçu un message d'erreur: bash: ligne 152: git: commande introuvable bash: ligne 154: git: commande introuvable
Michael
Ah, tu as besoin git, bien sûr. Désolé, j'ai oublié ça. Vous pouvez installer Git avec le programme d'installation d' OS X (sélectionnez simplement la dernière version en haut).
slhck
7

Je pense que rbenv mérite au moins sa propre réponse.

Il y a une bataille constante entre les fans de rbenv et ceux de RVM mais personnellement j'aime beaucoup plus rbenv. Comme l'indique Sam Stephenson (l'auteur), il ne s'occupait que de changer de version Ruby (par opposition à RVM, qui en fait beaucoup plus).

Sous OS X, il est particulièrement facile de l'essayer. Suivez simplement les excellentes instructions d'installation sur la page Github (si vous avez installé Homebrew, c'est simplementbrew install rbenv ruby-build ).

En ce qui concerne le changement de version de Rails, j'ai écrit une fois un article à ce sujet qui pourrait vous intéresser.

Michael Trojanek
la source
1
Voici une brève description de l'auteur de rbenv sur les principales différences avec RVM et les raisons de choisir rbenv. La simplicité de rbenv a été la principale raison pour laquelle j'ai migré loin de RVM. La gestion d'ensembles de gemmes spécifiques à une application est mieux réalisée avec Bundler - vous n'avez pas besoin d'un gestionnaire de version Ruby pour cela.
Jochem Schulenklopper
Exactement - la gestion des ensembles de gemmes spécifiques à l'application est le travail de Bundler . Je n'ai jamais été fan de jeux de gemmes liés aux gestionnaires de versions.
Michael Trojanek