HOWTO · Ruby
Changer la version de Ruby sur Mac
Nous allons montrer comment changer la version de Ruby sur Mac.
Sur cette page
Pour changer de version de Ruby sur Mac, utilisez un gestionnaire de versions comme rbenv ou RVM. Choisissez une version locale pour un projet ou une version globale pour votre shell. Bundler peut vérifier qu’un projet utilise la version de Ruby déclarée, mais il n’installe pas Ruby et ne change pas de version. Les étapes ci-dessous présentent les deux gestionnaires : choisissez-en un, puis vérifiez que votre shell utilise bien la version sélectionnée.
Choisir un gestionnaire de versions Ruby pour votre Mac
Choisissez rbenv si vous recherchez un outil léger qui sélectionne Ruby via le PATH de votre shell et peut lire le fichier .ruby-version d’un projet. Choisissez RVM si vous préférez un gestionnaire qui fournit aussi des gemsets Ruby et une gestion plus étendue de l’environnement. Évitez de configurer les deux pour modifier les mêmes fichiers de démarrage du shell : des modifications concurrentes du PATH compliquent l’identification de la version active.
Les installations macOS varient. Avant toute modification, vérifiez les versions disponibles avec ruby -v. Ne partez pas du principe que tous les Mac incluent Ruby ou qu’un gestionnaire de paquets fournit une version précise dite « la plus récente ». Un gestionnaire de versions installe la version que vous demandez ; le compilateur et les bibliothèques système installés peuvent influer sur la compilation d’anciennes versions.
Installer et changer de version de Ruby avec rbenv
Installez d’abord Homebrew s’il n’est pas déjà disponible. Installez ensuite rbenv avec brew install rbenv. Avec les versions actuelles de Homebrew, initialisez-le dans votre shell en exécutant rbenv init ; suivez les instructions correspondant à votre shell, puis redémarrez le terminal ou rechargez son fichier de démarrage. Les anciennes instructions de configuration de rbenv peuvent utiliser une ligne d’initialisation propre au shell : suivez celles qui correspondent à la version installée.
Installez une version de Ruby avec rbenv install 3.2.2 (remplacez cet exemple par la version requise par votre projet). Si la commande rbenv install n’est pas disponible, installez le composant ruby-build selon la méthode recommandée pour votre installation de rbenv, puis réessayez.
Choisissez la portée de la version :
- Dans le répertoire d’un projet, exécutez
rbenv local 3.2.2. Cette commande écrit3.2.2dans le fichier.ruby-versionde ce répertoire ; rbenv sélectionne alors cette version dans le répertoire et ses sous-répertoires. - Pour définir la version par défaut en dehors des répertoires ayant un réglage local, exécutez
rbenv global 3.2.2.
Un réglage local est prioritaire sur le réglage global. Vérifiez la version sélectionnée avec rbenv version, puis confirmez que ruby -v et which ruby pointent vers l’interpréteur attendu. Si ruby pointe toujours ailleurs, initialisez rbenv dans le shell que vous utilisez réellement et vérifiez que $(rbenv root)/shims précède les autres emplacements Ruby dans le PATH.
Installer et changer de version de Ruby avec RVM
RVM utilise un programme d’installation distant. Consultez les instructions d’installation du projet RVM avant de lancer son programme d’installation : transmettre directement un script téléchargé à un shell exécute du code provenant du réseau. Après avoir installé RVM selon les instructions correspondant à votre shell, ouvrez un nouveau terminal ou chargez son intégration au shell. Une session peut charger une installation existante avec source ~/.rvm/scripts/rvm.
Installez la version de Ruby requise par votre projet avec rvm install 3.2.2, puis sélectionnez-la avec rvm use 3.2.2. Pour en faire la version par défaut des nouveaux shells, utilisez rvm use 3.2.2 --default. Dans un répertoire de projet, rvm use 3.2.2 sélectionne cette version pour le shell courant ; RVM prend aussi en charge les fichiers de projet lorsque son intégration au shell est configurée.
Vérifiez le résultat avec ruby -v et which ruby. Si l’ancienne version reste active, vérifiez que RVM est chargé dans le shell courant et examinez le PATH pour repérer un autre gestionnaire Ruby ou le Ruby du système placé avant lui. RVM et rbenv sont des outils distincts : les commandes de l’un ne configurent pas l’autre.
Utiliser Bundler pour exiger une version de Ruby dans un projet
Un projet peut déclarer la version de Ruby requise dans son Gemfile :
ruby "3.2.2"
Utilisez une version prise en charge par le projet. Sélectionnez cette version, puis exécutez bundle install. Bundler compare l’interpréteur courant à la version requise dans le Gemfile et installe les gems du projet ; il ne télécharge pas Ruby et ne change pas de version. Si la version de Ruby active ne satisfait pas cette exigence, sélectionnez ou installez une version compatible avec rbenv ou RVM, puis relancez Bundler.
Un fichier .ruby-version versionné peut aider un gestionnaire à sélectionner automatiquement la version de Ruby du projet. Faites correspondre ce fichier à l’exigence du Gemfile et vérifiez que la version requise est installée dans l’environnement de chaque développeur ou de chaque compilation.
Vérifier la version de Ruby active et résoudre les problèmes courants
Exécutez ces commandes dans le même terminal et le même répertoire que ceux utilisés pour lancer votre application :
ruby -vaffiche la version de l’interpréteur exécuté par le shell.which rubyindique l’exécutable trouvé en premier dans lePATH.rbenv versionindique la version sélectionnée et son origine lorsque vous utilisez rbenv.rvm currentindique la version active lorsque vous utilisez RVM.
Cet exemple en Ruby affiche la version indiquée par l’interpréteur qui l’exécute. L’exécution fournie a affiché :
puts "Active Ruby: #{RUBY_VERSION}"
Active Ruby: 3.1.2
Si un gestionnaire indique la version attendue alors que ruby -v en affiche une autre, le shell utilise probablement un exécutable différent. Vérifiez que le fichier de démarrage du shell actif initialise le gestionnaire, ouvrez un nouveau terminal, puis examinez à nouveau le PATH. Vérifiez aussi la présence d’un fichier .ruby-version dans le répertoire courant, car il peut remplacer le réglage global de rbenv. Si Bundler signale que la version de Ruby ne satisfait pas l’exigence, comparez celle du Gemfile avec le résultat de ruby -v : modifier les gems ne résoudra pas une incompatibilité de version de l’interpréteur.
FAQ
Puis-je installer plusieurs versions de Ruby ?
Oui. rbenv et RVM peuvent tous deux conserver plusieurs versions de Ruby installées. Sélectionnez celle qui convient pour l’ensemble du shell ou pour un projet au lieu de supprimer une version dont un autre projet pourrait avoir besoin.
Comment utiliser une autre version de Ruby pour un seul projet ?
Avec rbenv, exécutez rbenv local VERSION dans le répertoire du projet ; la sélection est enregistrée dans .ruby-version. Avec RVM, sélectionnez la version dans le shell du projet avec rvm use VERSION et configurez la prise en charge des fichiers de projet de RVM si vous souhaitez que la sélection soit automatique en entrant dans le répertoire. Dans les deux cas, assurez-vous que la version est installée et vérifiez-la avec ruby -v.
Dois-je désinstaller l’ancienne version de Ruby ?
Non. Conservez les versions nécessaires à d’autres projets. Si vous en supprimez une plus tard, utilisez la commande de désinstallation du gestionnaire qui l’a installée et vérifiez d’abord qu’aucun projet n’en dépend.
Bundler change-t-il la version de Ruby active ?
Non. Une déclaration ruby dans le Gemfile permet à Bundler de vérifier si l’interpréteur actif satisfait l’exigence du projet. Utilisez un gestionnaire de versions pour installer et sélectionner Ruby, puis exécutez bundle install.