Gem :: Ext :: BuildError: ERREUR: Echec de la construction de l'extension native gem Bcrypt-Ruby

Je fais une application rails, et juste mis à jour pour Yosemite, et je pense que tout a éclaté au cours de cette mise à jour. Tout fonctionnait hier soir, quand j'ai vérifié dans tout mon code pour github. J'ai mis à jour mon ordinateur la nuit dernière à Yosemite. Aujourd'hui j'ai couru gem install bcrypt-ruby et tout cassé. J'ai, par

  1. couru xcodebuild -license
  2. mis à jour bundler
  3. couru brew install rbenv ruby-build rbenv-gem-rehash pour obtenir la dernière version de ruby
  4. couru brew install coreutils

Qui ne fonctionne pas bien.

environnement: OSX Yosemite 10.10rbenv 0.4.0ruby 2.1.3p242 (2014-09-19 révision 47630) [x86_64-darwin14.0], le bistrot 0.9.5`

La source de l'erreur est de mon application rails:

gemfile

gem 'rails', '4.1.5'
gem 'pg' 
gem 'uglifier', '>= 1.3.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'spring',        group: :development
gem 'bcrypt-ruby'

group :test, :development do
  gem 'rspec-rails', "~> 2.14"
end
group :test do
  gem 'capybara', "2.1.0"
  gem 'factory_girl_rails', '~> 4.2.1'
end

J'ai obtenu l'erreur quand j'ai couru bundle install. On a la trace de la pile (tous les /users// est de prendre le nom 😉

 Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users//.rbenv/versions/2.0.0-p247/bin/ruby -r ./siteconf20141027-60319-1lss4fm.rb extconf.rb 
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling bcrypt_ext.c
couldn't understand kern.osversion `14.0.0'
In file included from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby.h:33,
from bcrypt_ext.c:1:
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:51:21: error: string.h: No such file or directory
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:61:21: error: stdint.h: No such file or directory
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:64:23: error: inttypes.h: No such file or directory
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:68:19: error: stdio.h: No such file or directory
In file included from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:70,
from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby.h:33,
from bcrypt_ext.c:1:
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/defines.h:29:21: error: stdlib.h: No such file or directory
In file included from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:194,
from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby.h:33,
from bcrypt_ext.c:1:
/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/../lib/gcc/i686-apple-darwin11/4.2.1/include/limits.h:10:25: error: limits.h: No such file or directory
In file included from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:1567,
from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby.h:33,
from bcrypt_ext.c:1:
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/missing.h:23:45: error: math.h: No such file or directory
In file included from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:1568,
from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby.h:33,
from bcrypt_ext.c:1:
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:36:23: error: sys/types.h: No such file or directory
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:40:22: error: sys/time.h: No such file or directory
In file included from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:43,
from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:1568,
from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby.h:33,
from bcrypt_ext.c:1:
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/st.h:140: error: expected declaration specifiers or ‘...’ before uint32_t
In file included from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/ruby.h:1568,
from /Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby.h:33,
from bcrypt_ext.c:1:
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:326: error: expected ‘=’, ‘,’, ‘;’, asm or __attribute__ before rb_fdset_t
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:416: error: expected declaration specifiers or ‘...’ before fd_set
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:416: error: expected declaration specifiers or ‘...’ before fd_set
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:416: error: expected declaration specifiers or ‘...’ before fd_set
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:416: warning: struct timeval declared inside parameter list
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:416: warning: its scope is only this definition or declaration, which is probably not what you want
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:417: error: expected declaration specifiers or ‘...’ before rb_fdset_t
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:417: error: expected declaration specifiers or ‘...’ before rb_fdset_t
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:417: error: expected declaration specifiers or ‘...’ before rb_fdset_t
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:417: warning: struct timeval declared inside parameter list
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:418: warning: struct timeval declared inside parameter list
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:514: error: expected declaration specifiers or ‘...’ before mode_t
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:593: error: expected declaration specifiers or ‘...’ before pid_t
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:607: error: expected ‘=’, ‘,’, ‘;’, asm or __attribute__ before rb_fork
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:608: error: expected ‘=’, ‘,’, ‘;’, asm or __attribute__ before rb_fork_err
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:610: error: expected ‘=’, ‘,’, ‘;’, asm or __attribute__ before rb_waitpid
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:611: error: expected ‘)’ before pid
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:612: error: expected ‘=’, ‘,’, ‘;’, asm or __attribute__ before rb_spawn
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:613: error: expected ‘=’, ‘,’, ‘;’, asm or __attribute__ before rb_spawn_err
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:615: error: expected ‘)’ before pid
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:728: error: expected declaration specifiers or ‘...’ before uint32_t
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:851: error: expected ‘)’ before long
/Users//.rbenv/versions/2.0.0-p247/include/ruby-2.0.0/ruby/intern.h:852: error: expected ‘)’ before long
bcrypt_ext.c: In function bc_salt’:
bcrypt_ext.c:21: warning: incompatible implicit declaration of built-in function strlen
make: *** [bcrypt_ext.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users//ticket_tracker/vendor/bundle/gems/bcrypt-3.1.9 for inspection.
Results logged to /Users//ticket_tracker/vendor/bundle/extensions/x86_64-darwin-12/2.0.0-static/bcrypt-3.1.9/gem_make.out
An error occurred while installing bcrypt (3.1.9), and Bundler cannot continue.
Make sure that `gem install bcrypt -v '3.1.9'` succeeds before bundling.

Si quelqu'un a de l'expérience mise à jour OSX, Rbenv, Ruby, etc et peut me donner quelques conseils, ce serait très apprécié. Je peux aussi poster plus de code, de l'environnement mis en place si nécessaire.

source d'informationauteur user3749994