捆绑安装:错误:无法构建gem本机扩展。 nio4r宝石 [英] Bundle install: ERROR: Failed to build gem native extension. nio4r gem

查看:718
本文介绍了捆绑安装:错误:无法构建gem本机扩展。 nio4r宝石的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在使用以下项目开展工作:


  • rvm 1.26.11

  • ruby 2.2.1p85



我试着运行 bundle install 以下错误:

  Gem :: Ext :: BuildError:错误:无法构建gem本机扩展。 

以及以下内容:

 安装nio4r(1.0.0)时发生错误,并且Bundler无法继续。 
确保在捆绑之前`gem install nio4r -v'1.0.0'`成功。

当我尝试运行 gem install nio4r -v'1.0.0'

 构建原生扩展。这可能需要一段时间... 
错误:安装nio4r时出错:
错误:无法构建gem本机扩展。

当我尝试运行 bundle update 时: / p>

 请确保您拥有正确的访问权限
并存在存储库。
重试git clone'git@github.com:kshmir / requirejs-rails.git'.... *

Git错误:命令`git clone'git@github.com:kshmir /requirejs-rails.git'....失败

当我尝试运行 bundle update nio4r

  Gem :: Ext :: BuildError:错误:无法构建gem原生扩展.... 
安装eventmachine(1.0.3)时发生错误,并且Bundler无法继续。
确保`gem install eventmachine -v'1.0.3'`捆绑成功。

我试过这个命令也没有结果。



我也试着改变Ruby版本:



rvm use 2.2.1 2.2.0 2.0.0 并运行上述命令,但它不会改变任何内容。



编辑:


$ b 运行 bundle install log / p>

 从rubygems获取gem元数据.......从rubygems获取版本元数据...从rubygems获取依赖关系元数据..使用rake 10.2.2使用i18n 
0.7.0使用multi_json 1.11.0使用activesupport 3.2.17使用builder 3.0.4使用activemodel 3.2.17使用erubis 2.7.0使用旅程1.0.4使用机架1.4.5使用rack-cache 1.2使用rack-test 0.6.2使用hike
1.2.3使用tilt 1.4.1使用sprocket 2.2.2使用actionpack 3.2.17使用MIME类型1.25.1使用polyglot 0.3.4使用treetop 1.4 .15使用邮件2.5.4使用actionmailer 3.2.17使用arbre 1.0.1 Usi ng sass 3.2.19使用thor 0.19.1使用波旁3.1.8使用bcrypt 3.1.7使用bcrypt-ruby 3.1.5使用orm_adapter 0.5.0使用rack-ssl 1.3.4使用json 1.8.1使用rdoc 3.12.2使用railties 3.2.17使用原子
1.1.15使用thread_safe 0.2.0使用warden 1.2.3使用devise 3.2.3使用formtastic 2.2.1使用has_scope 0.6.0.rc使用responder 1.0.0使用inherited_resources 1.4.1使用jquery-rails 2.3.0使用kaminari 0.15.1使用arel 3.0.3使用tzinfo 0.3.39使用activerecord 3.2.17使用多孔0.5.0使用meta_search 1.1.3使用active资源3.2.17使用bundler 1.8.4使用rails 3.2 .17使用activeadmin 0.6.2使用rgeo 0.3.20使用rgeo-activerecord
0.5.0使用activerecord-postgis-adapter 0.6.5使用可寻址2.3.5使用airbrake 3.1.16使用descendants_tracker 0.0.3使用ice_nine
0.11.0使用公理类型0.0.5使用coderay 1.1.0使用better_errors 1.1.0使用debug_inspector 0.0.2使用binding_of_caller 0.7.2使用bootstrap-datepicker-rails 1.1 .1.8使用bootstrap-sass 3.1.1.0使用浏览器0.8.0使用columnize 0.3.6使用debugger-linecache 1.2.0使用byebug 2.7.0使用cancan 1.6.10使用highline 1.6.21使用net-ssh 2.8.0使用net -scp 1.1.2使用net-sftp 2.1.2使用net-ssh-gateway 1.2.0使用capistrano 2.15.5使用mini_portile 0.5.2使用nokogiri 1.6.1使用ffi 1.9.3使用子进程0.5.1使用rubyzip 1.1。 0使用websocket 1.0.7使用selenium-webdriver 2.40.0使用xpath 1.0.0使用capybara 2.0.2使用carrierwave 0.10.0使用carrierwave_backgrounder 0.3.0使用hitimes 1.2.2使用定时器4.0.1使用赛璐珞0.16.0

Gem :: Ext :: BuildError:错误:无法构建gem本机扩展。

/home/adrian/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150424-28432-11y95op.rb extconf.rb检查rb_thread_blocking_region()...否检查sys / select.h ...是检查poll.h ...是检查sys / epoll.h ...是检查sys / event.h ...没有检查port.h ...没有检查sys / resource.h ...是创建Makefile

makeDESTDIR =clean

makeDESTDIR =编译selector.c在nio4r .h:10:0,来自selector.c:6的
:/home/adrian/.rvm/rubies-2.2.1/include/ruby-2.2.0/ruby/backward/rubyio.h: 2:2:警告:#warning使用ruby / io.h而不是rubyio.h[-Wcpp]
#warning使用ruby / io.h而不是rubyio.h^ In文件包含在selector.c:7:0中:/home/adrian/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby/backward/rubysig.h:14:2:warning:#警告rubysig.h已过时[-Wcpp] #warning ruby​​sig.h已过时^ selector.c:在函数'NIO_Selector_allocate'中:selector.c:94:5:w arning:解引用type-punned指针将打破strict-aliasing规则[-Wstrict-aliasing]
ev_init(& selector-> timer,NIO_Selector_timeout_callback);
^ selector.c:94:5:warning:取消引用type-punned指针会打破严格别名规则[-Wstrict-aliasing] selector.c:94:5:warning:取消引用type-punned指针将打破strict - 限制规则[-Wstrict-aliasing] selector.c:99:5:warning:取消引用类型化的指针将打破严格别名规则[-Wstrict-aliasing]
ev_io_init(& selector->唤醒, NIO_Selector_wakeup_callback,selector-> wakeup_reader,EV_READ);
^ selector.c:99:5:warning:取消引用type-punned指针将打破strict-aliasing规则[-Wstrict-aliasing] selector.c:99:5:warning:取消引用type-punned指针将打破严格 - 重叠规则[-Wstrict-aliasing] selector.c:在函数'NIO_Selector_synchronize'中:selector.c:159:11:warning:变量'current_thread'设置但未使用[-Wunused-but-set-variable]
VALUE current_thread,lock_holder,lock;
^ selector.c:在函数'NIO_Selector_deregister_synchronized'中:selector.c:241:11:warning:未使用的变量'monitor_args'[-Wunused-variable]
VALUE monitor_args [3];
^ selector.c:240:21:警告:未使用的变量'interest'[-Wunused-variable]
VALUE self,io,interest,selectables,monitor;
^ selector.c:在函数'NIO_Selector_select'中:selector.c:268:20:warning:未使用变量'array'[-Wunused-variable]
VALUE timeout,array;
^ selector.c:在函数'NIO_Selector_select_synchronized'中:selector.c:286:9:warning:未使用的变量'i'[-Wunused-variable]
int i,准备就绪;
^ selector.c:在函数'NIO_Selector_run'中:selector.c:326:5:warning:ISO C90禁止混合声明和代码[-W声明后语句]
ev_tstamp started_at = ev_now(selector - > ev_loop);
^ selector.c:341:9:错误:'TRAP_BEG'未声明(首次在此函数中使用)
TRAP_BEG;
^ selector.c:341:9:注意:每个未声明的标识符对于在selector.c中显示的每个函数只报告一次:343:9:error:'TRAP_END'未声明(在此函数中首次使用)
TRAP_END;
^ selector.c:347:9:warning:解引用类型指针会破坏严格别名规则[-Wstrict-aliasing]
ev_timer_init(& selector->定时器,NIO_Selector_timeout_callback,BUSYWAIT_INTERVAL, BUSYWAIT_INTERVAL);
^ selector.c:347:9:warning:取消引用类型指针会破坏严格别名规则[-Wstrict-aliasing] selector.c:347:9:warning:取消引用类型指针会打破严格 - 限制规则[-Wstrict-aliasing] selector.c:347:9:warning:取消引用类型双击指针将打破严格别名规则[-Wstrict-aliasing] selector.c:在函数'NIO_Selector_close'中:selector.c: 391:5:警告:从不兼容指针类型[默认启用]传递参数2'NIO_Selector_synchronize'
返回NIO_Selector_synchronize(self,NIO_Selector_close_synchronized,self); (*)(VALUE)'VALUE(*)(VALUE)'静态VALUE NIO_Selector_synchronize(VALUE self,VALUE(* func)(VALUE * args),VALUE
* args)
^ selector.c:391:5:warning:传递'NIO_Selector_synchronize'的参数3使得整型指针没有强制转换[缺省情况下启用]
return NIO_Selector_synchronize(self,NIO_Selector_close_synchronized,self);
^ selector.c:157:14:note:expected'VALUE *'但参数的类型为'VALUE'static VALUE NIO_Selector_synchronize(VALUE self,VALUE(* func)(VALUE * args),VALUE * args)
^ selector.c:在函数'NIO_Selector_closed'中:selector.c:407:5:警告:从不兼容指针类型[默认启用]传递'NIO_Selector_synchronize'的参数2
返回NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized,self); (*)(VALUE)'VALUE(*)(VALUE)'静态VALUE NIO_Selector_synchronize(VALUE self,VALUE(* func)(VALUE * args),VALUE
* args)
^ selector.c:407:5:warning:传递'NIO_Selector_synchronize'的参数3使得整型指针没有强制转换[缺省情况下启用]
return NIO_Selector_synchronize(self,NIO_Selector_closed_synchronized,self);
^ selector.c:157:14:note:expected'VALUE *'但参数的类型为'VALUE'static VALUE NIO_Selector_synchronize(VALUE self,VALUE(* func)(VALUE * args),VALUE * args)
^ selector.c:在函数'NIO_Selector_wakeup'中:selector.c:384:10:warning:忽略'write'的返回值,用属性声明warn_unused_result [-Wunused-result]
write(selector - > wakeup_writer,\0,1);
^ make:*** [selector.o]错误1

失败,退出代码2

Gem文件将保持安装在/ home / adrian / .rvm / gems / ruby​​-2.2.1 / gems / nio4r-1.0.0进行检查。记录到/home/adrian/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/nio4r-1.0.0/gem_make.out的结果安装nio4r(1.0.0)时发生错误,和Bundler无法继续。在捆绑之前确保`gem install nio4r -v'1.0.0'`成功。


解决方案

我解决了这个问题:

  sudo apt-get install libmysqlclient-dev $ b $ sudo apt-get install libpq-dev $ b $ sudo apt-get install libsqlite3-dev 
sudo apt-get install libev-dev
rvm use 2.0.0
Reboot pc

如果我运行 rails -v 显示我:


  • Rails 3.2.17



现在我可以使 Bundle install



我认为rails版本有冲突。我不知道为什么,也许任何人都可以解释我。


I'm currently working on a project using:

  • rvm 1.26.11
  • ruby 2.2.1p85

I tried to run bundle install but keep getting the following error:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

and, following:

An error occurred while installing nio4r (1.0.0), and Bundler cannot continue.
Make sure that `gem install nio4r -v '1.0.0'` succeeds before bundling.

When I try running gem install nio4r -v '1.0.0':

Building native extensions.  This could take a while...
ERROR: Error installing nio4r:
ERROR: Failed to build gem native extension.

When I try running bundle update:

Please make sure you have the correct access rights
and the repository exists.
Retrying git clone 'git@github.com:kshmir/requirejs-rails.git' ....*

Git error: command `git clone 'git@github.com:kshmir/requirejs-rails.git'....  has failed

