rails server bin / rails: 6: advertencia: error constante APP_PATH ya inicializado


79

He intentado varias cosas como desinstalar / reinstalar rieles y gemas, pero fue en vano.

Cuando entro en mi nuevo proyecto y ejecuto rails so bundle exec rails server, aparece este error:

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]

Dentro de mi contenedor / rieles veo este código:

#!/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'

¿Alguien sabe por qué sigo recibiendo ese error cuando ejecuto rails?

Busqué en Google y parece que hay un error con la gema de primavera, pero parece que no puedo hacer que funcione.


6
Tuve este problema y la causa es que la configuración en el database.ymladaptador era diferente Gemfile.
monteirobrena

En realidad, también recibo este error cuando estoy usando la gema de correo masivo. Si comento esta gema, entonces el error no viene.
Shailendr singh

Respuestas:


116

No pude encontrar el an_initilizer.rb en mi directorio e intenté desinstalar / instalar la gema de primavera pero no funcionó.

Sin embargo, me las arreglé para que finalmente funcionara.

Aparentemente hay algún conflicto con el resorte y los rieles 4+.

Necesitaba correr:

rake rails:update:bin 

Pero encontré otro error:

Library not loaded: libmysqlclient.18.dylib

Ejecuté el siguiente comando que encontré en otra publicación de stackoverflow:

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

Luego ejecutó el comando original:

 rake rails:update:bin 

Luego ejecute el comando del servidor:

 rails s

Y ahora mi WebBrick Server se está ejecutando.


Muchas gracias! ¡Esto realmente ayudó!
Vadim

1
Perfecto, también tuve que correr bin/rake db:migrate RAILS_ENV=development
Shadoath

Bien podría aceptar esta respuesta; parece funcionar para mucha gente.
Paul Richter

1
Parece estar relacionado con mysql, si incluye mysql2 en su archivo de gemas. este error se generará ya sea que use mysql2 como base de datos o no.
Chris.Zou

Tuve los mismos errores. Esto solucionó mi problema. ¡Gracias!
cyonder


13

Si está en El Capitan (OS X 10.11), Security Integrity Protection (SIP) evitará que se vincule a / usr / lib para arreglar mysql. En su lugar, vincúlelo a / usr / local / lib:

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

Recibo el error ln: /usr/local/lib/libmysqlclient.18.dylib: El archivo existe .. ¿Alguna idea?
Isaac Y

@IsaacY ¿qué pasa con la opción -f?
Geoom

Si instaló mysql usando homebrew u otro método, puede averiguar la ruta de las bibliotecas ejecutando y mysql_config --libsluego lo hacesudo ln -s mypath /usr/local/lib/libmysqlclient.18.dylib
gosukiwi

6

Esto es trabajo para mi.

gem uninstall mysql2

bundle install o gem install mysql2


3

Recibí el mismo error. Se quitó el resorte de Gemfile y se volvió a empaquetar. Sin embargo, no es realmente una solución.

Encontré el código que creó este error en config/initializers/an_initializer.rb

require "lib/a_file_i_need"

Lo cambié por

require "#{ Rails.root }/lib/a_file_i_need"

agregar #{Rails.root}a la ruta me ayudó a deshacerme del error.
Jignesh Gohel

2

Recibí este error al intentar actualizar rails 4 e imagemagick y rmagick. Así que solo corrí

gema desinstalar rmagick

Seleccione la opción Todas las versiones. Vuelva a intentarlo

EDITAR: Esto volvió a pasar conmigo hace un momento porque intenté usar una gema sin instalar la gema base requerida. En mi caso, la solución fue instalar 'omniauth-google' antes de intentar usar 'omniauth-google-oauth2', pero como no lo instalé, volví a tener el mismo error


2

Tengo el mismo error. Tenía ruby ​​2.1.3 y rails 4.1.6 ejecutándose en Mavericks y luego migré a Yosemite e instalé la versión 4.2.0 de rieles en ruby ​​2.1.5 y mis aplicaciones que hice en la versión anterior no funcionaron con la nueva. , así que hice algunos conjuntos de gemas con RVM e instalé la versión 2.1.3. Ahora, cuando quería ejecutar el servidor, obtuve este error:

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]

