Rails Server Bin / Rails: 6: Warnung: Bereits initialisierter konstanter APP_PATH-Fehler

79

Ich habe eine Reihe von Dingen wie das Deinstallieren / Neuinstallieren von Schienen und Edelsteinen versucht, aber ohne Erfolg.

Wenn ich in mein neues Projekt gehe und Rails s oder Bundle Exec Rails Server ausführe, wird folgende Fehlermeldung angezeigt:

bin/rails:6: warning: already initialized constant APP_PATH
/Users/toabui/Sites/cms/bin/rails:6: warning: previous definition of APP_PATH was here Usage: rails COMMAND [ARGS]

In meinem Behälter / meinen Schienen sehe ich diesen Code:

#!/usr/bin/env ruby
begin
load File.expand_path("../spring", __FILE__)
rescue LoadError
end
APP_PATH = File.expand_path('../../config/application',  __FILE__)
require_relative '../config/boot'
require 'rails/commands'

Weiß jemand, warum ich diesen Fehler immer wieder bekomme, wenn ich Schienen s setze?

Ich habe gegoogelt und es scheint, dass es einen Fehler mit dem Frühlingsjuwel gibt, aber ich kann es nicht zum Laufen bringen.

tobu
quelle
6
Ich hatte dieses Problem und die Ursache ist die Konfiguration auf dem database.ymlAdapter war anders Gemfile.
Monteirobrena
Eigentlich bekomme ich diesen Fehler auch, wenn ich Bulkmail Gem verwende. Wenn ich diesen Gem kommentiere, kommt kein Fehler.
Shailendr singh
stackoverflow.com/a/35851557/3728916 hat mein Problem gelöst
ImranNaqvi

Antworten:

116

Ich konnte die Datei an_initilizer.rb nicht in meinem Verzeichnis finden und habe versucht, das Spring Gem zu deinstallieren / installieren, aber es hat nicht funktioniert.

Ich habe es jedoch geschafft, es endlich zum Laufen zu bringen.

Anscheinend gibt es einen Konflikt mit Feder und Schienen 4+.

Ich musste rennen:

rake rails:update:bin 

Aber ich bin auf einen anderen Fehler gestoßen:

Library not loaded: libmysqlclient.18.dylib

Ich habe den folgenden Befehl ausgeführt, den ich in einem anderen Stackoverflow-Beitrag gefunden habe:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 

Dann führte der ursprüngliche Befehl aus:

 rake rails:update:bin 

Führen Sie dann den Serverbefehl aus:

 rails s

Und jetzt läuft mein WebBrick Server.

tobu
quelle
Ich danke dir sehr! Das hat wirklich geholfen!
Vadim
1
Perfekt, ich musste auch rennen bin/rake db:migrate RAILS_ENV=development
Shadoath
Könnte diese Antwort auch akzeptieren; es scheint für viele Leute zu funktionieren.
Paul Richter
1
Es scheint mit MySQL zu tun zu haben, wenn Sie MySQL in Ihre Gemfile aufnehmen. Dieser Fehler wird ausgelöst, unabhängig davon, ob Sie mysql2 als Datenbank verwenden oder nicht.
Chris.Zou
Ich hatte die gleichen Fehler. Dies hat mein Problem behoben. Vielen Dank!
Cyonder
40

rake rails:update:bin zur Rettung.

cisolarix
quelle
13

Wenn Sie mit El Capitan (OS X 10.11) arbeiten, verhindert Security Integrity Protection (SIP) die Verknüpfung mit / usr / lib, um MySQL zu reparieren. Verknüpfen Sie es stattdessen mit / usr / local / lib:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
jcraigk
quelle
Ich erhalte die Fehlermeldung: /usr/local/lib/libmysqlclient.18.dylib: Datei existiert. Irgendwelche Ideen?
Isaac Y
@IsaacY was ist mit der Option -f?
Geoom
Wenn Sie MySQL mit Homebrew oder einer anderen Methode installiert haben, können Sie den Bibliothekspfad durch Ausführen ermitteln. mysql_config --libsDann tun Sie diessudo ln -s mypath /usr/local/lib/libmysqlclient.18.dylib
Gosukiwi
6

