98 votes

bundler vs RVM vs gems vs RubyGems vs gemsets vs system ruby

Je suis nouveau sur le Rubis et d'essayer d'envelopper ma tête autour de concepts suivants: bundler vs RVM vs gemmes vs RubyGems vs gemsets vs système de frotter et je suis confus.

Quelqu'un peut-il décrire un "meilleures pratiques" de comment je dois gérer tout cela sur une nouvelle installation de la dernière version d'Ubuntu? Que dois-je installer et comment l'utiliser?

J'imagine que faire un sudo apt-get install ruby n'est pas recommandé, mais je n'en suis pas sûr. Je l'ai essayé sur mon système, en plus de toutes les autres Ruby choses". C'est juste ajouter à ma confusion. Je ne parle pas des Rails, mais juste régulière gems Ruby (par exemple, l'Errance, le Chef, scripts).

178voto

Martin Points 3491

Conformément à la réponse précédente, c'est beaucoup de choses à couvrir, donc envisager cette courte introduction.

les gemmes sont la façon dont les bibliothèques Ruby sont emballés. Ils sont à Ruby qu'pots sont à Java. À l'intérieur d'un bijou de fichier, vous trouverez des code Ruby (.rb fichiers), mais aussi des tests, et un fichier spécial en donnant des informations sur le bijou lui-même, telles que son nom, des dépendances et de la version (gemspec). Toute Ruby projet peut définir les gemmes il a besoin par l'intermédiaire d'un Gemfile qui a juste besoin de déclarer les dépendances. Rubygems est le nom du gestionnaire de paquets - l'outil utilisé pour installer les packages (alors que les pierres sont les paquets eux-mêmes). Rubygems est maintenant une partie de Ruby.

Bundler est ce qui rend la gestion de gemmes supportable. Basé sur votre Gemfile, un simple appel à la fagoteuse à l'aide de bundle install va télécharger et installer toutes les gemmes. En utilisant la norme joyau de commande, vous devez installer manuellement, à l'aide de gem 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 fait" pour la plupart des applications (vous ne trouverez pas beaucoup de gens ne l'utilisent pas, et pas de bonnes raisons de ne pas l'utiliser, en fait).

RVM est un outil vous permettant d'installer plusieurs versions de Ruby sur une machine, la commutation entre eux en cas de besoin. Ceci peut être utilisé pour installer à la fois un Ruby 1.8 et 1.9, ou même un "IRM" (Matz Ruby, le défaut de mise en œuvre) et les solutions de rechange (comme JRuby ou Rubinius). Notez que RVM n'est pas le seul dans ce domaine, voir par exemple rbenv.

Un sertie dans RVM est un ensemble de gemmes spécifiques à un contexte donné, généralement un projet. Ceci est utile si vous êtes par exemple le développement de différentes applications, chacune avec ses propres séries de pierres précieuses, et que vous voulez les garder séparés.

système de Ruby est, lors de l'utilisation de RVM, la version de Ruby installé sur la machine (c'est à dire, pas via RVM).

Si vous êtes juste de commencer, de pierres précieuses et bundler sont d'intérêt pour vous. Vous pouvez laisser RVM et gemsets de côté pour l'instant.

2voto

the Tin Man Points 69148

Vous vous demandez pour plus d'informations en une seule question que ce qui est de la portée de Débordement de la Pile. Pour couvrir tout cela prendrait un livre.

Sur Ubuntu il est facile à installer et à enlever les pierres précieuses pour le "système" de la version de Ruby, afin de s'habituer à l'installation et la suppression régulière des gemmes via sudo. (Sur Mac OS, je donnerais un avis différent parce que Apple grappes de Rubis pour leur propre usage, et ce n'est pas une bonne idée de jouer avec ça.) Ensuite, lorsque vous avez une idée de comment l'ensemble de la gemme idée fonctionne, et vous savez que vous voulez de multiples versions Rubis sur votre système, essayez "rbenv" ou "RVM" et installer une version ou deux dans votre bac à sable.

Linux rend faciles à ajouter/supprimer des Rubis par l'intermédiaire d'une distribution, mais nous sommes limités à la version de la distrib responsables ont emballé, donc j'ai l'habitude d'installer à partir des sources. Mais, c'est une douleur lors de la gestion de plusieurs versions de Ruby pour le développement, de test et de production des systèmes, c'est pourquoi rbenv et RVM ont été inventés-ils gérer la sale de détails nous permettant de nous concentrer sur la programmation.

J'ai utilisé à la fois rbenv et RVM, et ont été à l'aide de rbenv pour les six derniers mois, avec de bons résultats. C'est moins compliqué que RVM que j'aime. Dans les deux cas, ils le rendent facile d'avoir différentes versions installées, avec des ensembles distincts de pierres précieuses. Vous pouvez avoir différentes versions Rubis ouvrir dans un autre terminal windows si vous voulez, ce qui rend facile de tester la compatibilité.

La règle lorsque le débogage est de faire des changements, un à un, ce qui est vrai pour l'apprentissage de la programmation ou de l'apprentissage d'une nouvelle langue. Ne soyez pas distrait, il suffit de garder les choses simples.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X