rails serveur bin / rails: avertissement: erreur APP_PATH constante déjà initialisée

J’ai essayé un certain nombre de choses comme la désinstallation / réinstallation de rails et de gemmes, mais en vain.

Quand je vais dans mon nouveau projet et que je lance le serveur rails rails ou exec, je reçois cette erreur:

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] 

Dans mon bac / rails, je vois ce 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' 

Est-ce que quelqu’un sait pourquoi je continue à recevoir cette erreur quand je lance des rails?

J’ai googlé et il semble y avoir une erreur avec le joyau du spring, mais je ne peux pas sembler le faire fonctionner.

Je n’ai pas pu trouver le fichier an_initilizer.rb dans mon répertoire et j’ai essayé de désinstaller / installer la pierre précieuse du spring, mais cela n’a pas fonctionné.

Cependant, j’ai réussi à le faire fonctionner.

Apparemment, il y a un conflit avec le spring et les rails 4+.

J’avais besoin de courir:

 rake rails:update:bin 

Mais j’ai rencontré une autre erreur:

 Library not loaded: libmysqlclient.18.dylib 

J’ai exécuté la commande suivante que j’ai trouvée sur un autre post stackoverflow:

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

Puis exécuté la commande d’origine:

  rake rails:update:bin 

Ensuite, exécutez la commande du serveur:

  rails s 

Et maintenant, mon serveur WebBrick fonctionne.

rake rails:update:bin à la rescousse.

Si vous utilisez El Capitan (OS X 10.11), SIP (Security Integrity Protection) empêchera la liaison avec / usr / lib pour réparer mysql. Liez-le à la place dans / usr / local / lib:

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

C’est du travail pour moi.

gem uninstall mysql2

bundle install ou gem install mysql2

Je recevais la même erreur. Suppression du ressort de Gemfile et regroupement. Pas vraiment une solution cependant.

J’ai trouvé le code qui a créé cette erreur dans config/initializers/an_initializer.rb

 require "lib/a_file_i_need" 

Je l’ai changé pour

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

J’ai eu cette erreur en essayant de mettre à jour les rails 4 et imagemagick et rmagick. Donc je viens de courir

gem uninstall désinstaller rmagick

Sélectionnez l’option Toutes les versions. Puis réessayez

EDIT: Cela s’est encore passé avec moi juste parce que j’ai essayé d’utiliser un bijou sans installer le bijou de base requirejs. Dans mon cas, la solution consistait à installer ‘omniauth-google’ avant d’essayer d’utiliser ‘omniauth-google-oauth2’, mais comme je ne l’ai pas installé, j’ai de nouveau rencontré la même erreur

J’ai reçu cette erreur après la mise à niveau de postgresql.

 $ gem uninstall pg $ gem install pg 

résolu ce problème pour moi.

Cela m’est arrivé après avoir effectué une brew upgrade . Je pense que cela a cassé des gemmes avec des extensions natives, même s’il n’y avait pas de message d’erreur indiquant cela.

J’ai fini par supprimer complètement mes gems installés (dans mon cas, j’ai complètement désinstallé et réinstallé la version ruby ​​en utilisant rbenv ).
L’exécution de l’ bundle install recompilé les extensions natives et tout fonctionnait à nouveau.

J’ai eu la même erreur. Ruby 2.1.3 et rails 4.1.6 fonctionnaient sur Mavericks, puis j’ai migré vers Yosemite et installé la version 4.2.0 rails et ruby ​​2.1.5 et mes applications dans la version précédente ne fonctionnaient pas avec la nouvelle , j’ai donc fait quelques sets avec RVM et installé la version 2.1.3. Maintenant, quand j’ai voulu lancer le serveur, j’ai eu ces erreurs:

 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] 

Et comme mentionné précédemment, j’ai couru:

 rake rails:update:bin 

J’ai eu ceci:

 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 

Alors j’ai couru ceci:

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

Et finalement j’ai répété la première commande que le terminal me demandait:

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

Je viens de taper ‘Y’ et de toucher le retour.

Après tout cela, j’ai commencé à travailler et à aller bien.

Merci.

J’ai eu la même erreur, il est arrivé d’être lié à gem dotenv . Les instructions étaient d’append ce qui suit à Gemfile:

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

Mais comme il s’est avéré, dotenv/rails-now causé l’erreur. Si vous utilisez dotenv ne nécessite pas de rails-now

Utilisez-vous pg et mysql dans différentes twigs? Si oui, veuillez confirmer le fichier de configuration de firebase database.

Je posterai ce qui a fonctionné pour moi.

Commenter

 gem 'spring' 

Ajouter gem 'net-shh'

et exécuter l’ bundle install

Et redémarrez votre serveur

J’ai reçu cette erreur après la mise à niveau des rails. La désactivation de spring me donne une idée du problème avec:

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

Changé en:

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

Résolution du problème

J’ai eu le même message d’erreur lors de la tentative de démarrage d’une application dans un environnement Vagrant. Il a surgi de nulle part après zéro modification du code de l’application (et d’autres comportements étranges ont suivi, tels que development.rb en cours de suppression lors de la tentative d’exécution de l’application).

En fin de compte, j’ai simplement arrêté la VM et l’ai redémarrée, tout allait bien alors je suppose que c’était un problème avec la synchronisation de fichiers / dossiers partagés peut-être? (dossier partagé Vagrant par défaut utilisé).

Exécutez ces dans la console:

 rake tmp:clear rake secret 

IF rake rails:update:bin donne des erreurs supplémentaires:

J’avais récemment effectué une maintenance de serveur et mis à jour OpenSSL par la suite.

Lorsque j’ai essayé d’exécuter les commandes rake rails:update:bin , une erreur relative à openSSL m’a été présentée.

Ayant reconstruit ma version de Ruby (`rvm réinstalle ruby-xxx ‘avec RVM), les deux erreurs ont disparu.

Cela vaut toujours la peine d’essayer, je suppose.

Mon problème était que j’utilisais une version obsolète de Ruby 1.9.3 avec des rails 4.2. J’ai effectué une mise à niveau vers la version 2.1.2, supprimé le projet en panne, lancé un nouveau blog sur rails pour recréer mon projet, navigué dans mon application nouvellement créée et exécuté le serveur rails et cela a fonctionné.

Je viens d’avoir ce problème et j’ai constaté qu’il était dû au fait que j’avais supprimé une gemfile du gemfile sans supprimer les autres références requirejses. Dans mon cas, je devais juste le retirer de config / application.rb.

A eu cette erreur récemment, il est causé par le spring, en raison de son code suggéré dans les exécutables:

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

A l’origine, il attend un LoadError pour Spring lui-même en production, mais par ce code, toutes les autres erreurs de chargement seront également ignorées.

Ainsi, si vous avez un autre processus de chargement LoadError in rails (par exemple dans routes / init), le démarrage du serveur de travail échoue, puis la twig essaie de tout recharger, comme il n’y avait pas de ressort.

Pour moi, ce problème est le résultat de la mise à niveau groupée de rvm-capistrano, entre autres.
L’ajout de ceci nécessite: des éléments fixes faux à la fin selon ce post précédent

 gem 'rvm-capistrano', require: false 

Bien que cela puisse éventuellement être un problème supplémentaire – comme l’exécution de rake rails:update:bin peut avoir aidé à résoudre le problème initial.