Error installing package "yajl-ruby"

noob here, I'm trying to install oktopress, but when I ran rbenv exec bundle install , I got this error.

 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. 

I tried to search on Google, but still have not found a solution to this problem, someone answered my question, I am very grateful.

+5
source share
1 answer

The configured extension has not yet been updated for Ruby 2.4. The breaking change is that Fixnum and Bignum ( rb_cFixnum and rb_cBignum in the C API) were merged into Integer ( rb_cInteger ).

Check the yajl-ruby repository to fix the problem / traction compatible with Ruby 2.4, or use Ruby 2.3.3.

+13
source

Source: https://habr.com/ru/post/1264762/