Je ne parviens pas à installer eventmachine
Ok, je sais que cela a souvent été demandé, mais aucune solution que j'ai trouvée ne m'a aidé jusqu'ici. J'ai donc posté ici en dernier recours.
J'utilisewindows 8 x64
en utilisant Ruby 2.0.0p195 (x64)
(installé via Ruby Installer pour Windows avec le kit de développement approprié)
Donc, le Error est
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension
C:/Ruby200-x64/bin/Ruby.exe extconf.rb
checking for main() in -lssl... no
checking for rb_trap_immediate in Ruby.h,rubysig.h... no
checking for rb_thread_blocking_region()... yes
checking for inotify_init() in sys/inotify.h... no
checking for __NR_inotify_init in sys/syscall.h... no
checking for writev() in sys/uio.h... no
checking for rb_wait_for_single_fd()... yes
checking for rb_enable_interrupt()... no
checking for rb_time_new()... yes
checking for windows.h... yes
checking for winsock.h... yes
checking for main() in -lkernel32... yes
checking for main() in -lrpcrt4... yes
checking for main() in -lgdi32... yes
creating Makefile
make
generating rubyeventmachine-x64-mingw32.def
compiling binder.cpp
In file included from c:\users\btdy\downloads\devkit\mingw\bin\../lib/gcc/x86_64
-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include/process.h:12:0,
from c:/Ruby200-x64/include/Ruby-2.0.0/Ruby/win32.h:60,
from c:/Ruby200-x64/include/Ruby-2.0.0/Ruby/defines.h:153,
from c:/Ruby200-x64/include/Ruby-2.0.0/Ruby/ruby.h:70,
from c:/Ruby200-x64/include/Ruby-2.0.0/Ruby.h:33,
from em.h:24,
from project.h:150,
from binder.cpp:20:
c:\users\btdy\downloads\devkit\mingw\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../
../../../x86_64-w64-mingw32/include/sys/types.h:68:16: error: conflicting declar
ation 'typedef _pid_t pid_t'
In file included from binder.cpp:20:0:
project.h:97:13: error: 'pid_t' has a previous declaration as 'typedef int pid_t
'
In file included from project.h:151:0,
from binder.cpp:20:
ed.h: In member function 'void EventableDescriptor::SetSocketInvalid()':
ed.h:43:40: warning: overflow in implicit constant conversion [-Woverflow]
make: *** [binder.o] Error 1
Les choses que j'ai essayées en mettant gem "eventmachine", "~> 1.0.3"
ou gem "eventmachine", "~> 1.0.0.beta.4.1"
dans mon fichier gem et en supprimant/modifiant eventmachine à partir de gemfile.lock
Créer une nouvelle application test et y installer Eventmachine (échec)
Des choses que je soupçonne J'ai repéré des dépendances pour eventmachine (que l'on trouve sur Rubygems) et je constate que je ne peux pas installer bluecloth ni (affiche une erreur de journal encore plus grande) et je ne peux pas non plus installer tidy-ext (bluecloth depencency) donc je pense qu'il pourrait avoir une certaine pertinence, aussi ne peut pas installer mince
Pour toute information, il suffit de demander
Merci d'avance à tous!!
Je pourrais l'installer en procédant comme suit:
1) essayé une installation normale:
gem install eventmachine
il a récupéré la version 1.0.3 de la gemme, mais a échoué dans le make à cause d'un conflit de déclaration de variable
2) édité le fichier:
c:\Ruby200-x64\lib\Ruby\gems\2.0.0\gems\eventmachine-1.0.3\ext\project.h
et a commenté la ligne 97
//typedef int pid_t;
pour une correction plus robuste, consultez la solution ici https://github.com/eventmachine/eventmachine/pull/450/files
3) alors, j'ai ouvert l'invite de commande, et suis allé au dossier de gem
c:\Ruby200-x64\lib\Ruby\gems\2.0.0\gems\eventmachine-1.0.3
et courir:
gem build eventmachine.gemspec
Pour que cela fonctionne, vous devez avoir installé git avec l’emplacement git.exe dans PATH (tel que C:\Utilisateurs\VotreUsername\AppData\Local\GitHub\PORTAB ~ 1\bin).
4) il a généré un fichier eventmachine.gem sur le dossier ... Donc, j'ai copié un fichier dans un dossier c:\tmp et je suis allé dans ce dossier et à partir de là, j'ai tapé:
gem install eventmachine-1.0.3.gem --local
Et c'est installé avec succès!
Cela a fonctionné pour moi:
brew link openssl --force
J'ai une erreur comme ci-dessous
C:\Ruby200-x64\lib\Ruby\gems\2.0.0\gems\eventmachine-1.0.3> gem build eventmachine.gemspec Gemspec non valide dans [eventmachine.gemspec]: aucun fichier ou répertoire de ce type - git ls -des dossiers
Cependant, j'ai gardé le projet.h ouvert dans textpad et j'ai essayé de faire installer gem eventmachine. À un moment donné, textpad demandera une confirmation pour recharger project.h car le nouveau fichier est extrait de la commande gem install .. donnez simplement reload et commentez la ligne // typedef int pid_t; .. Ensuite, la compilation est passée ..
en gros, il faut un certain temps pour démarrer la compilation après avoir récupéré les fichiers du projet Gem. Utilisez simplement ce temps pour commenter cette ligne .. Cela a fonctionné pour moi .. peut ne pas fonctionner pour tout le monde.
À votre santé!
Essayer
gem install eventmachine -- --with-cppflags=-I/usr/local/opt/openssl/include
J'ai eu le même problème et j'ai réussi à l'exécuter en ajoutant ci-dessous au début de la Gemfile
:
gem 'eventmachine', :git => 'git://github.com/eventmachine/eventmachine.git', :branch => 'master'
Avant cela, j'ai désinstallé eventmachine
.
J'ai eu le même problème sous Linux.
Je l'ai résolu en mettant à jour Ruby en Ruby-2.2.1
.
Lors de la mise à niveau vers Ruby 2.2.0, j’ai rencontré des problèmes similaires aujourd’hui pour gem événementiel (pour les versions 1.0.3 et 1.0.4). Et je l'ai corrigé en installant les derniers "outils de développement" pour MAC OSX 10.10.1 Yosemite et XCode 6.1.1
Voici mon article de blog détaillé sur la résolution de ce problème avec l'installation de gem eventmachine - https://blog.kiprosh.com/upgrading-to-Ruby-2-2-0-issues-installing-gem-eventmachine/
Vous pouvez essayer cette réponse ici: Rails - ne peut pas exécuter app: impossible de charger l’extension EventMachine C;
La réponse acceptée à cette question fonctionne. Mais vous aurez d'autres problèmes, comme indiqué dans les commentaires ci-dessous.
Suivez la solution par suda dans le lien, tout ira bien.
(En fait, il s’agit essentiellement de compiler et d’installer gem à partir du dépôt de code maître github. J’ai été surpris qu’ils n’aient pas encore intégré le correctif au problème, car ils sont au courant.)
La réponse ci-dessus sur la manière de compiler ne fonctionnait pas pour moi, car j'obtiendrais le message "Impossible de charger ce fichier". J'ai résolu ce problème en exécutant le gem build eventmachine.gemspec
à partir d'une extraction git du référentiel eventmachine.
https://github.com/eventmachine/eventmachine/tree/v1.0.3
Vous devriez être en mesure de voir que la taille du fichier .gem est beaucoup plus grande car il inclut le code approprié.