srlrs20020
srlrs20020

Reputation: 437

Issue with json 1.8.1 in my gemfile?

I am getting following error message when running bundle install in my rails app:

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

I then run gem install json -v '1.8.1'

and get this error:

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

    current directory: /Users/home/.rvm/gems/ruby-2.3.0/gems/json-1.8.1/ext/json/ext/generator
/Users/home/.rvm/rubies/ruby-2.3.0/bin/ruby -r ./siteconf20160827-41480-bih9j9.rb extconf.rb
creating Makefile

current directory: /Users/home/.rvm/gems/ruby-2.3.0/gems/json-1.8.1/ext/json/ext/generator
make "DESTDIR=" clean

current directory: /Users/home/.rvm/gems/ruby-2.3.0/gems/json-1.8.1/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
In file included from generator.c:1:
./../fbuffer/fbuffer.h:175:47: error: too few arguments provided to function-like macro invocation
    VALUE result = rb_str_new(FBUFFER_PAIR(fb));
                                              ^
/Users/home/.rvm/rubies/ruby-2.3.0/include/ruby-2.3.0/ruby/intern.h:797:9: note: macro 'rb_str_new' defined here
#define rb_str_new(str, len) __extension__ (    \
        ^
In file included from generator.c:1:
./../fbuffer/fbuffer.h:175:11: warning: incompatible pointer to integer conversion initializing 'VALUE' (aka 'unsigned long') with an expression of type 'VALUE (const char *, long)' (aka 'unsigned long (const char *, long)') [-Wint-conversion]
    VALUE result = rb_str_new(FBUFFER_PAIR(fb));
          ^        ~~~~~~~~~~
1 warning and 1 error generated.
make: *** [generator.o] Error 1

make failed, exit code 2

Here is my gem file:

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.6'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer',  platforms: :ruby

# allow pry debugging
gem 'pry-byebug'

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0',          group: :doc

# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring',        group: :development

# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

group :development do
  gem 'better_errors'
  gem 'binding_of_caller'
end

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

and here is my gemfile.lock:

jsoGEM
  remote: https://rubygems.org/
  specs:
    actionmailer (4.1.6)
      actionpack (= 4.1.6)
      actionview (= 4.1.6)
      mail (~> 2.5, >= 2.5.4)
    actionpack (4.1.6)
      actionview (= 4.1.6)
      activesupport (= 4.1.6)
      rack (~> 1.5.2)
      rack-test (~> 0.6.2)
    actionview (4.1.6)
      activesupport (= 4.1.6)
      builder (~> 3.1)
      erubis (~> 2.7.0)
    activemodel (4.1.6)
      activesupport (= 4.1.6)
      builder (~> 3.1)
    activerecord (4.1.6)
      activemodel (= 4.1.6)
      activesupport (= 4.1.6)
      arel (~> 5.0.0)
    activesupport (4.1.6)
      i18n (~> 0.6, >= 0.6.9)
      json (~> 1.7, >= 1.7.7)
      minitest (~> 5.1)
      thread_safe (~> 0.1)
      tzinfo (~> 1.1)
    arel (5.0.1.20140414130214)
    bcrypt (3.1.7)
    better_errors (2.0.0)
      coderay (>= 1.0.0)
      erubis (>= 2.6.6)
      rack (>= 0.9.0)
    binding_of_caller (0.7.2)
      debug_inspector (>= 0.0.1)
    builder (3.2.2)
    byebug (4.0.5)
      columnize (= 0.9.0)
    coderay (1.1.0)
    coffee-rails (4.0.1)
      coffee-script (>= 2.2.0)
      railties (>= 4.0.0, < 5.0)
    coffee-script (2.3.0)
      coffee-script-source
      execjs
    coffee-script-source (1.8.0)
    columnize (0.9.0)
    debug_inspector (0.0.2)
    erubis (2.7.0)
    execjs (2.2.2)
    hike (1.2.3)
    i18n (0.6.11)
    jbuilder (2.2.4)
      activesupport (>= 3.0.0, < 5)
      multi_json (~> 1.2)
    jquery-rails (3.1.2)
      railties (>= 3.0, < 5.0)
      thor (>= 0.14, < 2.0)
    json (1.8.1)
    mail (2.6.1)
      mime-types (>= 1.16, < 3)
    method_source (0.8.2)
    mime-types (2.4.3)
    minitest (5.4.2)
    multi_json (1.10.1)
    pry (0.10.1)
      coderay (~> 1.1.0)
      method_source (~> 0.8.1)
      slop (~> 3.4)
    pry-byebug (3.1.0)
      byebug (~> 4.0)
      pry (~> 0.10)
    rack (1.5.2)
    rack-test (0.6.2)
      rack (>= 1.0)
    rails (4.1.6)
      actionmailer (= 4.1.6)
      actionpack (= 4.1.6)
      actionview (= 4.1.6)
      activemodel (= 4.1.6)
      activerecord (= 4.1.6)
      activesupport (= 4.1.6)
      bundler (>= 1.3.0, < 2.0)
      railties (= 4.1.6)
      sprockets-rails (~> 2.0)
    railties (4.1.6)
      actionpack (= 4.1.6)
      activesupport (= 4.1.6)
      rake (>= 0.8.7)
      thor (>= 0.18.1, < 2.0)
    rake (10.3.2)
    rdoc (4.1.2)
      json (~> 1.4)
    sass (3.2.19)
    sass-rails (4.0.4)
      railties (>= 4.0.0, < 5.0)
      sass (~> 3.2.2)
      sprockets (~> 2.8, < 2.12)
      sprockets-rails (~> 2.0)
    sdoc (0.4.1)
      json (~> 1.7, >= 1.7.7)
      rdoc (~> 4.0)
    slop (3.6.0)
    spring (1.1.3)
    sprockets (2.11.3)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-rails (2.2.0)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      sprockets (>= 2.8, < 4.0)
    sqlite3 (1.3.10)
    thor (0.19.1)
    thread_safe (0.3.4)
    tilt (1.4.1)
    turbolinks (2.5.1)
      coffee-rails
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    uglifier (2.5.3)
      execjs (>= 0.3.0)
      json (>= 1.8.0)

PLATFORMS
  ruby

DEPENDENCIES
  bcrypt (~> 3.1.7)
  better_errors
  binding_of_caller
  coffee-rails (~> 4.0.0)
  jbuilder (~> 2.0)
  jquery-rails
  pry-byebug
  rails (= 4.1.6)
  sass-rails (~> 4.0.3)
  sdoc (~> 0.4.0)
  spring
  sqlite3
  turbolinks
  uglifier (>= 1.3.0)

I have tried commenting out gem 'jbuilder', '~> 2.0'

but I still get the same error.

Not sure what I'm doing wrong here besides that I think there might be some dependency issue because I don't even have json 1.8.1 in my gemfile. Thanks for the help.

Upvotes: 1

Views: 1047

Answers (1)

cutalion
cutalion

Reputation: 4394

According to this thread you might need to upgrade json to 1.8.3 in order to compile it with ruby 2.2 (I'm assuming you're using 2.2)

To update json, try to install it first with:

gem install json -v '1.8.3'

After that, update the json gem in you Gemfile with

bundle update json

If it won't work, than you probably need to update other gems in your Gemfile which require json < 1.8.3 (I can see sdoc (0.4.1) in the Gemfile.lock, for instance). Try to run bundle update (without params).

I'd also recommend to update bundler and rubygems.

Upvotes: 1

Related Questions