Das ist Arbeit für mich.

gem uninstall mysql2

bundle install oder gem install mysql2

Kun
quelle
3

Ich habe den gleichen Fehler bekommen. Feder aus Gemfile entfernt und neu gebündelt. Keine wirkliche Lösung.

Ich habe den Code gefunden, der diesen Fehler verursacht hat config/initializers/an_initializer.rb

require "lib/a_file_i_need"

Ich habe es geändert für

require "#{ Rails.root }/lib/a_file_i_need"
Gabriel
quelle
Das Anhängen #{Rails.root}an den Pfad hat mir geholfen, den Fehler zu beseitigen.
Jignesh Gohel
2

Ich habe diesen Fehler erhalten, indem ich versucht habe, Rails 4 und imagemagick und rmagick zu aktualisieren. Also bin ich einfach gelaufen

Edelstein deinstallieren rmagick

Wählen Sie die Option Alle Versionen. Dann versuchen Sie es erneut

BEARBEITEN: Dies geschah gerade jetzt wieder bei mir, weil ich versucht habe, einen Edelstein zu verwenden, ohne den erforderlichen Basisedelstein zu installieren. In meinem Fall bestand die Lösung darin, "omniauth-google" zu installieren, bevor versucht wurde, "omniauth-google-oauth2" zu verwenden. Da ich jedoch nicht installiert habe, wurde der gleiche Fehler erneut angezeigt

Betoharres
quelle
2

Ich habe den gleichen Fehler bekommen. Ich hatte Ruby 2.1.3 und Rails 4.1.6 auf Mavericks und dann migrierte ich zu Yosemite und installierte die 4.2.0 Rails-Version Ruby 2.1.5 und meine Apps, die ich in der vorherigen Version erstellt hatte, funktionierten nicht mit der neuen Also habe ich einige Gem-Sets mit RVM erstellt und die Version 2.1.3 installiert. Als ich den Server ausführen wollte, wurde folgende Fehlermeldung angezeigt:

bin/rails:6: warning: already initialized constant APP_PATH
/Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails:6: warning: previous definition of APP_PATH was here
Usage: rails COMMAND [ARGS]

Und wie oben erwähnt, lief ich:

rake rails:update:bin

Ich schaff das:

