51 votes

Quelle est l'utilité de Gemfile dans rails ?

Quelle est l'utilité de Gemfile dans les rails ?

Mode d'emploi Gemfile ?

93voto

Nick Ginanto Points 4779

Au cours de votre développement dans Rails, il y aura des moments où vous voudrez fournir une fonctionnalité dont vous avez besoin, mais soit vous ne savez pas comment faire, soit vous ne voulez pas la mettre en œuvre vous-même, car beaucoup de travail a été consacré à son développement par des développeurs talentueux.

Ces développements dont vous pourriez avoir besoin (authentification de l'utilisateur, système de messages, gestionnaires de ressources, géolocalisation, système de pagination, liens vers des services extérieurs tels que Amazon AWS, et enfin et surtout Rails lui-même) sont appelés Ruby Gems. Il s'agit de progiciels Ruby, qui ne sont pas nécessairement liés à Rails, mais puisque Rails est basé sur Ruby, 98% des gemmes peuvent être mises à la disposition du code de votre application Web Rails.

De nombreuses pierres précieuses peuvent être trouvées dans github mais il est plus amusant de chercher des pierres précieuses via ruby-gems ou ruby-toolbox

Votre gemfile est une liste de toutes les gemmes que vous voulez inclure dans le projet. Il est utilisé avec bundler (également une gemme) pour installer, mettre à jour, supprimer et gérer vos gemmes utilisées.

El gemfile a un autre but - vous pouvez regrouper les gemmes dans :development , :test , :assets , :production etc. et Rails saura quand inclure les gemmes. Par exemple :

group :development, :test do
    gem "rspec-rails"
    gem "factory_girl_rails"
    gem "guard-rspec"
end

Notez que sous Rails 4, l'option assets a été déprécié

Ces gemmes appartiennent à l'environnement de développement et à l'environnement de test puisqu'elles servent à tester l'application. Vous n'avez pas besoin qu'elles soient disponibles dans l'environnement de production (vous pourriez le faire, mais cela ferait gonfler la mémoire inutilement).

Donc - Pour utiliser le gemfile il suffit d'écrire la gemme que vous souhaitez installer, par exemple

gem 'devise'

assurez-vous d'installer bundler au préalable (dans votre console/cmd/ssh) avec

$ gem install bundler

et ensuite écrire dans la console

bundle install

vous remarquerez qu'un autre gemfile apparaît ! Gemfile.lock Ce fichier, comme vous le verrez si vous l'ouvrez avec un lecteur de texte, liste toutes vos gemmes avec leur version et leurs dépendances. Cela vous sera utile lorsque vous aurez besoin de savoir quelles versions des gemmes vous avez installées.

Pour en savoir plus sur le Gemfile - lire sur la page du bundler

pour des informations concernant le choix d'une pierre précieuse, vous pourriez commencer par ce

Bonne chance et amusez-vous bien !


Ok, alors c'est quoi ce Gemfile.lock qui a été créé ?

Gemfile.lock, comme son nom l'indique, est un verrouillage sur toutes les versions de toutes les gemmes qui ont été installées. Donc, si Gemfile est ce qui doit être installé, le fichier de verrouillage est ce qui a été installé et quelle version est réellement nécessaire pour que l'application fonctionne.

Si vous ne disposez pas des gemmes dans cette version spécifique (comme spécifié dans Gemfile.lock), rails se plaindra et vous devrez soit installer les gemmes manquantes (par l'intermédiaire de bundle install ) ou corrigez les conflits manuellement (je pense que bundler vous donnera des indications à ce sujet).

Quelques éléments à connaître Gemfile.lock

  • si vous le supprimez accidentellement, il sera régénéré lorsque vous exécuterez bundle install . Si vous supprimez accidentellement Gemfile vous n'avez pas de chance. Vous devriez utiliser git :)
  • Heroku ne se soucie pas de Gemfile.lock puisqu'il réinstallera toutes les gemmes. Donc pour Heroku, vous doit définissez la version de gem que vous souhaitez, sinon Heroku installera toujours la dernière version de gem, ce qui peut causer des problèmes.
  • Conservez le fichier Gemfile.lock dans votre projet afin de toujours savoir quelle version des gems permet à votre application de fonctionner correctement.

0 votes

Je suis novice en Rails et votre explication est vraiment utile !

0 votes

Excellent merci @NickGinanto - sauriez-vous également à quoi sert le Gemfile.lock ?

11voto

willglynn Points 5738

Gemfile sont des configurations pour Regroupement qui est utilisé pour gérer les dépendances Ruby de votre application. Ce site web comprend une grande quantité de documentation, dont la page Page de manuel Gemfile .

4voto

BKSpurgeon Points 11129

Explication par analogie

Vous voulez construire une voiture. En partant de zéro. Vous devez construire : un châssis, un moteur, un corroborateur, un radiateur, etc.

Les gemmes vous permettent d'utiliser des pièces de voiture que d'autres personnes ont déjà fabriquées.

Tous ceux qui ont construit une voiture ont eu besoin des mêmes choses.

Vous n'avez pas besoin de réinventer la roue. Pourquoi fabriquer votre propre moteur, etc. quand vous pouvez l'obtenir directement de l'étagère ? Et si vous pouviez obtenir l'un des meilleurs moteurs du marché, créé par les ingénieurs les plus talentueux du monde, sans lever le petit doigt ? Vous allez passer un an à essayer de fabriquer le vôtre ?

En gros, plutôt que de tout fabriquer vous-même, vous dressez une liste de toutes les pièces dont vous avez besoin :

  • Moteur Rolls Royce
  • Ceintures de sécurité AutoLive
  • Pneus Michellin.
  • Phares de nuit PIAA
  • etc. etc.

Ça mon ami, c'est en gros ton fichier de pierres précieuses !

1voto

Rahul garg Points 3419

Votre système peut avoir beaucoup de gemmes ... donc peut avoir plusieurs versions d'un même gemme. gem .

A Gemfile spécifie la liste des gems avec leur versions qui sera utilisé/chargé/(installé s'il n'est pas présent) à chaque fois que vous exécutez votre application rails. ou tout ce qui a pour nom bundle exec . .

0voto

slal Points 1058

Tout d'abord, qu'est-ce qu'une pierre précieuse ?

Selon Wikipédia :

RubyGems est un gestionnaire de paquets pour le langage de programmation Ruby. fournit un format standard pour la distribution de programmes et de bibliothèques

Gemfile

Un Gemfile est un fichier que nous créons et qui est utilisé pour décrire les gemmes. pour les programmes Ruby

Maintenant, en mots très très simples :

Gem peut être considéré comme une bibliothèque que vous pouvez utiliser dans votre code. Exemple : fausse pierre précieuse

Votre code peut utiliser la fonctionnalité de faker pour produire de fausses données.

Maintenant vous pouvez lister toutes les gemmes que votre projet requiert dans le gemfile. Lorsque vous faites une installation groupée, toutes les gemmes de votre fichier gemfile sont installées pour vous.

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