Réponses:
Tout d'abord, mettez à jour votre installation RVM en exécutant rvm get stable
.
Pour vous assurer que vous exécutez la nouvelle version RVM, vous devrez alors exécuter rvm reload
(ou simplement ouvrir un nouveau terminal).
Une fois cela fait, vous pouvez demander à RVM de répertorier les versions de ruby disponibles à installer en exécutant rvm list known
.
Dans la sortie, vous devriez maintenant voir:
# MRI Rubies
...
[ruby-]1.9.2[-p320]
...
Les crochets autour du niveau de patch indiquent qu'il s'agit actuellement du niveau de patch par défaut de RVM pour ruby 1.9.2.
Enfin, pour installer la nouvelle version de ruby, lancez simplement rvm install 1.9.2
- et attendez qu'elle se compile!
Mettez à niveau l'interpréteur ruby et conservez les ensembles de gemmes existants:
$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y
À remplacer par la dernière version stable de 1.9.2. Cela évite l'encombrement.
Quelques conseils utiles supplémentaires, grâce aux commentaires (@Mauro, @James, @ACB)
$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby
rvm list known
pour voir les versions de ruby disponibles que vous pouvez mettre à niveau.
Première mise à jour RVM:
rvm get stable
Ensuite, mettez à jour votre version Ruby:
rvm upgrade 2.0.0
Choisissez oui pour toutes les questions:
Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y
Si vous souhaitez mettre à jour vos gemmes avec les dernières versions, vous pouvez faire:
rvm all do gem update
EDIT: Je viens de faire cela aujourd'hui pour la dernière version de ruby 2.0.0 (j'ai mis à jour de ruby-2.0.0-p195 à ruby-2.0.0-p353). Après cela, j'ai eu une erreur de segmentation lorsque j'ai essayé de mettre à jour les gemmes. Cela se produit parce que les gems ont été installés pour ruby-2.0.0-p195 et certains d'entre eux sont incompatibles avec p353.
Vous pouvez maintenant essayer de trouver les gemmes incompatibles, mais la solution la plus simple était de supprimer toutes les gemmes installées et de les réinstaller. J'ai simplement supprimé le gems/ruby-2.0.0-p353
répertoire qui se trouvait dans /usr/local/rvm
. Cela pourrait être ailleurs pour vous.
Ensuite, j'ai couru gem install bundler
et pour chacune de mes applications de rails j'ai fait bundle install
.
comme ça:
rvm update; rvm reload
rvm install ruby-1.9.2-p136
rvm --default ruby-1.9.2-p136
Vous pouvez installer n'importe quel niveau de patch en suivant la page de leur wiki .
De plus, chaque ruby est indépendant, donc vous ne «mettez pas à jour et gardez les gemmes», mais installez une nouvelle version de correctif puis installez les gemmes dans ce nouvel environnement ruby.
C'est peut-être là où les gemmes entrent en jeu, mais je ne les utilise pas.
N'oubliez pas de mettre à jour votre rvm aussi, juste au cas où ça fait un moment.
La réponse de npad expose définitivement les bases, je ne répéterai donc pas ces étapes, mais plusieurs réponses suggèrent ici d'utiliser rvm upgrade
. Je sais que rvm vous donne l'option, mais c'est un peu dangereux.
OMI, la manière la plus sûre et la plus «rvm» est de commencer par rvm install
la nouvelle version de ruby, puis d'utiliser la rvm gemset copy
commande pour copier votre ou vos ensembles de gemmes dans la nouvelle version de ruby, par exemple rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset
. Ensuite, vous pouvez facilement basculer votre projet vers l'utilisation du jeu de gemmes nouvellement copié (je recommande d'utiliser un .rvmrc
fichier dans le répertoire de votre projet) et voir si votre code échoue. Si c'est le cas, revenir à l'ancienne version ruby est juste une question de changement de jeu de gemmes.
Mais même si vous n'utilisez pas de gemsets (bien que je suppose que vous le faites puisque vous avez marqué des rails sur cette question), l'utilisation de rvm upgrade
peut entraîner des échecs inattendus. Et si votre code se casse, vous devez maintenant réinstaller l'ancienne version. Prenez juste un peu plus de temps et faites-le de manière propre.
Je suppose que c'est rvm install 1.9.2-head
Vous pouvez voir les rubis disponibles avec rvm list known
head
obtenir le dernier niveau de patch? Je pensais que c'était pour la toute dernière version, ce qui signifie que ça pourrait être quelque chose d'instable et d'expérimental.
Ce billet de blog devrait être utile: http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development
essentiel:
rvm get head
rvm reload
wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched
rvm get latest
/rvm get head
sont les moyens corrects de mettre à jour rvm maintenant.