Comment installer Ruby sur macOS pour le développement local
27 septembre 2022
0 minutes de lectureSi vous débutez dans le développement avec Ruby ou Ruby on Rails, vous voudrez savoir :
Comment installer correctement Ruby sur Mac.
Comment configurer un environnement de développement local qui n’entre pas en conflit avec
brewni avec une installation existante de Ruby 2.7 sur Mac
Dans ce tutoriel, vous apprendrez à faire les deux ! Si vous avez un nouveau Mac portable avec puce M1, pas d’inquiétude : ce tutoriel fonctionne aussi pour installer Ruby sur Mac M1.
N’exécutez jamais brew install ruby
Certains guides et articles de blog vous conseilleront d’installer Ruby en exécutant brew install ruby ou de mettre à jour vos versions de Ruby existantes sur macOS avec la commande update ruby mac. Je vous recommande vivement d’éviter complètement ces manipulations.
Cela dit, l’utilisateur Reddit postmodern a indiqué dans un fil de discussion sur Ruby qu’il était probablement possible de configurer explicitement l’installation de brew dans un autre répertoire. Par défaut, Brew installe les fichiers dans /usr/local et, selon postmodern, cela n’interfère pas avec les scripts Ruby système d’Apple, car l’emplacement de leur interpréteur est codé en dur dans /usr/bin/ruby. Il souligne également qu’Apple prévoit d’abandonner les versions préinstallées de Python, Ruby et Perl.
Pourquoi ne pouvez-vous pas utiliser la version système de Ruby sur Mac ?
Si vous exécutez des commandes qui modifient votre version native de Ruby, comme brew install ruby ou brew uninstall ruby, vous risquez de compromettre des fonctionnalités de macOS (cela s’applique aussi aux Mac M1).
Il est également important de noter que la version de Ruby préinstallée sur macOS est obsolète : sur un nouveau Mac portable M1 de 2022, la commande renvoie ruby 2.6.8p205. La dernière version, Ruby 3.1.2, est sortie en avril 2022 et constitue une mise à niveau majeure par rapport à celle préinstallée sur macOS.
Vous voudrez probablement utiliser Ruby 3 dans votre environnement de développement local : c’est une très bonne raison de ne plus utiliser les versions préinstallées de Ruby. Vous pourrez également choisir la version avec laquelle vous souhaitez travailler. Pour y parvenir, nous allons utiliser des environnements virtuels Ruby.
Comment vérifier la version de Ruby installée sur mon Mac ?
Pour vérifier la version de l’interpréteur Ruby installée nativement, exécutez la commande suivante :
Si vous n’avez pas effectué de mise à niveau, macOS Monterey est fourni avec Ruby 2.6.8. Si vous avez effectué une mise à niveau ou gérez les versions de Ruby avec rbenv, rvm ou un autre gestionnaire de versions Ruby, une autre version peut s’afficher. Vous pouvez aussi parfois trouver Ruby dans le chemin de fichier /usr/local/bin/ruby lorsqu’il est installé avec le gestionnaire de paquets Homebrew pour macOS.
Où se trouve le dossier Ruby sur Mac ?
L’interpréteur Ruby se trouve souvent nativement sur macOS aux emplacements /usr/bin/ruby ou /usr/local/bin/ruby, selon l’endroit où il a été installé. Les gems Ruby sont installées et gérées nativement sur macOS par le système d’exploitation. Il est déconseillé d’utiliser sudo gem install ou de modifier ces gems Ruby. Envisagez plutôt d’installer un environnement virtuel Ruby avec un outil comme rbenv.
L’environnement virtuel Ruby
Un concept pratique, également présent dans d’autres langages de programmation et leurs outils, est l’environnement virtuel Ruby. Si vous avez utilisé virtualenv pour Python ou nvm pour Node.js, vous devriez facilement adopter le virutalenv de Ruby. Pour commencer, il vous suffit de quelques outils de l’écosystème Ruby, comme rbenv ou rvm.
Ces outils évitent les conflits avec la version native de Ruby sur Mac : ils récupèrent le code source de Ruby sur Internet, le compilent localement et le rendent disponible dans un chemin donné. Ils vous indiquent ensuite d’ajouter le chemin de ce nouveau répertoire à votre shell, afin que la nouvelle version de Ruby soit disponible à l’ouverture d’un nouveau terminal.
Il s’agit essentiellement de gestionnaires de versions Ruby qui vous permettent de passer rapidement d’une version d’exécution de Ruby à une autre selon vos besoins, en fonction du répertoire d’installation de Ruby défini.
Faut-il utiliser rbenv ou rvm ?
Deux outils populaires d’environnement virtuel Ruby sont rbenv et rvm. Comme les outils et versions spécifiques ont tendance à devenir obsolètes à mesure que le secteur évolue, je ne vais pas comparer en détail les fonctionnalités de rbenv et rvm1. J’ai plutôt demandé leur avis à des amis développeurs qui connaissent bien Ruby et j’ai choisi rbenv, recommandé par la majorité d’entre eux.
D’autres gestionnaires d’environnements virtuels Ruby que je n’ai pas encore explorés méritent également d’être mentionnés : chruby et ruby-install.
Commençons avec rbenv
Le projet open source rbenv est hébergé sur GitHub, où vous trouverez un excellent espace pour suivre les problèmes et consulter la documentation à jour dans le fichier README de rbenv.
Comment installer Ruby avec rbenv
Comme pour bien d’autres outils, nous allons utiliser le gestionnaire de paquets Homebrew très répandu sur macOS. Exécutez la commande suivante dans votre terminal :
Une fois l’installation terminée, nous devons configurer rbenv avec notre shell afin d’utiliser la version d’exécution de Ruby installée avec rbenv chaque fois que nous ouvrons une nouvelle fenêtre de terminal pour saisir des commandes (au lieu de la version Ruby 2.6.8 préinstallée sur macOS).
Pour configurer rbenv avec votre shell, exécutez la commande suivante :
Suivez les instructions affichées à l’écran si une configuration supplémentaire est nécessaire. Vous devrez peut-être coller une commande dans le fichier de configuration de votre shell. Si vous utilisez macOS et n’avez pas remplacé le shell Z (ZSH) par défaut, ajoutez la ligne de code suivante en haut de votre fichier ~/.zshrc :
L’installation de rbenv est maintenant terminée. Vous pouvez effectuer quelques vérifications pour vous assurer que tout est correctement configuré. Pour cela, exécutez l’outil rbenv-doctor fourni par le projet rbenv sur GitHub :
Ouvrez une nouvelle fenêtre de terminal pour charger le nouvel environnement rbenv
Exécutez la commande :
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | zsh
Avertissement : n’exécutez pas cette commande à la légère : elle transmet à votre shell d’environnement de développement des commandes provenant d’un dépôt GitHub public et open source. Un acteur malveillant pourrait avoir altéré le code source ; nous vous recommandons donc vivement de l’examiner attentivement avant d’exécuter cette commande.
Comment utiliser rbenv pour installer une nouvelle version de Ruby ?
Félicitations, vous avez créé votre propre environnement virtuel Ruby ! Maintenant que rbenv est correctement configuré, vous pouvez l’utiliser pour gérer entièrement vos versions de Ruby.
Commencez par répertorier les versions de Ruby disponibles à l’installation afin de choisir la dernière version ou une version précise. Pour afficher toutes les versions de Ruby avec rbenv, exécutez la commande suivante :
Voici le résultat obtenu :
Vous pouvez ensuite installer l’une de ces versions de Ruby. Utilisons rbenv pour installer la version 3.1.2 :
La commande va alors récupérer les fichiers de code source nécessaires, les extraire, les compiler, puis installer la version d’exécution Ruby 3.1.2 pour qu’elle soit disponible dans votre shell.
Une fois l’installation terminée, définissez cette version comme version par défaut au démarrage de votre shell. Pour cela, exécutez :
Enfin, vérifiez que tout fonctionne comme prévu en exécutant ruby --version dans votre shell. Le résultat devrait être similaire à celui-ci :
Avant de conclure, quelques précisions sur rbenv global. En raison du nom de cette commande (global), je craignais qu’elle puisse interférer d’une manière ou d’une autre avec la version de Ruby préinstallée sur macOS. Ce n’est pas le cas. La commande fait référence à la configuration globale de l’utilisateur, c’est-à-dire au fichier de configuration rbenv situé dans ~/.rbenv/version. Cela signifie qu’elle n’est pas liée à un projet ou à un répertoire Ruby spécifique.
Et maintenant ?
Vulnérabilités de Ruby on Rails et failles de sécurité Ruby
Avant de vous lancer dans vos activités de développement Ruby, consultez les ressources suivantes pour respecter les conventions de codage sécurisé et protéger vos gems Ruby contre les vulnérabilités. Elles sont utiles pour prévenir les vulnérabilités de Ruby on Rails présentes dans les gems Ruby du framework, ainsi que les failles de sécurité Ruby en général.
Je vous recommande vivement les ressources suivantes sur le développement Ruby et la sécurité de Ruby :
Si vous débutez dans le développement Ruby ou ne comprenez pas encore bien le fonctionnement des dépendances open source en Ruby, consultez mon article consacré à un guide complet de la gestion des dépendances des gems Ruby.
Si vous n’êtes pas convaincu que les failles de sécurité peuvent toucher vos projets, je vous invite à lire rapidement l’article du blog de DeveloperSteve intitulé Renforcer la sécurité de votre Gemfile Ruby : guide pas à pas avec Snyk. Il y analyse plusieurs projets avec l’outil de sécurité Snyk pour Ruby. Snyk est gratuit et vous permet de vous lancer avec Ruby rapidement et facilement.
Enfin, n’oubliez pas de vous méfier de l’exécution de code à distance malveillant et des autres risques de sécurité liés aux gems Ruby, causés par les attaques de la chaîne d’approvisionnement qui ont touché plusieurs écosystèmes, y compris Ruby.
Essayez dès maintenant notre outil gratuit de vérification du code Ruby pour découvrir comment Snyk Code analyse votre code à la recherche de problèmes de sécurité et de qualité.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.



