Selon la réponse précédente, c'est beaucoup à couvrir, alors considérez ceci comme une brève introduction.
les gemmes sont la façon dont les bibliothèques Ruby sont empaquetées. Ils sont à Ruby ce que les pots sont à Java. Dans un fichier gem, vous trouvez du code Ruby (fichiers .rb), mais aussi des tests, et un fichier spécial donnant des informations sur le gem lui-même, comme son nom, ses dépendances et sa version ( gemspec ). Tout projet Ruby peut définir les gemmes dont il a besoin via un Gemfile qui a juste besoin de déclarer des dépendances. Rubygems est le nom du gestionnaire de packages - l'outil utilisé pour installer les packages (tandis que les gemmes sont les packages eux-mêmes). Rubygems fait désormais partie de Ruby.
Bundler est ce qui rend la gestion des gemmes supportable. Sur la base de votre Gemfile, un simple appel au bundler à l'aide de l' installation groupée téléchargera et installera tous les gemmes nécessaires. En utilisant la commande gem standard, vous devrez installer chacun d'eux manuellement, en utilisantgem install <gem_name>
. Bundler ne fait pas partie de Ruby (il est lui-même emballé comme un bijou ), mais c'est un "standard de facto" pour la plupart des applications (vous ne trouverez pas beaucoup de gens qui ne l'utilisent pas, et aucune bonne raison de ne pas l'utiliser, en fait).
RVM est un outil vous permettant d'installer plusieurs versions de Ruby sur une machine, en basculant entre elles en cas de besoin. Cela peut être utilisé pour installer à la fois un Ruby 1.8 et 1.9, ou même un "MRI" (Ruby de Matz, l'implémentation par défaut) et des alternatives (comme JRuby ou Rubinius). Notez que RVM n'est pas seul dans ce domaine, voir par exemple rbenv .
Un gemset dans RVM est un ensemble de pierres précieuses spécifiques à un contexte donné, généralement un projet. Ceci est utile si vous développez par exemple différentes applications, chacune avec ses propres ensembles de gemmes, et que vous souhaitez les séparer.
système Ruby est, lors de l'utilisation de RVM, la version Ruby installée sur la machine (c'est-à-dire pas via RVM).
Si vous ne faites que commencer, les gemmes et le bundler vous intéressent. Vous pouvez laisser RVM et gemmes de côté pour le moment.
Vous demandez plus d'informations en une seule question que dans le champ d'application de Stack Overflow. Pour tout couvrir, il faudrait un livre.
Sur Ubuntu, il est facile d'installer et de supprimer des gemmes dans la version "système" de Ruby, alors habituez-vous à installer et supprimer des gemmes régulières via
sudo
. (Sur Mac OS, je donnerais des conseils différents car Apple regroupe Ruby pour leur propre usage et ce n'est pas une bonne idée de jouer avec.) Ensuite, lorsque vous avez une idée du fonctionnement de toute l'idée de gemme, et que vous savez que vous en voulez plusieurs Versions Ruby sur votre système, essayez " rbenv " ou " RVM " et installez une ou deux versions dans votre sandbox.Linux facilite l'ajout / la suppression de Ruby via une distribution, mais nous sommes limités aux versions que les responsables de la distribution ont emballées, donc j'installe généralement à partir des sources. Mais c'est une douleur lors de la gestion de plusieurs versions de Ruby pour les systèmes de développement, de test et de production, c'est pourquoi rbenv et RVM ont été inventés - ils gèrent les détails sales nous permettant de nous concentrer sur la programmation.
J'ai utilisé à la fois rbenv et RVM , et j'utilise rbenv depuis environ six mois, avec de bons résultats. C'est moins compliqué que RVM que j'aime. Dans les deux cas, ils facilitent l'installation de différentes versions, avec des ensembles séparés de Gems. Vous pouvez ouvrir différentes versions de Ruby dans différentes fenêtres de terminal si vous le souhaitez, ce qui facilite le test de compatibilité.
La première règle lors du débogage consiste à apporter des modifications une par une, ce qui est vrai pour apprendre à programmer ou à apprendre une nouvelle langue. Ne soyez pas distrait, restez simple.
la source