When I try running bundle update nio4r:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension....
An error occurred while installing eventmachine (1.0.3), and Bundler cannot continue.
Make sure that `gem install eventmachine -v '1.0.3'` succeeds before bundling.

I tried that command too, to no result.

I also tried changing Ruby version:

rvm use 2.2.1 2.2.0 2.0.0 and running the commands above, but it doesn't change anything

Edit:

The output from running bundle install log:

Fetching gem metadata from rubygems....... Fetching version metadata from rubygems... Fetching dependency metadata from rubygems.. Using rake 10.2.2 Using i18n
0.7.0 Using multi_json 1.11.0 Using activesupport 3.2.17 Using builder 3.0.4 Using activemodel 3.2.17 Using erubis 2.7.0 Using journey 1.0.4 Using rack 1.4.5 Using rack-cache 1.2 Using rack-test 0.6.2 Using hike
1.2.3 Using tilt 1.4.1 Using sprockets 2.2.2 Using actionpack 3.2.17 Using mime-types 1.25.1 Using polyglot 0.3.4 Using treetop 1.4.15 Using mail 2.5.4 Using actionmailer 3.2.17 Using arbre 1.0.1 Using sass 3.2.19 Using thor 0.19.1 Using bourbon 3.1.8 Using bcrypt 3.1.7 Using bcrypt-ruby 3.1.5 Using orm_adapter 0.5.0 Using rack-ssl 1.3.4 Using json 1.8.1 Using rdoc 3.12.2 Using railties 3.2.17 Using atomic
1.1.15 Using thread_safe 0.2.0 Using warden 1.2.3 Using devise 3.2.3 Using formtastic 2.2.1 Using has_scope 0.6.0.rc Using responders 1.0.0 Using inherited_resources 1.4.1 Using jquery-rails 2.3.0 Using kaminari 0.15.1 Using arel 3.0.3 Using tzinfo 0.3.39 Using activerecord 3.2.17 Using polyamorous 0.5.0 Using meta_search 1.1.3 Using activeresource 3.2.17 Using bundler 1.8.4 Using rails 3.2.17 Using activeadmin 0.6.2 Using rgeo 0.3.20 Using rgeo-activerecord
0.5.0 Using activerecord-postgis-adapter 0.6.5 Using addressable 2.3.5 Using airbrake 3.1.16 Using descendants_tracker 0.0.3 Using ice_nine
0.11.0 Using axiom-types 0.0.5 Using coderay 1.1.0 Using better_errors 1.1.0 Using debug_inspector 0.0.2 Using binding_of_caller 0.7.2 Using bootstrap-datepicker-rails 1.1.1.8 Using bootstrap-sass 3.1.1.0 Using browser 0.8.0 Using columnize 0.3.6 Using debugger-linecache 1.2.0 Using byebug 2.7.0 Using cancan 1.6.10 Using highline 1.6.21 Using net-ssh 2.8.0 Using net-scp 1.1.2 Using net-sftp 2.1.2 Using net-ssh-gateway 1.2.0 Using capistrano 2.15.5 Using mini_portile 0.5.2 Using nokogiri 1.6.1 Using ffi 1.9.3 Using childprocess 0.5.1 Using rubyzip 1.1.0 Using websocket 1.0.7 Using selenium-webdriver 2.40.0 Using xpath 1.0.0 Using capybara 2.0.2 Using carrierwave 0.10.0 Using carrierwave_backgrounder 0.3.0 Using hitimes 1.2.2 Using timers 4.0.1 Using celluloid 0.16.0

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /home/adrian/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20150424-28432-11y95op.rb extconf.rb  checking for rb_thread_blocking_region()... no checking for sys/select.h... yes checking for poll.h... yes checking for sys/epoll.h... yes checking for sys/event.h... no checking for port.h... no checking for sys/resource.h... yes creating Makefile

