1
votes

Obtention de l'erreur "Vous avez essayé d'appeler Spring alors qu'il est déjà chargé" lorsque j'essaye de démarrer le serveur

J'ai commencé à recevoir l'erreur suivante lorsque j'essaie d'exécuter des «rails» sur ma machine locale:

You've tried to invoke Spring when it's already loaded (i.e. the Spring constant is defined).

This is probably because you generated binstubs with Spring 1.0, and you now have a Spring version > 1.0 on your system. To solve this, upgrade your bundle to the latest Spring version and then run `bundle exec spring binstub --all` to regenerate your binstubs. This is a one-time step necessary to upgrade from 1.0 to 1.1.

Here's the backtrace:

/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:319:in `block in load'
/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:291:in `load_dependency'
/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/activesupport-6.0.2.2/lib/active_support/dependencies.rb:319:in `load'
/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/spring-2.1.0/lib/spring/binstub.rb:11:in `<main>'
/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/Users/emmetgibney/Dropbox/Programming/tableread/tableread/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

J'ai la version 2.1.0 de Spring installée sur ma machine. J'ai exécuté la commande que le message d'erreur demande, bundle exec spring binstub --all et l'erreur persiste. J'ai lu une autre réponse SO pour essayer d'exécuter le bundle exec spring binstub --remove --all qui a supprimé puis binstubs, j'ai ensuite exécuté à nouveau la première commande pour les régénérer. Toujours la même erreur.

Le problème persiste même sur d'autres applications de rails. Par exemple, lorsque je passe à une autre application sur ma machine et que je lance des rails s j'obtiens la même erreur, même si je n'ai peut-être pas travaillé sur cette application pendant des semaines.

Le problème a commencé après l'installation de Docsplit et de ses dépendances requises, ainsi que de google-cloud-text_to_speech. Il convient probablement de noter que mon système ne me permettra pas également de désinstaller le gem google-cloud-text_to_speech.

J'utilise MacOS 10.13.6


2 commentaires

J'ai maintenant essayé de supprimer complètement rbenv et toutes mes gemmes, puis de réinstaller rbenv. J'espérais qu'en nettoyant tout, je résoudrais le problème. Malheureusement, cela n'a pas aidé.


J'ai réussi à résoudre le problème. Lorsque j'ai supprimé spring et essayé de démarrer mon serveur rails, j'ai reçu le message suivant: /Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0‌ /gems/bootsnap-1.4.6‌ / lib / bootsnap / load_p‌ ath_cache / core_ext / k‌ ernel_require.rb: 23: ‌ dans `require ': dlopen (/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gem‌ s / 2.7.0 / gems / pg-1.2.‌ 3 / lib / pg_ext.bundle, 9): Bibliothèque non chargée: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError) J'ai pensé c'était peut-être un problème avec postgres. J'ai désinstallé et réinstallé postgres à l'aide de brew, et cela semble l'avoir résolu


3 Réponses :


1
votes

J'ai réussi à résoudre le problème. Lorsque j'ai retiré la gemme de printemps et essayé de démarrer mon serveur de rails, j'ai reçu le message suivant:

/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': dlopen(/Users/emmetgibney/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/pg-1.2.3/lib/pg_ext.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError)

Cela m'a fait penser que cela pourrait être un problème avec postgres, donc j'ai désinstallé et réinstallé postgres en utilisant brew, et cela semble l'avoir résolu. Je peux maintenant démarrer mon serveur rails pour cette application, ainsi que toutes mes autres applications.

Je n'avais pas fait d'implication de postgres depuis son installation WAY à l'époque, donc je n'ai aucune idée de comment postgres a été gâché en premier lieu, mais cela fonctionne quand même maintenant.


1 commentaires

Merci, dans mon cas, l'erreur n'était pas non plus liée au ressort et le retrait du ressort m'a montré l'erreur réelle (qui était liée à un autre bijou)



0
votes

J'ai rencontré le même problème après la mise à niveau d'Ubuntu 18.04 vers 20.04. La solution dans Ruby Forum NE FONCTIONNE PAS pour moi avec Ruby 2.7.0 et Rails 6.0.3.2

Cependant, cela Comment faire fonctionner FFI sur l'image Ruby 2.7.2 a fonctionné pour moi.

Fondamentalement, cela fonctionne s'il s'agissait d'une mise à niveau

sudo ln -s /usr/lib/x86_64-linux-gnu/libffi.so.7 /usr/lib/x86_64-linux-gnu/libffi.so.6


0 commentaires

0
votes

Dans mon cas, c'était à cause de postgres gem dans mon Gemfile. J'utilisais sqlite3 sur mon serveur de développement et postgres en production (Heroku). Donc pg gem était sans wrapper de groupe.

Je l'ai résolu en enveloppant les postgres avec un wrapper de groupe de production comme ceci:

group :production do
  gem 'pg'
end


0 commentaires