无法安装“gem install eventmachine”。我需要在我的项目中使用starling,因为我需要安装eventmachine

时间:2011-01-19 12:36:21

标签: ruby-on-rails

我在控制台上收到以下错误

root@comp09:~# gem install eventmachine
Building native extensions.  This could take a while...
ERROR:  Error installing eventmachine:
 ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
checking for rb_trap_immediate in ruby.h,rubysig.h... yes
checking for rb_thread_blocking_region()... no
checking for inotify_init() in sys/inotify.h... yes
checking for writev() in sys/uio.h... yes
checking for rb_thread_check_ints()... no
checking for rb_time_new()... yes
checking for sys/event.h... no
checking for epoll_create() in sys/epoll.h... yes
creating Makefile

make
I. -I/usr/local/lib/ruby/1.8/x86_64-linux -I/usr/local/lib/ruby/1.8/x86_64-linux -I. -DBUILD_FOR_RUBY -DHAVE_RB_TRAP_IMMEDIATE -DHAVE_RBTRAP -DHAVE_INOTIFY_INIT -DHAVE_INOTIFY -DHAVE_WRITEV -DHAVE_WRITEV -DHAVE_RB_TIME_NEW -DOS_UNIX -DHAVE_EPOLL_CREATE -DHAVE_EPOLL -DWITH_SSL    -fPIC -O2 -g -Wall -Wno-parentheses -Wno-long-long     -o rubymain.o -c rubymain.cpp
make: I.: Command not found
make: [rubymain.o] Error 127 (ignored)
I. -I/usr/local/lib/ruby/1.8/x86_64-linux -I/usr/local/lib/ruby/1.8/x86_64-linux -I. -DBUILD_FOR_RUBY -DHAVE_RB_TRAP_IMMEDIATE -DHAVE_RBTRAP -DHAVE_INOTIFY_INIT -DHAVE_INOTIFY -DHAVE_WRITEV -DHAVE_WRITEV -DHAVE_RB_TIME_NEW -DOS_UNIX -DHAVE_EPOLL_CREATE -DHAVE_EPOLL -DWITH_SSL    -fPIC -O2 -g -Wall -Wno-parentheses -Wno-long-long     -o em.o -c em.cpp
make: I.: Command not found

如有任何帮助和建议,我们将不胜感激。

7 个答案:

答案 0 :(得分:43)

我在安装eventmachine的Ubuntu 11.10上遇到了类似的问题 区别在于(接近日志结尾)

make: g++: Command not found

而不是

make: I.: Command not found

此问题与GCC上的C ++有关,并通过安装build-essential

解决
sudo apt-get install build-essential 

答案 1 :(得分:5)

您可能也错过了ruby开发包。根据您使用的ruby版本,可能是ruby-dev,ruby1.8-dev,ruby1.9-dev或ruby1.9.1-dev。我有同样的问题,并安装了ruby1.9-dev和ruby1.9.1-dev,这解决了我的问题。

这是让我尝试这种方法的网站:http://ruby.about.com/od/faqs/qt/Extconf-Rb-1-In-Require-No-Such-File-To-Load-Mkmf-Loaderror.htm

答案 2 :(得分:3)

我有同样的问题,这是如何解决它[注意:我使用的是ubuntu,所以在“g ++”你必须使用“gcc”如果你正在使用任何其他操作系统]:

首先,我将存储库克隆到我的本地计算机,并做了一些更改,看看下面的过程:

git clone git://github.com/eventmachine/eventmachine.git
cd eventmachine
gem install rake-compiler
rake-compiler cross-ruby VERSION=x.x.x-px 

在x.x.x-px的地方你必须使用你的ruby版本。查看与rake-compiler here

兼容的ruby可用版本列表

然后把这个:CONFIG['CXX'] = "g++"放在 /eventmachine/ext/extconf.rb /eventmachine/ext/fastfilereader/extconf.rb 文件中,在require 'mkmf'行以下。 然后执行:rake gem之后:rake gem:install

它对我有用,希望它也适合你。

答案 3 :(得分:2)

我正在使用Ubuntu 16.10 sudo apt-get install ruby-dev build-essential然后使用sudo gem install eventmachine。这解决了我。

答案 4 :(得分:1)

来自docs。

  

EventMachine可能需要以下内容   依赖关系,取决于你的   具体用法:

* OpenSSL
* libstd++ (some systems, such as debian, may require an explicit
     

安装以便编译器   支持这个)

如果您使用的是debian

,请尝试安装它
sudo apt-get install libstdc++6

答案 5 :(得分:1)

请记住运行 rvm要求并按照附加依赖项中的说明进行操作。

答案 6 :(得分:1)

对于运行openSUSE的所有用户,您需要执行以下命令:

zypper in -t pattern devel_C_C++ 

为简单起见,我们可以说这相当于Ubuntu下的这个命令:

sudo apt-get install build-essential