make "DESTDIR=" clean

make "DESTDIR=" compiling selector.c In file included from nio4r.h:10:0,
                 from selector.c:6: /home/adrian/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby/backward/rubyio.h:2:2: warning: #warning use "ruby/io.h" instead of "rubyio.h" [-Wcpp] 
#warning use "ruby/io.h" instead of "rubyio.h"   ^ In file included from selector.c:7:0: /home/adrian/.rvm/rubies/ruby-2.2.1/include/ruby-2.2.0/ruby/backward/rubysig.h:14:2: warning: #warning rubysig.h is obsolete [-Wcpp]  #warning rubysig.h is obsolete   ^ selector.c: In function ‘NIO_Selector_allocate’: selector.c:94:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ev_init(&selector->timer, NIO_Selector_timeout_callback);
     ^ selector.c:94:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] selector.c:94:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] selector.c:99:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     ev_io_init(&selector->wakeup, NIO_Selector_wakeup_callback, selector->wakeup_reader, EV_READ);
     ^ selector.c:99:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] selector.c:99:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] selector.c: In function ‘NIO_Selector_synchronize’: selector.c:159:11: warning: variable ‘current_thread’ set but not used [-Wunused-but-set-variable]
     VALUE current_thread, lock_holder, lock;
           ^ selector.c: In function ‘NIO_Selector_deregister_synchronized’: selector.c:241:11: warning: unused variable ‘monitor_args’ [-Wunused-variable]
     VALUE monitor_args[3];
           ^ selector.c:240:21: warning: unused variable ‘interests’ [-Wunused-variable]
     VALUE self, io, interests, selectables, monitor;
                     ^ selector.c: In function ‘NIO_Selector_select’: selector.c:268:20: warning: unused variable ‘array’ [-Wunused-variable]
     VALUE timeout, array;
                    ^ selector.c: In function ‘NIO_Selector_select_synchronized’: selector.c:286:9: warning: unused variable ‘i’ [-Wunused-variable]
     int i, ready;
         ^ selector.c: In function ‘NIO_Selector_run’: selector.c:326:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     ev_tstamp started_at = ev_now(selector->ev_loop);
     ^ selector.c:341:9: error: ‘TRAP_BEG’ undeclared (first use in this function)
         TRAP_BEG;
         ^ selector.c:341:9: note: each undeclared identifier is reported only once for each function it appears in selector.c:343:9: error: ‘TRAP_END’ undeclared (first use in this function)
         TRAP_END;
         ^ selector.c:347:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
         ev_timer_init(&selector->timer, NIO_Selector_timeout_callback, BUSYWAIT_INTERVAL, BUSYWAIT_INTERVAL);
         ^ selector.c:347:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] selector.c:347:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] selector.c:347:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] selector.c: In function ‘NIO_Selector_close’: selector.c:391:5: warning: passing argument 2 of ‘NIO_Selector_synchronize’ from incompatible pointer type [enabled by default]
     return NIO_Selector_synchronize(self, NIO_Selector_close_synchronized, self);
     ^ selector.c:157:14: note: expected ‘VALUE (*)(VALUE *)’ but argument is of type ‘VALUE (*)(VALUE)’  static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE
