web-dev-qa-db-fra.com

Comment mettre à niveau mon Ruby 1.9.2-p0 vers le dernier niveau de correctif avec rvm?

Ma version actuelle de Ruby est Ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]] mais je souhaite le mettre à jour au dernier niveau de correctif à l'aide de rvm. Comment puis-je faire cela?

113
Lan

Tout d’abord, mettez à jour votre installation RVM en exécutant rvm get stable.

Pour vous assurer que vous utilisez la nouvelle version de RVM, vous devez ensuite exécuter rvm reload (ou ouvrez simplement un nouveau terminal).

Une fois que cela est fait, vous pouvez demander à RVM d’énumérer les Ruby disponibles à l’installation 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 du correctif indiquent qu'il s'agit actuellement du niveau de correctif par défaut de RVM pour Ruby 1.9.2.

Enfin, pour installer la nouvelle version Ruby, exécutez simplement rvm install 1.9.2 - et attendez qu'il soit compilé!

160
npad

Mise à niveau Ruby interprète et conserver les jeux de pierres 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 astuces 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
94
oma

Première mise à jour du RVM:

rvm get stable

Puis mettez à jour votre Ruby version:

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 gems 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 Ruby-2.0.0-p195 en Ruby-2.0.0-p353). La segmentation était défectueuse lorsque j'ai essayé de mettre à jour des gems, notamment parce qu'ils ont été installés pour Ruby-2.0.0-p195 et que certains d'entre eux sont incompatibles avec p353.

Vous pouvez maintenant essayer de trouver les gemmes incompatibles, mais la solution la plus simple consistait à supprimer toutes les gemmes installées et à les réinstaller. J'ai simplement enlevé gems/Ruby-2.0.0-p353 répertoire qui se trouvait dans /usr/local/rvm. Cela pourrait être ailleurs pour vous.

Puis j'ai couru gem install bundler et pour chacune de mes Rails applications que j’ai réalisées bundle install.

34
Viktor Fonic

comme ça:

rvm update; rvm reload
rvm install Ruby-1.9.2-p136 
rvm --default Ruby-1.9.2-p136
14
Amer

Vous pouvez installer n’importe quel niveau de patch en suivant la page dans leur wiki .

De plus, chaque Ruby est indépendant, vous ne devez donc pas réellement "mettre à jour et conserver les gems", mais installer une nouvelle version du correctif, puis les installer dans ce nouveau Ruby environnement.

C’est peut-être lorsque des pierres précieuses entrent en jeu, mais je ne les utilise pas.

N'oubliez pas de mettre à jour votre MVM aussi, juste au cas où ça fait un moment.

2
pjammer

la réponse de npad définit clairement les bases, je ne vais donc pas répéter ces étapes, mais plusieurs réponses suggèrent d'utiliser rvm upgrade. Je sais que rvm vous donne la possibilité, mais c’est un peu dangereux.

OMI, la méthode la plus sûre et la plus efficace est d’abord rvm install la nouvelle version Ruby version, utilisez ensuite la rvm gemset copy commande pour copier votre/vos gemset (s) dans la nouvelle version Ruby version, par exemple rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset. Ensuite, vous pouvez facilement passer votre projet à l’utilisation du gemset récemment copié (je vous recommande d’utiliser un .rvmrc dans le répertoire de votre projet) et voyez si votre code échoue. Si tel est le cas, revenir à l’ancienne Ruby n’est qu’une question de commutation du gemset.

Mais même si vous n'utilisez pas de gemsets (même si je suppose que vous le faites depuis que vous avez tagué Rails sur cette question)), l'utilisation de rvm upgrade peut conduire à des échecs inattendus. Et si votre code tombe en panne, vous devez maintenant réinstaller l'ancienne version. Il suffit de prendre un peu plus de temps et de le faire de façon propre.

2
poetmountain

Cet article 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
1
Dawid Woźniak

Je suppose que c'est rvm install 1.9.2-head

Vous pouvez voir les rubis disponibles avec rvm list known

1
Heikki