Cada pocos días, esto sucederá al hacer varias cosas en Ruby CLI (en particular, usar 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 ocurriendo. ¿Alguien se ha encontrado con esto antes?
$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin11.2.0]
Recientemente cambié de rvm
a chruby
y ejecuté gem update --system
, ahí fue cuando comenzó a ocurrirme el problema. Después de eso, cada vez que corría el paquete, me mataban con las mismas advertencias. Todavía no estoy seguro de qué causó el problema.
Ignoring curb-0.8.6 because its extensions are not built. Try: gem pristine curb-0.8.6
No estoy seguro de qué lo arregló, pero hice 2 cosas y la advertencia desapareció:
gem uninstall bundler
gem install bundler
gem install curb
En mi caso empiezo a ver estos errores después de instalarrvm
Resuelvo tal problema con:gem pristine --all
Este problema ocurre si una gema se compiló en una biblioteca diferente a la 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 de rubí.
vendor/bundle
, simplemente elimínelas con rm -rf vendor/bundle
y vuelva a instalarlas con bundle install
.gem pristine --all
hasta que estaba azul en la cara y ahora sé por qué no funcionó...Esto funcionó para mí en MacOs Sierra:
xcode-select --install
gem install nokogiri
Ya había instalado todo el xcode antes de ejecutar los comandos anteriores, pero tenía que hacerlo de todos modos, quizás porque el primer script actualiza algunas bibliotecas/dependencias internas.
Asegúrese de ejecutar "gem prístine --all" para obtener la versión correcta de Ruby. Si se está llamando a /usr/bin/ruby... use "/usr/bin/gem pristine --all". Esto no es obvio si está usando 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 lo ideal... pero debería hacer que este error desaparezca.
En mi caso:
rvm get stable
sudo gem pristine --all
Soy muy nuevo en Rails, por lo que este podría ser un consejo completamente equivocado, pero dado que ninguna de las otras soluciones funcionó para mí, pensé en compartir la mía.
Mic92 y Gerry me pusieron en el camino correcto: estaba usando rails s
which can cause 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 se spring stop
solucionó.
Luego volví a correr rails generate controller
, la primavera se reinició y todo funcionó (lloré un poco).
Lo que significa este error es que no puede usar la versión actual de la gema. Se instaló con un ejecutable de Ruby más antiguo, y/u otras utilidades y binarios del sistema han cambiado, por lo que es necesario volver a instalar completamente la gema desde cero. Esto me sucedió cuando migré de Ruby 2.5.3 a Ruby 2.7.1. Había transferido todas mis gemas de la versión anterior (a través rvm migrate
de ), pero ahora estaban rotas. Todas mis gemas tuvieron que ser reconstruidas de acuerdo con las dependencias 2.7.1. Así que tuve que eliminar por completo todas mis gemas a través de rvm gemset empty ruby-2.7.1
. Cuando eso suceda, imprimirá una lista de todas las gemas que se instalaron. Copie y pegue esa salida en un archivo seguro, que puede volver a consultar más tarde para reinstalar las gemas que necesita para instalar un entorno verdaderamente limpio para su nueva versión de Ruby.
tony_perkis666
lfender6445
Noah Passalacqua
bundle install
B siete
Solicitud de vado
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory
, esos problemas comenzaron por sí solos, ni siquiera estoy usando Ruby por lo que sé. Pero recibo errores sobre extensiones no creadasclocale-0.0.3
cada vez que comienzo un nuevo shell