Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eventmachine gem install fail

I am not able to install eventmachine

Ok I know this has been asked quite a lot, but no solutions I found has helped me so far.So I posted here as a last resort.

I use windows 8 x64 using ruby 2.0.0p195 (x64) (installed throught Ruby Installer for Windows with the apropriate Devkit)

So the Error is

    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       

Things I have tried putting gem "eventmachine", "~> 1.0.3" or gem "eventmachine", "~> 1.0.0.beta.4.1" in my gemfile and removed/modify eventmachine from gemfile.lock making a new testapp and instaling Eventmachine there (fail)

Things I suspect I tracked down dependencies for eventmachine(can be found on Rubygems) and I see that I cannot install bluecloth neither (shows even bigger log error) and neither can I install tidy-ext (bluecloth depencency) so I think it might have some relevance , also cannot install thin

For any info just ask

Thank you all in advance!!

like image 660
Vasspilka Avatar asked Jun 28 '13 09:06

Vasspilka


People also ask

How do I install gem packages?

With the --local ( -l ) option, you would perform a local search through your installed gems. To install a gem, use gem install [gem] . Browsing installed gems is done with gem list . For more information about the gem command, see below or head to RubyGems' docs.

What does gem install rails do?

gem install bundler installs a gem(library) that will help you to manage your project dependencies. Then you have a project that contains a file called Gemfile , when you cd into that directory and enter bundle install it will install all gems needed for that project.


2 Answers

I could install it, doing this steps:

1) tried a normal install:

gem install eventmachine 

it fetched the version 1.0.3 of the gem, but failed in the make, because of a variable declaration conflit

2) edited the file:

c:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\eventmachine-1.0.3\ext\project.h 

and commented the line 97

//typedef int pid_t; 

for a more robust correction, checkout the solution here https://github.com/eventmachine/eventmachine/pull/450/files

3) then, i've opened command prompt, and went to the gem folder

c:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\eventmachine-1.0.3 

and run:

gem build eventmachine.gemspec 

You need git installed with the git.exe location in the PATH for this to work (such as C:\Users\YourUsername\AppData\Local\GitHub\PORTAB~1\bin).

4) it generated a eventmachine.gem file on the folder... So I've copied a file to a c:\tmp folder, and went to that folder and from there, I've typed:

gem install eventmachine-1.0.3.gem --local 

And it installed successfully!

like image 183
Fernando Vieira Avatar answered Nov 10 '22 09:11

Fernando Vieira


This worked for me:

brew link openssl --force  
like image 31
Kai Avatar answered Nov 10 '22 11:11

Kai