Tanto en mi trabajo como en mi casa, recientemente actualicé Ruby a 2.3.1, usando ruby-install. Lo uso chrubycomo mi conmutador Ruby.
Empecé a ver esta advertencia en mi terminal:
Ignoring bcrypt-3.1.11 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.11
Ignoring bcrypt-3.1.10 because its extensions are not built. Try: gem pristine bcrypt --version 3.1.10
Ignoring binding_of_caller-0.7.2 because its extensions are not built. Try: gem pristine binding_of_caller --version 0.7.2
Ignoring byebug-9.0.5 because its extensions are not built. Try: gem pristine byebug --version 9.0.5
Ignoring byebug-5.0.0 because its extensions are not built. Try: gem pristine byebug --version 5.0.0
Ignoring concurrent-ruby-ext-1.0.2 because its extensions are not built. Try: gem pristine concurrent-ruby-ext --version 1.0.2
Ignoring debug_inspector-0.0.2 because its extensions are not built. Try: gem pristine debug_inspector --version 0.0.2
En mi trabajo, computadora, la lista era mucho más larga, pero fácil de resolver. Cuando probé lo sugerido gem pristine GEM, me dijo que no podía encontrar la gema, así que corrí gem install GEMy eso lo resolvió.
En casa, nada funciona.
Cosas que he intentado, desde el sentido común y otras preguntas de Stack:
gem pristine GEMgem pristine --all- desinstalar y reinstalar la gema
gem updategem update --systembundle update- desinstalar y reinstalar
bundler - desinstalar y reinstalar
rails(aunque no es un problema específico de Rails). - borrando
~/.bundle/ - abrir
XCodey dejar que instale algunas extensiones (necesitaba hacerlo, pero no solucionó nada). - ejecutar
brew doctory resolver todos los problemas menores, luegobrew updateybrew upgrade gem install curb(No puedo imaginar lo que esta gema tiene que ver con este problema, pero dos personas diferentes lo enumeraron como el último paso de su solución a la misma advertencia).