LoadError: dlopen(/Users/Lexynux/.rvm/gems/ruby-2.1.3@SAIIP2/extensions/x86_64-darwin-14/2.1.0-static/mysql2-0.3.16/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib

Dann lief ich das:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Und schließlich wiederholte ich den ersten Befehl, den das Terminal mich danach fragte:

Overwrite /Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails? (enter "h" for help) [Ynaqdh]

Ich habe gerade 'Y' eingegeben und die Eingabetaste gedrückt.

Nach all dem fing ich an zu arbeiten und ging gut.

Vielen Dank.

alexventuraio
quelle
2

Ich habe diesen Fehler nach dem Upgrade von postgresql erhalten.

$ gem uninstall pg
$ gem install pg

Dieses Problem wurde für mich behoben.

Ryan Doom
quelle
2

Das ist mir passiert, nachdem ich a brew upgrade. Ich vermute, dass dies einige Edelsteine ​​mit nativen Erweiterungen zerstört hat, obwohl es keine Fehlermeldung gab, die darauf hinweist.

Am Ende habe ich meine installierten Edelsteine ​​vollständig entfernt (in meinem Fall habe ich die Ruby-Version mit vollständig deinstalliert und neu installiert rbenv).
Durch Ausführen wurden bundle installdie nativen Erweiterungen neu kompiliert, und alles wurde erneut ausgeführt.

amiuhle
quelle
1
In meinem Fall war es nach dem Upgrade von MySQL, also musste ich nur gem deinstallieren mysql gemund dann eine Bundle-Installation ausführen.
Guzart
1

Ich habe den gleichen Fehler bekommen, mit dem ich verwandt war gem dotenv. Anweisungen lauteten, Gemfile Folgendes hinzuzufügen:

gem 'dotenv', :require => 'dotenv/rails-now'

Aber wie sich herausstellte, dotenv/rails-nowverursachte der Fehler. Wenn Sie dotenvnicht benötigenrails-now

Antontopf
quelle
1

Verwenden Sie pg und mysql in verschiedenen Zweigen? Wenn ja, bestätigen Sie bitte die Datenbankkonfigurationsdatei.

ysk
quelle
1

Ich werde posten, was für mich funktioniert hat.

Auskommentieren

gem 'spring'

Hinzufügen gem 'net-shh'

und Renn bundle install

Und starten Sie Ihren Server neu

Colper
quelle
1

Ich habe diesen Fehler nach dem Upgrade der Schienen erhalten. Deaktivieren springgibt mir einen Hinweis, dass das Problem mit:

gem 'google-api-client', require: 'google/api_client'

Gewechselt zu:

gem 'google-api-client', '0.9'

Das Problem wurde behoben.

Edu Lomeli
quelle
0

Beim Versuch, eine Anwendung in einer Vagrant-Umgebung zu starten, wurde dieselbe Fehlermeldung ausgegeben. Es tauchte aus dem Nichts auf, nachdem der Anwendungscode nicht geändert wurde (und andere seltsame Verhaltensweisen folgten, z. B. die Datei development.rb, die beim Versuch, die App auszuführen, gelöscht wurde).

Am Ende habe ich die VM einfach angehalten und neu gestartet. Dann war alles in Ordnung. Ich gehe also davon aus, dass es sich möglicherweise um ein Problem mit der Dateisynchronisierung / freigegebenen Ordnern handelt. (Standardmäßig wird der freigegebene Vagrant-Ordner verwendet).

Greg Annandale
quelle
0

Führen Sie diese in der Konsole aus:

rake tmp:clear
rake secret
Schicksal
quelle
0

IF rake rails:update:bingibt zusätzliche Fehler:

Ich hatte kürzlich einige Serverwartungen durchgeführt und anschließend OpenSSL aktualisiert.

Als ich versuchte, den rake rails:update:binBefehl auszuführen, wurde ein Fehler in Bezug auf openSSL angezeigt.

Nachdem ich meine Version von Ruby (`rvm reinstall ruby-xxx 'mit RVM) neu erstellt hatte, verschwanden beide Fehler.

Das ist immer einen Versuch wert, denke ich.

DazBaldwin
quelle
0

Mein Problem war, dass ich eine veraltete Version von Ruby 1.9.3 mit Rails 4.2 verwendete. Ich habe ein Upgrade auf 2.1.2 durchgeführt, das defekte Projekt entfernt, ein neues Rails-Blog ausgeführt, um mein Projekt neu zu erstellen, in meine neu erstellte App navigiert und den Rails-Server ausgeführt, und es hat funktioniert.

Donovan Thomson
quelle
0

Ich hatte gerade dieses Problem und stellte fest, dass es durch die Tatsache verursacht wurde, dass ich einen Edelstein aus der Edelsteindatei entfernt hatte, ohne die anderen requireReferenzen zu löschen . In meinem Fall musste ich es nur aus config / application.rb entfernen.

Kelch gehalten
quelle
0

Hatte dieser Fehler kürzlich, wird er durch spring verursacht, aufgrund des vorgeschlagenen Codes in ausführbaren Dateien:

begin
  load File.expand_path('../spring', __FILE__)
rescue LoadError
end

Es erwartet ursprünglich eine LoadErrorfor-Feder selbst in der Produktion, aber durch diesen Code werden auch alle anderen Ladefehler ignoriert.

Wenn Sie also einen anderen LoadErrorLadevorgang in Schienen haben (z. B. in Routen / Init), schlägt der Start des Federarbeiters fehl, und dann geht ein Zweig, der versucht, alles erneut zu laden, als gäbe es keine Feder.

Vasfed
quelle
0

Für mich war dieses Problem unter anderem das Ergebnis eines Bundle-Upgrades von rvm-capistrano.
Um dies hinzuzufügen, müssen am Ende falsche Fehler behoben werden, wie in diesem vorherigen Beitrag beschrieben

gem  'rvm-capistrano',  require: false

Dies könnte möglicherweise ein zusätzliches Problem sein, da das Ausführen rake rails:update:binmöglicherweise dazu beigetragen hat, das ursprüngliche Problem zu beheben.

Rich_LogicBox
quelle