Rails - ne peut pas exécuter l'application: Impossible de charger le EventMachine C extension;
Quand je lance une appli sur Lion OS X, j'obtiens cette erreur:
Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
/Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in `require': no such file to load -- rubyeventmachine (LoadError)
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in `<top (required)>'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
from /Users/adam/rubydev/future_computers/config/application.rb:7:in `<top (required)>'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:53:in `require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:53:in `block in <top (required)>'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'adam
Je ne sais vraiment pas comment résoudre ce problème, j'ai ajouté les eventmachine
gem dans le Gemfile, mais il n'a pas aidé...
Pourriez-vous m'aider, s'il vous plaît, comment faire pour le réparer?
Merci
Avez-vous eu des erreurs avec
bundle install
?bundle install
fonctionne sans erreurs.OriginalL'auteur user984621 | 2013-02-12
Vous devez vous connecter pour publier un commentaire.
Dans mon cas, ce fixe:
Je lisais ce https://github.com/eventmachine/eventmachine/issues/333. Il y avait des problèmes avec eventmachine, afin de s'assurer que j'ai la dernière version semble une bonne idée.
OriginalL'auteur prettycoder
Pour moi, la compilation eventmachine à partir de sources avec modifié config aidé. Essayez:
Désinstaller eventmachine si il est déjà installé:
Chercher eventmachine sources:
Modifier
ext/extconf.rb
etext/fastfilereader/extconf.rb
fichiers en ajoutantCONFIG['CXX'] = "g++"
juste aprèsrequire 'mkmf'
Compiler et installer le gem:
Maintenant eventmachine devrait fonctionner très bien 🙂
il a travaillé pour des mailcatcher pour commencer, mais en quelque sorte cassé mon bundle install.. en pensant que les atm
Extrait v1.0.3 et effectué les modifications. Maintenant, je me fais un
Don't know how to build task 'native:eventmachine:x86-mingw32' (see --tasks)
Elie vous êtes sous Windows? Les modifications a fonctionné pour moi sur macOS. Cela peut vous aider: github.com/eventmachine/eventmachine/issues/531
OriginalL'auteur suda
Le plus simple correctif comme le message l'indique, c'est juste pour
require 'em/pure_ruby'
. Je pense que vous pouvez mettre ceci dans le config/inlitializers dossier, vous pouvez appeler le fichier event_machine.rbMais il n'aura pas les mêmes performances que la C extension.
créer à l'intérieur de config/initializers dossier
Non, ne fonctionne pas pour moi.
OriginalL'auteur Ismael Abreu
Fournir une autre solution que je viens de perdre le suivi des heures de cette question. Je faisais
bundle install --deployment
et puis commettre le résultat d'une branche distincte dans git, j'ai donc pu déployer cette branche directement à des serveurs sans avoir à fairebundle install
de nouveau.Le problème est que eventmachine a un
.gitignore
fichier qui indique à git d'ignorer tous les*.so
fichiers. De ce fait quand j'était en train de commettre, l'.so
fichiers n'a pas commis, et ne s'affichent pas non chaînée dans ungit status
. Aussi depuis le gemspec était présent, bundle pensé que le paquet a été complètement installé.Ma solution était d'ajouter une commande dans le cadre du processus de construction d'aller frapper à toutes les
.gitignore
fichiers dans les pierres précieuses avant de s'engager.Oui, nous avons fini par abandonner cette méthode et sont bâtiment des archives maintenant.
OriginalL'auteur Patrick
Vous pouvez trouver plusieurs erreurs lors de l'installation de pierres précieuses ou de tenter de trouver une solution pour votre application ruby installation échoue en raison de ruby-devel n'a pas été installé.
Je viens d'installer sur mon Kali linux avec
sudo apt-get install ruby-dev
et tout résolu. J'ai essayé d'installer bettercap.
Cette réponse m'a aidé: https://stackoverflow.com/a/4502672/6503117
OriginalL'auteur jaykbvt