Y como tobu mencionó, corrí:

rake rails:update:bin

Tengo esto:

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

Luego ejecuté esto:

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

Y finalmente repetí el primer comando si el terminal me pidió esto:

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

Solo escribí 'Y' y presioné regresar.

Después de todo esto empecé a trabajar y a ir bien.

Gracias.


2

Recibí este error después de actualizar postgresql.

$ gem uninstall pg
$ gem install pg

resolvió este problema por mí.


2

Esto me pasó después de hacer un brew upgrade . Supongo que esto rompió algunas joyas con las extensiones nativas, aunque no había ningún mensaje de error que lo señalara.

Lo que terminé haciendo fue eliminar por completo mis gemas instaladas (en mi caso, desinstalé y reinstalé por completo la versión de ruby ​​usando rbenv).
Al ejecutar, se bundle installrecompilaron las extensiones nativas y todo se volvió a ejecutar.


1
En mi caso, fue después de actualizar mysql, por lo que la única joya que tuve que desinstalar fue mysql gemy luego ejecutar una instalación de paquete.
guzart

1

Recibí el mismo error, resultó estar relacionado con gem dotenv. Las instrucciones eran agregar lo siguiente a Gemfile:

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

Pero resultó que dotenv/rails-nowcausó el error. Si usa dotenvno requiererails-now


1

¿Está usando pg y mysql en diferentes ramas? En caso afirmativo, confirme el archivo de configuración db.


1

Publicaré lo que funcionó para mí.

Comentar

gem 'spring'

Añadir gem 'net-shh'

y correr bundle install

Y reinicia tu servidor


1

Recibí este error después de actualizar los rieles. La desactivación springme da una pista de que el problema fue con:

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

Cambiado a:

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

Resuelto el problema.


0

Tuve el mismo mensaje de error al intentar iniciar una aplicación dentro de un entorno Vagrant. Surgió de la nada después de cero cambios en el código de la aplicación (y siguió otro comportamiento extraño, como la eliminación de development.rb al intentar ejecutar la aplicación).

Al final, simplemente detuve la máquina virtual y la reinicié, todo estuvo bien, así que supongo que fue un problema con la sincronización de archivos / carpetas compartidas, ¿quizás? (se está utilizando la carpeta compartida predeterminada de Vagrant).



0

SI rake rails:update:bin da errores adicionales:

Recientemente había estado haciendo un poco de mantenimiento del servidor y posteriormente actualicé OpenSSL.

Cuando intenté ejecutar el rake rails:update:bincomando, se me presentó un error relacionado con openSSL.

Habiendo reconstruido mi versión de Ruby (`rvm reinstall ruby-xxx 'con RVM), ambos errores desaparecieron.

Siempre vale la pena intentarlo, supongo.


0

Mi problema era que estaba usando una versión desactualizada de ruby ​​1.9.3 con rieles 4.2. Actualicé a 2.1.2, eliminé el proyecto roto, ejecuté el nuevo blog de rails para recrear mi proyecto, navegué a mi aplicación recién creada y ejecuté el servidor de rails y funcionó.


0

Acabo de tener este problema y descubrí que estaba siendo causado por el hecho de que había eliminado una gema del archivo de gemas sin eliminar las otras requirereferencias. En mi caso, solo tuve que eliminarlo de config / application.rb.


0

Tuve este error recientemente, es causado por Spring, debido a su código sugerido en ejecutables:

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

Originalmente espera un LoadErrorresorte for en producción, pero este código también ignorará todos los demás errores de carga.

Por lo tanto, si tiene algún otro LoadErrorproceso de carga de rieles (por ejemplo, en rutas / init), el inicio del trabajador de primavera falla y luego va una rama que intenta cargar todo nuevamente como si no hubiera resorte.


0

Para mí, este problema se presentó como resultado de la actualización del paquete rvm-capistrano, entre otras cosas.
Agregar esto requiere: cosas falsas arregladas al final según esta publicación anterior

gem  'rvm-capistrano',  require: false

Aunque posiblemente podría ser un problema adicional, ya que la ejecución rake rails:update:binpuede haber ayudado a solucionar el problema inicial.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.