Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Json -v 1.8.6 will not install as part of capistrano deploy

This question has been asked a couple of times on stackoverflow and other forums but I can't seem to get passed this error that I am getting. When I run capistrano production deploy, I get this error as part of the deploy process.

cap production bundler:install
00:00 bundler:install
      01 bundle install --path /var/local/blackduck_flock_rails/shared/bundle --without development test --deployme…
      01 An error occurred while installing json (1.8.6), and Bundler cannot continue.
      01 Make sure that `gem install json -v '1.8.6'` succeeds before bundling.
(Backtrace restricted to imported tasks)
cap aborted!


SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: bundle exit status: 5
bundle stdout: An error occurred while installing json (1.8.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.6'` succeeds before bundling.
bundle stderr: Nothing written


Tasks: TOP => bundler:install
(See full trace by running task with --trace)

I've taken a look at my log/capistrano.log file and here are the relevant contents that I was looking at to trouble shoot.

# Logfile created on 2017-05-03 14:42:16 -0400 by logger.rb/54072


INFO ---------------------------------------------------------------------------
  INFO START 2017-05-03 14:42:16 -0400 cap production bundler:install
  INFO ---------------------------------------------------------------------------
 DEBUG [ec1d281e] Running if test ! -d /var/local/blackduck_flock_rails/current; then echo "Directory does not exist '/var/local/blackduck_flock_rails/current'" 1>&2; false; fi as [email protected]
 DEBUG [ec1d281e] Command: if test ! -d /var/local/blackduck_flock_rails/current; then echo "Directory does not exist '/var/local/blackduck_flock_rails/current'" 1>&2; false; fi
 DEBUG [ec1d281e] Finished in 0.328 seconds with exit status 0 (successful).
 DEBUG [4f633904] Running /usr/bin/env bundle check --path /var/local/blackduck_flock_rails/shared/bundle as [email protected]
 DEBUG [4f633904] Command: cd /var/local/blackduck_flock_rails/current && /usr/bin/env bundle check --path /var/local/blackduck_flock_rails/shared/bundle
 DEBUG [4f633904]   Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
 DEBUG [4f633904]   The following gems are missing
 * json (1.8.6)
 * tzinfo (1.2.2)
 * activesupport (4.2.6)

 etc. etc..........


 DEBUG [4f633904]    * uglifier (3.0.4)

DEBUG [4f633904]    Install missing gems with `bundle install`
 DEBUG [4f633904] Finished in 0.179 seconds with exit status 1 (failed).
  INFO [6c99e662] Running /usr/bin/env bundle install --path /var/local/blackduck_flock_rails/shared/bundle --without development test --deployment --quiet as [email protected]
 DEBUG [6c99e662] Command: cd /var/local/blackduck_flock_rails/current && /usr/bin/env bundle install --path /var/local/blackduck_flock_rails/shared/bundle --without development test --deployment --quiet
 DEBUG [6c99e662]   An error occurred while installing json (1.8.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.6'` succeeds before bundling.

So the first thing to note. The log is telling me that the running version of bundler is out of date and that I should install the newest one. Here is what I don't understand though. On my developing machine, I have Bundler version 1.14.6. On the targeting server that I am trying to deploy to, I also have Bundler version 1.14.6. I've confirmed it on both machines and they are indeed the same. Second, I have the same ruby versions for both developing machine and target machine. The ruby version is 2.2.5.

Second, when I run gem list on the target server, I can see that json 1.8.6 is installed.

json (1.8.3, 1.8.1)

What gives?

Finally, the problem has to be in this directory on the target machine /var/local/blackduck_flock_rails/shared/bundle. Inside the bundle directory, I have a ruby folder that has 1.9.1 and 2.2.0. Could this be the source of the problem. I'm stumped on this one and it seems that questions like these always relate to something specific on someone's machine that won't necessarily be applied. Help would be greatly appreciated.

like image 299
Dan Rubio Avatar asked May 03 '17 18:05

Dan Rubio


1 Answers

The most probable cause is you're missing some system dependencies that capistrano cannot install.

Ssh to your server and try installing sudo apt-get install libgmp3-dev

If it doesn't fix the problem, ssh again and run the gem install json -v '1.8.6' as it tells you and post the error message you get from it here.

like image 188
ddgd Avatar answered Sep 22 '22 14:09

ddgd