Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR: Error installing oj:

I just cloned a repository from GitHub for the first time.

I went to check it out on my local machine, so within the local repository on my mac I ran the following command

bin/rails server

I got the following error:

Could not find activesupport-5.0.0.1 in any of the sources Run bundle install to install missing gems.

So I then ran the bundle install command as suggested, but then it gave me the following error

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

So as suggested I ran: gem install oj -v '2.12.14'

Then I got a really long message with warning and an error (see below). Any thoughts?

ERROR:  Error installing oj:
ERROR: Failed to build gem native extension.

    current directory: /usr/local/lib/ruby/gems/2.4.0/gems/oj-2.12.14/ext/oj

/usr/local/opt/ruby/bin/ruby -r ./siteconf20170218-3717-1p2bvl9.rb extconf.rb

>>>>> Creating Makefile for ruby version 2.4.0 on x86_64-darwin16 <<<<<

creating Makefile



current directory: /usr/local/lib/ruby/gems/2.4.0/gems/oj-2.12.14/ext/oj

make "DESTDIR=" clean



current directory: /usr/local/lib/ruby/gems/2.4.0/gems/oj-2.12.14/ext/oj

make "DESTDIR="

compiling cache8.c

compiling circarray.c

compiling compat.c

compiling dump.c

dump.c:503:8: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]

        cnt = RSTRING_LEN(rstr);

            ~ ^~~~~~~~~~~~~~~~~

/usr/local/Cellar/ruby/2.4.0/include/ruby-2.4.0/ruby/ruby.h:976:6: note: expanded from macro 'RSTRING_LEN'

     RSTRING_EMBED_LEN(str) : \

     ^~~~~~~~~~~~~~~~~~~~~~

/usr/local/Cellar/ruby/2.4.0/include/ruby-2.4.0/ruby/ruby.h:972:6: note: expanded from macro 'RSTRING_EMBED_LEN'

     (long)((RBASIC(str)->flags >> RSTRING_EMBED_LEN_SHIFT) & \

     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

dump.c:503:8: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32]

        cnt = RSTRING_LEN(rstr);

            ~ ^~~~~~~~~~~~~~~~~

/usr/local/Cellar/ruby/2.4.0/include/ruby-2.4.0/ruby/ruby.h:977:28: note: expanded from macro 'RSTRING_LEN'

     RSTRING(str)->as.heap.len)

     ~~~~~~~~~~~~~~~~~~~~~~^~~

dump.c:1776:39: warning: 'rb_struct_ptr' is deprecated [-Wdeprecated-declarations]

        for (i = (int)RSTRUCT_LEN(obj), vp = RSTRUCT_PTR(obj); 0 < i; i--, vp++) {

                                             ^

/usr/local/Cellar/ruby/2.4.0/include/ruby-2.4.0/ruby/ruby.h:1190:33: note: expanded from macro 'RSTRUCT_PTR'

#define RSTRUCT_PTR(st)         rb_struct_ptr(st)

                                ^

/usr/local/Cellar/ruby/2.4.0/include/ruby-2.4.0/ruby/intern.h:889:25: note: 'rb_struct_ptr' has been explicitly marked deprecated here

DEPRECATED(const VALUE *rb_struct_ptr(VALUE s));

                        ^

dump.c:1776:37: warning: assigning to 'VALUE *' (aka 'unsigned long *') from 'const VALUE *' (aka 'const unsigned long *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]

        for (i = (int)RSTRUCT_LEN(obj), vp = RSTRUCT_PTR(obj); 0 < i; i--, vp++) {

                                           ^ ~~~~~~~~~~~~~~~~

4 warnings generated.

compiling err.c

compiling fast.c

fast.c:816:17: warning: 'rb_data_object_alloc' is deprecated: by rb_data_object_wrap [-Wdeprecated-declarations]

    doc->self = rb_data_object_alloc(clas, doc, 0, free_doc_cb);

                ^

/usr/local/Cellar/ruby/2.4.0/include/ruby-2.4.0/ruby/ruby.h:1379:1: note: 'rb_data_object_alloc' has been explicitly marked deprecated here

rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)

^

fast.c:1280:24: error: use of undeclared identifier 'rb_cFixnum'

        case T_FIXNUM:  type = rb_cFixnum;      break;

                               ^

1 warning and 1 error generated.

make: *** [fast.o] Error 1



make failed, exit code 2



Gem files will remain installed in /usr/local/lib/ruby/gems/2.4.0/gems/oj-2.12.14 for inspection.

Results logged to /usr/local/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0/oj-2.12.14/gem_make.out
like image 581
Kramer Keller Avatar asked Feb 18 '17 14:02

Kramer Keller


1 Answers

Fixnum is no longer a thing in ruby 2.4. Either downgrade your ruby or update oj to 2.16.1, which supports ruby 2.4.

like image 50
eiko Avatar answered Oct 01 '22 09:10

eiko