*args)
              ^ selector.c:391:5: warning: passing argument 3 of ‘NIO_Selector_synchronize’ makes pointer from integer without a cast [enabled by default]
     return NIO_Selector_synchronize(self, NIO_Selector_close_synchronized, self);
     ^ selector.c:157:14: note: expected ‘VALUE *’ but argument is of type ‘VALUE’  static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE *args)
              ^ selector.c: In function ‘NIO_Selector_closed’: selector.c:407:5: warning: passing argument 2 of ‘NIO_Selector_synchronize’ from incompatible pointer type [enabled by default]
     return NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized, self);
     ^ selector.c:157:14: note: expected ‘VALUE (*)(VALUE *)’ but argument is of type ‘VALUE (*)(VALUE)’  static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE
*args)
              ^ selector.c:407:5: warning: passing argument 3 of ‘NIO_Selector_synchronize’ makes pointer from integer without a cast [enabled by default]
     return NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized, self);
     ^ selector.c:157:14: note: expected ‘VALUE *’ but argument is of type ‘VALUE’  static VALUE NIO_Selector_synchronize(VALUE self, VALUE (*func)(VALUE *args), VALUE *args)
              ^ selector.c: In function ‘NIO_Selector_wakeup’: selector.c:384:10: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
     write(selector->wakeup_writer, "\0", 1);
          ^ make: *** [selector.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/adrian/.rvm/gems/ruby-2.2.1/gems/nio4r-1.0.0 for inspection. Results logged to /home/adrian/.rvm/gems/ruby-2.2.1/extensions/x86_64-linux/2.2.0/nio4r-1.0.0/gem_make.out An error occurred while installing nio4r (1.0.0), and Bundler cannot continue. Make sure that `gem install nio4r -v '1.0.0'` succeeds before bundling.

解决方案

I solved it with:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libpq-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install libev-dev
rvm use 2.0.0
Reboot pc

If I run rails -v shows me:

  • Rails 3.2.17

And now I can make Bundle install

I think the rails version was in conflict. I don't know why, maybe anyone can explain me.

这篇关于捆绑安装:错误:无法构建gem本机扩展。 nio4r宝石的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