我正在尝试将Rails从3.2升级到4.2。为此,我最初使用ruby-2.2安装了rvm,并尝试运行bundle install。它显示了一些错误,我正在修复,但有一个错误,我无法解决。当我运行bundle install
时:
安装eventmachine(1.0.0)和Bundler时发生错误 无法继续。确保
gem install eventmachine -v '1.0.0'
在捆绑之前成功。
abcuser@user:~/Desktop/project/Ex2$ gem install eventmachine -v '1.0.0'
Building native extensions. This could take a while...
错误:安装eventmachine时出错: 错误:无法构建gem原生扩展。
/home/abcuser/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20160621-15941-l0l1kh.rb extconf.rb checking for
rb_trap_immediate in ruby.h,rubysig.h ...没有检查 rb_thread_blocking_region()...没有检查inotify_init() sys / inotify.h ...是在sys / uio.h中检查writev()...是的 检查rb_thread_check_ints()...是检查 rb_time_new()...是检查sys / event.h ...没有检查 sys / epoll.h中的epoll_create()...是创建Makefile
制作" DESTDIR ="清洁
制作" DESTDIR ="编译pipe.cpp编译page.cpp编译em.cpp em.cpp:在成员函数'bool EventMachine_t :: _ RunEpollOnce()'中: em.cpp:532:65:错误:'rb_thread_select'未在此声明 范围if((ret = rb_thread_select(epfd + 1,& fdreads,NULL,NULL, & tv))< 1){ ^ em.cpp:573:37:错误:'rb_thread_select'未在此声明 范围EmSelect(0,NULL,NULL,NULL和& tv); ^ em.cpp:在成员函数'int SelectData_t :: _ Select()':em.cpp:825:67:错误:'rb_thread_select'是 未在此范围内声明返回EmSelect(maxsocket + 1,& fdreads, & fdwrites,& fderrors,& tv); ^ em.cpp:在成员函数'bool EventMachine_t :: _ RunSelectOnce()'中: em.cpp:964:40:错误:'rb_thread_select'未在此声明 范围 EmSelect(0,NULL,NULL,NULL和& tv); ^ make:*** [em.o]错误1
make failed,退出代码2
Gem文件将保持安装状态 /home/abcuser/.rvm/gems/ruby-2.2.1/gems/eventmachine-1.0.0 for 检查。记录结果 /home/abcuser/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/eventmachine-1.0.0/gem_make.out
我尝试了命令bundle update eventmachine
并且尝试在Gemfile中添加gem 并运行bundle install
,但没有用。
请帮帮我。