我在控制台上收到以下错误
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
如有任何帮助和建议,我们将不胜感激。
答案 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