Comme la plupart des langages de programmation actuels, Ruby s’appuie sur tout un écosystème de bibliothèques logicielles (ou “librairies”, de l’anglais “library” : bibliothèque).
Ces bibliothèques sont bien souvent disponibles sous la forme d’une gem. RubyGems est le « gestionnaire de paquets de Ruby » permettant de télécharger et d’installer ces gems. Il facilite également leur création et leur partage. Il s’agit donc d’un équivalent à Apt ou Homebrew (gestionnaires de paquets Debian ou Mac respectivement), mais pour Ruby spécifiquement.
Depuis Ruby 1.9, RubyGems est intégré dans Ruby. Pour les versions précédentes, il faudra l’installer séparement.
Lorsqu’une gem n’est pas disponible, il est toujours possible d’installer
une librairie à partir de son code source, ce dernier étant généralement
mis à disposition sous la forme d’une archive (.zip ou .tar.gz). Chaque
projet pouvant avoir ses spécificités, on consultera sa documentation (en
général, un fichier README
ou INSTALL
décrit la procédure
d’installation).
Trouver des bibliothèques
RubyGems.org est le dépôt principal où vous trouverez des
bibliothèques pour Ruby. Vous pouvez aussi bien consulter le site dans
votre navigateur qu’utiliser la commande gem
.
gem search -r
permet d’effectuer une recherche sur RubyGems. Par
exemple, ruby search -r rails
vous listera toutes les gems liées à
Rails de par leur nom. L’option --local
(-l
) fera de même, en ne
listant que les gems disponibles sur votre machine. Pour installer une
gem, il suffit de faire gem install [gem]
. On peut lister ses gems
avec gem list
. Pour plus d’informations sur la commande gem
,
voyez ci-après et/ou la documentation sur le site officiel.
D’autres sources ou dépôts existent aux cotés de RubyGems.org. RubyForge était très populaire aux débuts de Ruby. Il est aujourd’hui largement supplanté par GitHub. La plupart du temps, le code source d’une gem est hébergé sur GitHub tandis que la gem associée est publiée sur RubyGems.org.
Ruby Application Archive (RAA) recense tous types de programmes Ruby, organisés selon leur fonction opérationnelle. Très riche à une époque, mais plus vraiment d’actualité.
Utilisation de RubyGems
On peut rapidement se familiariser avec la commande gem
et couvrir
en quelques lignes l’usage quotidien qu’on peut en faire. Une
documentation complète est disponible par ailleurs.
Rechercher une gem
La commande search permet de faire une recherche lexicale sur les gems du dépôt (donc, de chercher sur le nom des gems, pas leur description). Ainsi, une recherche sur le mot « html » :
L’option --remote
/ -r
indique à la commande gem
que nous souhaitons
inspecter le dépôt « distant » RubyGems.org (il s’agit du comportement par
défaut, l’option est… optionnelle). L’option --local
/ -l
permet de
faire une recherche locale (sur votre machine, parmi les gems déjà
installés).
Installer une gem
Une fois que vous avez choisi une librairie à installer, utilisez la
commande gem install
. Par exemple, pour installer Rails :
Vous pouvez par ailleurs demander l’installation d’une version précise,
avec l’option --version
:
Lister toutes les gems
Pour récupérer la (très longue) liste complète des gems disponibles :
Pour afficher uniquement les gems que vous avez installées :
Au secours !
Une aide succinte est disponible directement en ligne de commande :
Par exemple, gem help commands
liste et décrit toutes les sous-commandes
de la commande gem
.
Fabriquer vos propres gems
RubyGems.org propose plusieurs guides sur ce sujet. Vous serez sans doute également intéressé par Bundler, un outil générique visant à simplifier la gestion des dépendances et qui s’intègre totalement à RubyGems.