39 votos

Ruby en OS X 10.9 Ignorando las gemas porque las extensiones no están construidas

Cada pocos días esto ocurrirá al hacer varias cosas en el CLI de Ruby (en particular, al usar el knife 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 sencilla, 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]

63voto

skywinder Puntos 605

En mi caso empiezo a ver estos errores después de instalar rvm

Resuelvo dicho problema con: gem pristine --all

1 votos

Qué comando tan útil

2 votos

Esto funcionó... Pero no tengo ni idea de por qué

1 votos

Desinstalar bundler e instalar no funcionó. ¡Pero este sí ha funcionado! ¡Gracias!

20voto

Mic92 Puntos 201

Este problema ocurre, si una gema fue compilada contra una libruby diferente a la que se está ejecutando actualmente. Por ejemplo, si uno utiliza un ruby ubicado en su directorio personal con chruby e instala gemas en ~/.gem/ruby, pero ejecuta un script que llama a /usr/bin/ruby, que reutiliza las gemas allí instaladas. En este caso gem pristine --all no servirá de nada, porque las gemas sólo pueden vincularse con una versión de ruby.

0 votos

Ahhhh ¡gracias! Estaba recibiendo ese error al ejecutar "rails s". Cambié a "bundle exec rails s" y el problema desapareció.

1 votos

Esta debería ser la respuesta aceptada

1 votos

Esta respuesta es correcta. Si el problema ocurre en un repositorio Rails donde las gemas se guardan en vendor/bundle , sólo hay que eliminarlos con rm -rf vendor/bundle y volver a instalarlos con bundle install .

5voto

Zifre Puntos 14109

Hace poco me cambié a de rvm a chruby y corrió gem update --system Es entonces cuando el problema comenzó a ocurrir para mí. Después de eso, cada vez que ejecutaba bundle era masacrado con las mismas advertencias. Todavía no estoy seguro de cuál fue la causa del 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 dos cosas y la advertencia desapareció:

gem uninstall bundler
gem install bundler

gem install curb

0 votos

Curiosamente, a mí me empezó a pasar cuando cambié del Ruby de OS X a RVM. Por lo general, desaparece por sí solo después de unos días o si abro una nueva sesión (lo cual es un poco molesto cuando ocurre a mediodía). Generalmente tengo que reinstalar lo que esté usando en un momento dado, y eso suele ser Knife.

0 votos

Esto ocurría con docenas de gemas en mi máquina. creo que sólo tenían que ser reconstruidas

0 votos

En mi caso, he tenido que desinstalar cada gema por la que daba un aviso y volver a instalarla con bundle install

5voto

Shanks Puntos 8

Lo he arreglado:

rvm get stable

https://github.com/rvm/rvm/issues/3348

0voto

Niels R. Puntos 1572

En mi caso:

rvm get stable

sudo gem pristine --all

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X