2017-02-27 35 views
5

noob tutaj, Próbuję zainstalować octopress, ale po uruchomieniu rbenv exec bundle install mam ten błąd.Błąd, aby zainstalować pakiet "yajl-ruby"

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 
current directory: 
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl 
/home/idiot/.rbenv/versions/2.4.0/bin/ruby -r ./siteconf20170227-4161-uizrqn.rb extconf.rb 
creating Makefile 

current directory: 
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl 
make "DESTDIR=" clean 

current directory: 
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl 
make "DESTDIR=" 
compiling yajl.c 
compiling yajl_alloc.c 
compiling yajl_buf.c 
compiling yajl_encode.c 
compiling yajl_ext.c 
yajl_ext.c: In function ‘rb_yajl_parser_parse’: 
yajl_ext.c:471:17: warning: variable ‘stat’ set but not used [Wunused-but-set-variable] 
yajl_status stat; 
      ^~~~ 
yajl_ext.c: In function ‘rb_yajl_encoder_enable_json_gem_ext’: 
yajl_ext.c:881:22: error: ‘rb_cFixnum’ undeclared (first use in this function) 
rb_define_method(rb_cFixnum, "to_json", rb_yajl_json_ext_fixnum_to_json, -1); 
        ^~~~~~~~~~ 
yajl_ext.c:881:22: note: each undeclared identifier is reported only once for each 
function it appears in 
yajl_ext.c: At top level: 
cc1: warning: unrecognized command line option ‘-Wno-self-assign’ 
cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’ 
cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’ 
make: *** [Makefile:242: yajl_ext.o] Error 1 

make failed, exit code 2 

Gem files will remain installed in 
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby1.2.1 for inspection. 
Results logged to 
    /home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/yajl-ruby-1.2.1/gem_make.out 

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

Próbowałem googling, ale wciąż nie znalazłem rozwiązanie tego problemu, ktoś odpowiedzieć na moje pytanie, jestem bardzo wdzięczny.

Odpowiedz

13

Natywne rozszerzenie nie zostało jeszcze zaktualizowane dla Ruby 2.4. Zmiana zerwania polega na tym, że Fixnum i Bignum (i API) zostały zunifikowane w Integer (rb_cInteger).

Sprawdź repozytorium yajl-ruby dla żądania wydania/pobrania, ustalając kompatybilność z Ruby 2.4 lub na razie korzystaj z Ruby 2.3.3.

+0

Dzięki za wyjaśnienie i sugestię @ichael. –

+0

Zwróć uwagę, że zwyczajem jest przyjmowanie i przyjmowanie odpowiedzi, które ci pomogły. To jest tak, że inni wiedzą, że twój problem został rozwiązany. –

+0

Dzięki kolego, rozwiązałem ten problem –