[RUBY] Lors du déploiement d'EC2, l'installation de l'ensemble ne peut pas être effectuée et une erreur de variable locale non définie ou de méthode `git_source'for Gemfile apparaît.

Lors du déploiement d'EC2, j'ai cloné l'application sur le serveur, mais une erreur s'est produite lors de l'installation du bundle et j'en étais accro, je la publierai donc sous forme de mémorandum.

environnement

Ruby 2.5.1 Rails 5.2.4.3

Lors du déploiement sur AWS en référence à l'article ici, l'erreur suivante s'est produite lors de la tentative d'installation du bundle.

$ bundle install
-bash: bundle:Commande non trouvée

Apparemment, vous devez d'abord installer le bundler.

$ gem install bundler
Fetching: bundler-2.1.4.gem (100%)
Successfully installed bundler-2.1.4
Parsing documentation for bundler-2.1.4
Installing ri documentation for bundler-2.1.4
Done installing documentation for bundler after 4 seconds
1 gem installed

Il semble que le bundler a été installé! Essayez l'installation groupée.

$ bundle install
Traceback (most recent call last):
	2: from /home/hiroki/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
	1: from /home/hiroki/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/home/hiroki/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

J'obtiens une erreur différente. À la suite de l'enquête, cette erreur semble être que la version du bundler décrite dans Gemfile.lock est différente de la version du bundler réellement installée. Quand j'ai vérifié mon Gemfile.lock, il dit bundler (> = 1.3.0), donc je vais spécifier la version et l'installer!

$ gem install bundler -v 1.3.0
Fetching: bundler-1.3.0.gem (100%)
Successfully installed bundler-1.3.0
Parsing documentation for bundler-1.3.0
Installing ri documentation for bundler-1.3.0
Done installing documentation for bundler after 1 seconds
1 gem installed

Maintenant qu'il a été installé, effectuez à nouveau l'installation du bundle.

$ bundle install
Undefined local variable or method `git_source' for Gemfile
        from /var/www/rails/Ticket-Rec/Gemfile:2

J'ai encore une erreur. Quand j'ai enquêté sur cette erreur, on dit que la version du bundler est ancienne, donc elle peut être résolue en augmentant la version ... La source du clone a bien fonctionné, donc je suppose qu'il y a autre chose.

Solution

J'ai fait correspondre le bundler avec la version de BUNDLED WITH décrite dans Gemfile.lock et il a été installé avec succès. Vous pouvez trouver ce qui suit au bas de Gemfile.lock.

Gemfile.lock


BUNDLED WITH
   1.17.1

Installez à nouveau en spécifiant la version du bundler

$ gem install bundler:1.17.1
Fetching: bundler-1.17.1.gem (100%)
Successfully installed bundler-1.17.1
Parsing documentation for bundler-1.17.1
Installing ri documentation for bundler-1.17.1
Done installing documentation for bundler after 3 seconds
1 gem installed

Après cela, j'ai lancé l'installation du bundle et cela a réussi!

référence

[Expliqué soigneusement avec des images] Comment télécharger l'application Rails sur AWS (EC2) à partir de zéro [Partie 1 ~ Réseau, paramètre d'environnement RDS ~]

Recommended Posts

Lors du déploiement d'EC2, l'installation de l'ensemble ne peut pas être effectuée et une erreur de variable locale non définie ou de méthode `git_source'for Gemfile apparaît.
J'obtiens une erreur avec l'installation du bundle et puma ne peut pas être installé.
Variable locale ou erreur de méthode non définie avec option de collecte de modèle partiel