[RUBY] [Rails] Quelle est la différence entre l'installation et la mise à jour du bundle?

Différence entre l'installation de bundle et la mise à jour de bundle

Quelles sont les connaissances préalables, Gemfile, Gemfile.lock et Bundler nécessaires pour comprendre ces deux éléments? Je vais écrire sur.

Qu'est-ce que Bundler?

Un bijou qui gère un bijou. Grâce à Bundler, vous pouvez utiliser bundle install </ code> et bundle update </ code>.

Qu'est-ce qu'un Gemfile?

Une image comme un "dessin de conception" pour installer un bijou.

Qu'est-ce que Gemfile.lock?

Une image comme le "diagramme de résultat" après avoir installé le gem. Puisque les gemmes sont souvent liées les unes aux autres, les gemmes nécessaires sont générées en plus des gemmes décrites dans le gemfile. Dans ce cas, Bundler installera automatiquement le gem requis et l'écrira dans Gemfile.lock.

Pourquoi avez-vous besoin de Gemfile.lock?

Gemfile est un dessin de conception. Seul le bijou à installer est décrit. De plus, les gemmes liées aux gemmes ne sont pas décrites et les versions des gemmes installées dans l'environnement de production et l'environnement de développement ne peuvent pas être unifiées. Cependant, en utilisant Gemfile.lock, vous pouvez utiliser la même version de gem et de gem dans n'importe quel environnement.

À propos de l'installation et de la mise à jour du bundle

Maintenant que j'ai acquis des connaissances préalables, je vais passer au sujet principal.

bundle install Installez gem basé sur Gemfile.lock. À ce stade, s'il existe une gemme qui n'est pas décrite dans Gemfile.lock et qui est décrite dans Gemfile, installez cette gemme et la gemme associée à cette gemme, puis installez Gemfile.lock.

bundle update Installez gem basé sur Gemfile. Mettez ensuite à jour Gemfile.lock.

À propos de la bonne utilisation des deux commandes

bundle install </ code> → Utilisé lors de l'écriture d'un nouveau gem dans un nouvel environnement ou Gemfile. bundle update </ code> → Utilisé lors de la mise à jour de la version du gem. (Parce que l'installation du bundle ne met pas à jour le gem dans Gemfile.lock)

Résumé

  • bundle install </ code> fait référence à Gemfile.lock pour installer le gem. Aussi, Si Gemfile.lock n'existe pas, créez Gemfile.lock après avoir installé le gem basé sur Gemfile.
  • bundle update </ code> ignore Gemfile.lock, installe gem basé sur Gemfile, puis met à jour Gemfile.lock. -Comme Gemfile.lock est ignoré, contrairement à bundle install </ code>, les dépendances (versions, etc.) entre les gemmes sont mises à jour.

Je vois. Fondamentalement, il semble que l'installation groupée soit souvent utilisée pendant le développement réel. À utiliser avec prudence lors de l'utilisation de la mise à jour groupée.

Recommended Posts