bcrypty todavía me dio dos advertencias al respecto.gem pristine --allno funcionó. Se resuelve eliminando todas las gemas, incluido el paquete. Luego instalé el paquetegem install bundlery finalmente volví a mi proyecto y ejecuté, lobundle installque reinstaló todas mis gemas y todo está funcionandoRespuestas:
Encontré este problema exacto hoy: ¡recibí advertencias como esta para gemas que ni siquiera estaban instaladas!
... Bueno, resulta que las gemas estaban instaladas, por un rubí diferente al que había activado con chruby (2.2.3 vs 2.3.1).
Cambiar a todos los diferentes rubíes y ejecutarlos
gem pristine --alltodos resolvió el problema.fuente
gem pristine --allno servirá de nada. Vea esta respuesta en Preguntar diferente para más información.gem pristine --alltiene problemas de permisos, debe verificarwhich ruby.brew link --overwrite ruby && source ~/.bash_profiley corrergem pristine --allpuede ayudarMe encontré con este problema y seguí los mismos comandos que el anterior, incluso llegando a eliminar todas mis versiones de Ruby instaladas anteriormente. Sin embargo, el error persistió.
Resulta que había algunas gemas sobrantes para las diversas versiones (previamente desinstaladas) en
~/.gem/ruby/. Después de eliminar las carpetas que ya no usaba, los errores desaparecieron.fuente
También tuve este problema hoy y me frustraba porque no podía escribir porque todo mi editor parpadeaba en rojo con mensajes de error.
No estoy completamente seguro de qué lo causó exactamente, pero creo que es porque tenemos varias versiones de rubí O múltiples administradores de versiones de rubí instalados y se sobrescriben entre sí y de lo contrario arruinan sus caminos hacia las gemas.
El
gemcomando también se sobrescribe cuando tienes rbenv y rvm.Vea cuáles instaló escribiendo;
Si uno de esos está instalado, devolverá una ruta. Luego elimínelos, asegúrese de limpiar completamente todos los directorios y comience con una instalación limpia.
Eliminar
Esto es lo que hice para rvm ;
Esto es lo que hice por rbenv
Primero instaló https://github.com/meowsus/rbenv-clean , luego
Reinstalar
Entonces tiene un directorio de inicio limpio para trabajar. Reinstalé rbenv con Cómo instalar Ruby 2.1.4 en Ubuntu 14.04 . Y finalmente;
fuente
Hice todo lo mencionado anteriormente, incluyendo
Pero el problema era el mismo para mí. Acabo de reiniciar mi Mac como la última esperanza, y los mensajes de advertencia han desaparecido.
Extraño, pero si alguien tiene problemas con este problema después de probar todo en StackOverflow, intente reiniciar su máquina.
fuente
Si ha instalado RVM, es posible que esté captando el error porque ha instalado diferentes versiones.
Verifique y elimine versiones inútiles, pero creo que este no es un buen enfoque. De todos modos los errores desaparecieron.
Después de actualizar los cacaopods, debe inyectarse en .rvm GEM_HOME
Probablemente
pod COMMANDarrojará el error sobreminitestgem, así que ...gem install minitestfuente
TL; DR: a las gemas de Ruby no les gustan los Rubies que se ejecutan desde enlaces simbólicos o se trasladaron desde donde se construyeron (debido a shebangs incrustados)
Si se invoca el directorio de Ruby o los vars del entorno apuntan a un directorio enlazado con un enlace simbólico, o se copian o cambian de nombre, es probable que aparezca este mensaje. Estoy usando chruby y estaba simpatizando
/opt/rubies/->/usr/local/ruby/, pero la lógica dinámica de búsqueda de bibliotecas de Ruby no funciona bien con esto.La solución en mi caso fue reemplazar el enlace simbólico con rubíes reales
/opt/rubies/y ejecutargem pristine --allcada Ruby. Para otros que usan RVM o Rbenv, buena suerte con eso sin comenzar desde cero.Puede que este no sea su problema exacto, pero espero que ayude.
fuente
gem pristine --allde todos ellos corriendo . Gracias por resucitar esta pregunta muerta. Estaba cerca de quemarlo todo y comenzar de nuevo.Agregando mi propio sabor aquí. Utilizo
rbenvinstalado a través de Homebrew y recibí cuatro de estos mensajes "ignorando ... extensiones no compiladas". Específicamente:Intenté muchas cosas en este hilo sin suerte. Finalmente en mi caso hice:
brew uninstall rbenvrm -rf ~/.rbenvbrew install rbenvEn este punto todavía recibía los errores, pero ahora solo tenía una versión de Ruby con la que lidiar:
En este punto lo intenté
sudo gem pristine --allpero fue rechazado por los permisos en el directorio de Gemas del sistema.Así que fui y corrí impecable en cada gema, como
sudo gem pristine bcrypt --version 3.1.12(etc.)Y finalmente los errores se fueron.
fuente
Este es un hilo viejo, pero acabo de encontrarme con este problema.
No necesita reiniciar su máquina, solo necesita actualizar su entorno, puede hacerlo con el comando rehash:
Desde la página del manual:
rehash command re-computes the internal hash table of the contents of directories listed in the path environmental variable to account for new commands added.fuente
rehashohash -rpara bash es un comando de shell disponible en * nix. Cuando se inicia el shell C, crea una tabla hash de todos los comandos en su ruta: cada nombre de comando y su ruta absoluta. Entonces, después de comenzar a ejecutar un csh, si se agregan nuevos programas a los directorios a lo largo de la ruta, debe usar el comando rehash del shell para reconstruir su tabla hash. (cf: docstore.mik.ua/orelly/unix3/upt/ch27_06.htm )Tuve este problema pero solo cuando comencé a
tmuxusar la sesióntmuxinator.Resultó que es porque estoy usando
tmuxinatordesde enbrewlugar de instalarlo usandogem install. Quizás el usochrubyal mismo tiempo también contribuyó al problema.p / s: también eliminé el rubí no utilizado,
~/.gem/rubypero dudo que esa sea la razón por la que este problema se resolvió por mí.fuente
Al
gem pristine --allprincipio no funcionó, pero luego me di cuenta: el script que estaba ejecutando comenzó con la línea:#!/usr/bin/rubyEn mi sistema macOS (Catalina, pero no creo que importe), esto apunta al Ruby que vino con el sistema, no al que instaló RVM. Ejecutar
gem pristine --allestaba arreglando la instalación de RVM, pero mi script estaba llamando a una versión diferente de Ruby.La solución para mí fue usar el
envcomando para llamar a cualquier Ruby especificado en el shell actualPATH. Al cambiar la línea superior del script a esto, se solucionó:#!/usr/bin/env rubyfuente
bundle installinstaló las gemas (y sus extensiones nativas) para un ruby seleccionado a través del conmutador RVM Ruby, donde un script que hace referencia al sistema Ruby no puede encontrarlos. Su solución es la práctica estándar para hacer que los scripts y gemas de Ruby funcionen con los rubíes instalados por el usuario ( consulte ).apt purge tmuxinatory luego logem install tmuxinatorhizo funcionar. Probablemente tendré que instalarlo cada vez que actualice mi versión ruby que no sea de proyecto, pero me gusta más. ¡Gracias!Ejecutando Mac OS Catalina, brew y rbenv ...
Habiendo encontrado este problema exacto hoy, y revisado todas las respuestas aquí, finalmente encontré otra razón para este error:
Ignoring nokogiri 1.10.7 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.7Y, por supuesto, la gema prístina no funcionó.
Mi problema era un GEM_HOME y GEM_PATH variables de entorno codificadas que anulaban rbenv.
Por lo tanto, verifique que no haya configurado GEM_PATH y GEM_HOME en ~ / .zshrc
fuente
La desinstalación y reinstalación de Vagrant también funciona. Hay un
unistall.toolsecuencia de comandos bash incluida en la imagen del instalador .dmg que eliminará Vagrant.Encontré esta solución aquí: Actualización de extensiones de gemas y vagabundos no incorporadas
fuente
Tuve el mismo problema y estoy usando rbenv. Por alguna razón, mi configuración global de rbenv se perdió. Para solucionar este problema, configuré la versión global en una de mis versiones de rbenv ... por ejemplo:
rbenv global 2.5.1
fuente
Esto también es un problema cuando está desarrollando en Mac y luego crea una imagen Docker: https://forums.aws.amazon.com/thread.jspa?messageID=879802&tstart=0
fuente
La sugerencia de Libby de comenzar una nueva sesión terminal (que comentó sobre la respuesta de Sebastian Kim) funcionó para mí. Mucho más rápido que cualquiera de los otros también, así que quería darle una respuesta para que fuera más visible.
fuente
En mi caso, estaba tratando de correr
pristine --allpero estaba obteniendo:Luego, eliminé el contenido
Users/{{user.name}}/.gemcuando lo necesitaba para ejecutarbundle install --force, reinstalé todo, luego el comandopristine --allfuncionó como se esperabafuente
Esta solución me funcionó para RubyMine IntelliJ
Tenía dos terminales diferentes en uso y
RVMyruby<Version>.Solución:
Tuve que cambiarlo a la versión RVM para que los errores desaparecieran en
Preferences>Languages&Frameworks>Ruby SDKErrores:
fuente