Cada pocos días esto sucederá al hacer varias cosas en Ruby CLI (especialmente, utilizando la knife
utilidad 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 install
You 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.3
cada vez que inicio un nuevo shellEn mi caso, empiezo a ver estos errores después de instalar
rvm
Resuelvo tal problema con:
gem pristine --all
fuente
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 --all
no ayudará, porque las gemas solo se pueden vincular contra una versión rubí.fuente
vendor/bundle
, simplemente bórrelasrm -rf vendor/bundle
y vuelva a instalarlasbundle install
.gem pristine --all
hasta 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 stable
sudo gem pristine --all
fuente
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 s
que 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 install
En este punto, recibí un tercer error ("versión de biblioteca incompatible"), que
spring stop
curó.Luego corrí
rails generate controller
nuevamente, la primavera se reinició y todo funcionó (lloré un poco).fuente