3 votes

Changement de version de Ruby sur heroku push

La version de Ruby est modifiée lors de la poussée dans le heroku.

       Ruby version change detected. Clearing bundler cache.
   Old: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
   New: ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux]

maintenant heroku run 'ruby -v' en retournant sur ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux] .

Mais ruby -v toujours en activité ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] .

Voici ma liste rvm

rvm list

rvm rubies

=* ruby-1.9.2-p290 [ i686 ]

# => - current
# =* - current && default
#  * - default

Je ne veux pas changer la version de ruby. Comment cela est-il arrivé ? Comment puis-je résoudre ce problème ? Aidez-moi, s'il vous plaît.

3voto

Sam Baumgarten Points 1386

Heroku a des instructions sur la façon de spécifier une version de ruby. Le document est ici : https://devcenter.heroku.com/articles/ruby-versions . Comme @JohnBeynon l'a dit, Heroku est un PaaS donc ils gèrent beaucoup de choses pour vous, y compris la version du patch (voir paragraphe suivant). Aucun de vos paramètres RVM ne changera quoi que ce soit sur Heroku car Heroku n'utilise pas RVM.

Pour spécifier la version de ruby que vous voulez, ajoutez ceci à votre Gemfile :

ruby "1.9.2"

Dans votre cas, vous ne pouvez pas spécifier la version du correctif, donc vous ne pouvez pas résoudre ce problème ; cependant, ce changement de version du correctif est une bonne chose. Il sera toujours compatible, mais il comportera davantage de mises à jour de sécurité et de corrections de bogues. Vous devriez également mettre à niveau votre machine locale plutôt que d'essayer de rétrograder vos serveurs. Vous trouverez plus d'informations à ce sujet à l'adresse suivante : https://blog.heroku.com/archives/2012/5/9/multiple_ruby_version_support_on_heroku

Alors que vous pouvez spécifier la version de Ruby pour votre application, vous ne pouvez pas spécifier une version de correctif, telle que Ruby 1.9.2-p290. Les correctifs Ruby incluent souvent des corrections importantes de bogues et de sécurité et sont extrêmement compatibles. Heroku fournira le niveau de patch le plus sûr, quel que soit le numéro de version mineur que vous demandez. numéro de version mineur que vous demandez.

3voto

Michal Szyndel Points 4267

J'ai obtenu la même information, donc je pense que c'est un changement dans la version Ruby de Heroku (attention, seul le patchlevel a changé).

Vous ne pouvez probablement pas revenir sur ce changement du côté de Heroku, mais vous devriez certainement mettre à jour votre propre version de Ruby.

1voto

John Beynon Points 23163

Heroku ne changera jamais la version majeure ou mineure de Ruby sur laquelle votre application fonctionne, mais seulement le niveau de correction.

Dans votre Gemfile vous pouvez spécifier major/minor avec

ruby '1.9.2'

Mais vous ne pouvez pas spécifier le niveau du patch car Heroku le gérera pour vous. De plus, lorsque votre application est sur Heroku, Rvm n'est pas utilisé donc cela ne fera pas de différence. Ainsi, lorsque Heroku change les niveaux de patch de ruby (comme indiqué dans leur changelog), vous verrez ce type de comportement se produire.

1voto

mpapis Points 32015

Vous n'avez pas à changer la version de ruby localement, les niveaux de patchs de ruby ne devraient pas introduire d'incompatibilités, vous devriez pouvoir développer sur l'ancien patch et déployer sur le nouveau ... cela dit, de mauvaises choses peuvent arriver comme toujours et l'équipe de ruby pourrait être forcée d'introduire une incompatibilité dans le niveau de patch à cause de problèmes de sécurité.

donc le mieux est de mettre à jour votre version locale de ruby avec :

rvm get stable
rvm upgrade 1.9.2

ou pour être plus explicite :

rvm upgrade 1.9.2-p290 1.9.2-p320

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X