Cada pocos días esto sucederá al hacer varias cosas en Ruby CLI (especialmente, utilizando la knifeutilidad para Chef) en OS X (no se puede replicar en otros entornos; Linux, FreeBSD, etc.):
Ignoring bcrypt-3.1.7 because its extensions are not built. Try: gem pristine bcrypt-3.1.7
Ignoring bigdecimal-1.2.5 because its extensions are not built. Try: gem pristine bigdecimal-1.2.5
Ignoring ffi-yajl-1.1.0 because its extensions are not built. Try: gem pristine ffi-yajl-1.1.0
Ignoring gem-wrappers-1.2.5 because its extensions are not built. Try: gem pristine gem-wrappers-1.2.5
Ignoring gem-wrappers-1.2.4 because its extensions are not built. Try: gem pristine gem-wrappers-1.2.4
Ignoring pg-0.17.1 because its extensions are not built. Try: gem pristine pg-0.17.1
Ignoring psych-2.0.6 because its extensions are not built. Try: gem pristine psych-2.0.6
Ignoring sqlite3-1.3.9 because its extensions are not built. Try: gem pristine sqlite3-1.3.9
Y aunque es una solución simple, sigue sucediendo. ¿Alguien ha encontrado esto antes?
$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin11.2.0]

bundle installYou don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory, esos problemas comenzaron por su cuenta, ni siquiera estoy usando ruby por lo que sé. Pero recibo errores sobre las extensiones no creadas paraclocale-0.0.3cada vez que inicio un nuevo shellEn mi caso, empiezo a ver estos errores después de instalar
rvmResuelvo tal problema con:
gem pristine --allfuente
Este problema ocurre si una gema fue compilada contra un libruby diferente al que se está ejecutando actualmente. Por ejemplo, si uno usa un ruby ubicado en su directorio de inicio con chruby e instala gemas en ~ / .gem / ruby, pero ejecuta un script que llama a / usr / bin / ruby, que reutiliza las gemas instaladas allí. En este caso
gem pristine --allno ayudará, porque las gemas solo se pueden vincular contra una versión rubí.fuente
vendor/bundle, simplemente bórrelasrm -rf vendor/bundley vuelva a instalarlasbundle install.gem pristine --allhasta que meArreglé esto por:
https://github.com/rvm/rvm/issues/3348
fuente
Esto funcionó para mí en MacOs Sierra:
Ya había instalado todo el xcode antes de ejecutar los comandos anteriores, pero tuve que hacer esto de todos modos, tal vez porque el primer script actualiza algunas bibliotecas / dependencias internas.
fuente
Asegúrese de ejecutar "gem pristine --all" para la versión correcta de ruby. Si se llama a / usr / bin / ruby ... use "/ usr / bin / gem pristine --all". Esto no es obvio si está utilizando rvm y tiene 10 versiones de ruby instaladas.
Esto solucionó mi problema por un día y luego volvió.
Lo que parece ser una solución más permanente es hacer "rvm reset" para que el ruby predeterminado sea la versión OSX instalada / usr / bin / ruby y / usr / bin / gem. Si quiero usar una versión más nueva de ruby para un proyecto, uso .ruby-version y .ruby-gemset en el directorio raíz del proyecto para configurar explícitamente la versión de ruby que quiero usar. No es ideal ... pero debería hacer que este error desaparezca.
fuente
En mi caso:
rvm get stablesudo gem pristine --allfuente
Soy muy nuevo en los rieles, por lo que este podría ser un consejo completamente equivocado, pero como ninguna de las otras soluciones funcionó para mí, pensé en compartir el mío.
Mic92 y Gerry me pusieron en el camino correcto: estaba usando
rails sque puede causar errores porque ejecuta una versión de rieles que puede ser una versión diferente a la del proyecto.Traté de conectarme con
bin/rails server, obtuve un error diferente (gemas faltantes), así que corríbundle installEn este punto, recibí un tercer error ("versión de biblioteca incompatible"), que
spring stopcuró.Luego corrí
rails generate controllernuevamente, la primavera se reinició y todo funcionó (lloré un poco).fuente