2015-04-25 92 views
15

我目前工作的一個項目使用:軟件包安裝:錯誤:無法構建gem本機擴展。 nio4r寶石

  • RVM 11年1月26日
  • 紅寶石2.2.1p85

我試圖運行bundle install但不斷收到以下錯誤:

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

,並執行以下操作:

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. 

當我嘗試運行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. 

當我嘗試運行bundle update

Please make sure you have the correct access rights 
and the repository exists. 
Retrying git clone '[email protected]:kshmir/requirejs-rails.git' ....* 

Git error: command `git clone '[email protected]:kshmir/requirejs-rails.git'.... has failed 

當我嘗試運行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. 

我試過命令也是如此,沒有結果。

我也嘗試過改變的Ruby版本:

rvm use 2.2.12.2.02.0.0和運行上面的命令,但它不會改變任何東西

編輯:

運行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. 
+1

你有安裝'libev'開發文件嗎?在Ubuntu和衍生品中,它是'libev-dev'。 –

+0

@ D側不,我沒有,我現在擁有它們,仍然沒有工作.. –

+0

這很尷尬。你需要挖掘輸出和日誌文件以查看缺少的內容。發佈一些片段也可能有幫助。奇怪的是,我只是輸入'gem install nio4r',它剛剛工作(RVM上的Ruby 2.1.5)。我的機器是什麼,你的機器沒有? :\ –

回答

4

我解決了它

  • 的Rails 3.2.17

現在我可以製作Bundle install

我覺得rails版本發生衝突。我不知道爲什麼,也許任何人都可以解釋我。

+0

非常好的嘗試!看起來很喜歡我們必須在重新安裝操作系統時再次安裝這些東西。 – duykhoa

3

更新至ver

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 

如果我運行rails -v顯示我:錫永1.0.4如果你使用Ruby 2.2.1

20

如果您在Mac OSX工作上面10.11.x版本,下面的方法爲我工作:

gem install nio4r -v '1.1.0' -- with-cflags="-std=c99" 
+3

爲我工作與版本1.0.0'gem install nio4r -v'1.0.0' - with-cflags =「 - std = c99」' – miligraf

+1

它的工作原理!我升級了我的xcode之後,它不起作用。也許是因爲新的Clang。謝謝! – haohaolee

3
bundle config build.nio4r --with-cflags="-std=c99" 
bundle install 

作品對我來說

0

設置包的配置並沒有爲我工作。 ..

如果您最近更新過Xcode,請確保實際運行該應用程序並接受服務條款。

在我的包的錯誤,我運行以下命令後得到You have to install development tools first.

0

正常工作與MacOS的塞拉利昂(10.12.2):

xcode-select --install 

我之前:

An error occurred while installing nio4r (1.2.1), and Bundler cannot continue. 
相關問題