Tanto en mi trabajo como en mi casa, recientemente actualicé Ruby a 2.3.1, usando ruby-install
. Lo uso chruby
como 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 GEM
y eso lo resolvió.
En casa, nada funciona.
Cosas que he intentado, desde el sentido común y otras preguntas de Stack:
gem pristine GEM
gem pristine --all
- desinstalar y reinstalar la gema
gem update
gem update --system
bundle update
- desinstalar y reinstalar
bundler
- desinstalar y reinstalar
rails
(aunque no es un problema específico de Rails). - borrando
~/.bundle/
- abrir
XCode
y dejar que instale algunas extensiones (necesitaba hacerlo, pero no solucionó nada). - ejecutar
brew doctor
y resolver todos los problemas menores, luegobrew update
ybrew 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).
bcrypt
y todavía me dio dos advertencias al respecto.gem pristine --all
no funcionó. Se resuelve eliminando todas las gemas, incluido el paquete. Luego instalé el paquetegem install bundler
y finalmente volví a mi proyecto y ejecuté, lobundle install
que 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 --all
todos resolvió el problema.fuente
gem pristine --all
no servirá de nada. Vea esta respuesta en Preguntar diferente para más información.gem pristine --all
tiene problemas de permisos, debe verificarwhich ruby
.brew link --overwrite ruby && source ~/.bash_profile
y corrergem pristine --all
puede 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
gem
comando 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 COMMAND
arrojará el error sobreminitest
gem, así que ...gem install minitest
fuente
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 --all
cada 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 --all
de todos ellos corriendo . Gracias por resucitar esta pregunta muerta. Estaba cerca de quemarlo todo y comenzar de nuevo.Agregando mi propio sabor aquí. Utilizo
rbenv
instalado 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 rbenv
rm -rf ~/.rbenv
brew install rbenv
En 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 --all
pero 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
rehash
ohash -r
para 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
tmux
usar la sesióntmuxinator
.Resultó que es porque estoy usando
tmuxinator
desde enbrew
lugar de instalarlo usandogem install
. Quizás el usochruby
al mismo tiempo también contribuyó al problema.p / s: también eliminé el rubí no utilizado,
~/.gem/ruby
pero dudo que esa sea la razón por la que este problema se resolvió por mí.fuente
Al
gem pristine --all
principio no funcionó, pero luego me di cuenta: el script que estaba ejecutando comenzó con la línea:#!/usr/bin/ruby
En 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 --all
estaba 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
env
comando 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 ruby
fuente
bundle install
instaló 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 tmuxinator
y luego logem install tmuxinator
hizo 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.7
Y, 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.tool
secuencia 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 --all
pero estaba obteniendo:Luego, eliminé el contenido
Users/{{user.name}}/.gem
cuando lo necesitaba para ejecutarbundle install --force
, reinstalé todo, luego el comandopristine --all
funcionó como se esperabafuente
Esta solución me funcionó para RubyMine IntelliJ
Tenía dos terminales diferentes en uso y
RVM
yruby<Version>
.Solución:
Tuve que cambiarlo a la versión RVM para que los errores desaparecieran en
Preferences>Languages&Frameworks>Ruby SDK
Errores:
fuente