2017-06-14 1 views
1

Après la mise à niveau de ma version Ruby, j'ai eu (comme prévu) du mal à faire fonctionner mon serveur avec des projets plus anciens. Je suis curieux de savoir comment changer les versions de Ruby localement pour un projet spécifique. La page github de Rbenv utilise $ rbenv local 1.9.3-p327 comme exemple de commande pour faire cela. Ce que je veux savoir, c'est ce à quoi le -p327 fait référence, ce qu'il devrait être dans mon cas, et si c'est même nécessaire. Puis-je simplement lancer $ rbenv local 2.3.1 par exemple?Présentation de RBENV: basculement local des versions Ruby

(Dans mon cas, je suis actuellement en utilisant le 2.4.0 de Ruby envie de revenir à une version antérieure pour éviter une erreur Gem que je Devise ne semble pas aller au-delà.)

Répondre

1

Pour répondre à votre autre question,

page GitHub de Rbenv utilise $ rbenv local 1.9.3-p327 comme un exemple de commande de la façon de le faire. Ce que je veux savoir est ce que le -p327 fait référence à ...

La vieille politique de versionnage pour Ruby était MAJOR. MINOR. TEENY-PATCH

p327 se réfère simplement à Patchlevel, qui est essentiellement un nombre qui s'incrémente pour chaque patch accepté après l'incrément d'un nombre MINOR. Prior to Ruby 2.1, les correctifs de sécurité n'ont pas incrémenter la version TEENY, donc certaines versions spécifient le niveau de patch.

+0

Ahh ... ça l'explique! Donc, pas nécessairement nécessaire lors de la commutation des versions. Est-ce une bonne pratique de suivre et d'utiliser les derniers patchlevels lors de la commutation des versions alors? Merci Adam. – Belder

+0

@BrandonElder généralement vous voulez cibler une version 'MINOR', par exemple. '2.3', et il y a habituellement une certaine marge de manœuvre avec la version' TEENY'. Certains environnements de production sont plus stricts, donc YMMV. En cas de doute, choisissez la version en cours de production. Depuis la modification de la politique pour 2.1 j'ai lié, vous ne verrez pas un numéro de niveau de patch séparé dans une version. –

+0

info impressionnante .... tout semble fonctionner maintenant. Merci encore. – Belder

2

$ rbenv local 2.3.1 sera faites exactement ce que vous avez supposé. La version spécifique au projet de Ruby est définie via un fichier .ruby-version dans le répertoire du projet. Ce paramètre a priorité sur toute utilisation de rbenv global qui définirait la version Ruby alors qu'elle n'était pas spécifiée.

+0

Vous avez répondu comme 13 secondes plus tôt à moi;) – gates

+0

Ok ... super, et merci pour la réponse. Je suppose que ma seule confusion maintenant est que je ne semble pas avoir un fichier nommé '.ruby_version' dans mon répertoire de projet. Où pourrais-je trouver cela et pourrait-il être nommé autre chose? – Belder

+0

C'est '.ruby-version' pas' .ruby_version' –

1

Rbenv utilise un fichier .ruby-version pour détecter le projet de version ruby ​​qui utilise. Alors avez-vous ce fichier? En fonction de la version du ruby ​​que votre projet utilise, il suffit d'écrire un nombre dans votre fichier.

exemple: 2.3.0

+0

Ah, je n'ai pas remarqué ta réponse ... merci. Comme j'ai commenté @MarsAtomic, je ne semble pas avoir un fichier nommé '.ruby_version'. Je me demande pourquoi je n'aurais pas ça dans mon projet? – Belder

+1

Eh bien, si vous ne le trouvez pas, créez-en un dans la même hiérarchie que .git :) et le contenu du fichier devrait être la version du ruby ​​que le projet utilise @BrandonElder – gates

+0

ok ... cool .. .. Merci beaucoup. – Belder