[RUBY] Bei der Bereitstellung von EC2 kann die Bundle-Installation nicht durchgeführt werden, und es wird ein Fehler der undefinierten lokalen Variablen oder Methode "git_source" für Gemfile angezeigt.

Bei der Bereitstellung von EC2 habe ich die App auf den Server geklont, aber bei der Bundle-Installation ist ein Fehler aufgetreten, und ich war süchtig danach, sodass ich sie als Memorandum veröffentlichen werde.

Umgebung

Ruby 2.5.1 Rails 5.2.4.3

Bei der Bereitstellung in AWS unter Bezugnahme auf den Artikel hier ist beim Versuch der Bundle-Installation der folgende Fehler aufgetreten.

$ bundle install
-bash: bundle:Befehl nicht gefunden

Anscheinend müssen Sie zuerst den Bundler installieren.

$ 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

Es scheint, dass Bundler installiert wurde! Versuchen Sie die Bundle-Installation.

$ 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)

Ich erhalte einen anderen Fehler. Als Ergebnis der Untersuchung scheint dieser Fehler darin zu liegen, dass sich die in Gemfile.lock beschriebene Version des Bundlers von der tatsächlich installierten Version des Bundlers unterscheidet. Wenn ich mein Gemfile.lock überprüft habe, steht dort Bundler (> = 1.3.0), also werde ich die Version angeben und installieren!

$ 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

Führen Sie nach der Installation die Bundle-Installation erneut durch.

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

Ich habe wieder einen Fehler bekommen. Als ich diesen Fehler untersucht habe, wurde gesagt, dass die Version des Bundlers alt ist, daher kann sie durch Erhöhen der Version behoben werden ... Die Klonquelle hat gut funktioniert, daher vermute ich, dass es noch etwas anderes gibt.

Lösung

Ich habe den Bundler mit der in Gemfile.lock beschriebenen Version von BUNDLED WITH abgeglichen und sie wurde erfolgreich installiert. Sie finden Folgendes unten in Gemfile.lock.

Gemfile.lock


BUNDLED WITH
   1.17.1

Installieren Sie erneut, indem Sie die Bundler-Version angeben

$ 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

Danach habe ich die Bundle-Installation ausgeführt und es war erfolgreich!

Referenz

[Sorgfältig mit Bildern erklärt] So laden Sie die Rails-Anwendung von Grund auf auf AWS (EC2) hoch [Teil 1 ~ Netzwerk, RDS-Umgebungseinstellung ~]

Recommended Posts

Bei der Bereitstellung von EC2 kann die Bundle-Installation nicht durchgeführt werden, und es wird ein Fehler der undefinierten lokalen Variablen oder Methode "git_source" für Gemfile angezeigt.
Ich erhalte eine Fehlermeldung bei der Bundle-Installation und Puma kann nicht installiert werden.
Undefinierter lokaler Variablen- oder Methodenfehler mit teilweiser Vorlagenerfassungsoption