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

35

Esto sucederá de vez en cuando al hacer varias cosas en Ruby CLI (en particular, usar la utilidad 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 si bien 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]
    
pregunta tony_perkis666 01.10.2014 - 18:53

8 respuestas

5

Hace poco cambié de rvm a chruby y ejecuté gem update --system , eso es cuando el problema comenzó a ocurrir para mí. Después de eso, en cualquier momento que ejecuté el paquete, fui sacrificado 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 solucionó, pero hice 2 cosas y la advertencia desapareció:

gem uninstall bundler
gem install bundler

gem install curb
    
respondido por el lfender6445 09.10.2014 - 17:38
60

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

Resuelvo este problema con: gem pristine --all

    
respondido por el skywinder 18.11.2014 - 14:19
19

Este problema ocurre, si una gema se compiló contra un libruby diferente como el que se está ejecutando actualmente. Por ejemplo, si uno usa un ruby ubicado en su directorio home con chruby e instala gemas en ~ / .gem / ruby, pero ejecuta un script que llama / usr / bin / ruby, que reutiliza las gemas instaladas allí. En este caso, gem pristine --all no ayudará, ya que las gemas solo se pueden vincular con una versión de rubí.

    
respondido por el Mic92 14.01.2015 - 22:04
5

He arreglado esto por:

rvm get stable

enlace

    
respondido por el Lenin Raj Rajasekaran 21.06.2015 - 09:10
2

Esto me funcionó 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 hacer esto de todos modos, tal vez porque el primer script actualiza algunas bibliotecas / dependencias internas.

    
respondido por el Javad Sadeqzadeh 17.09.2016 - 21:58
1

Asegúrate de que estás ejecutando "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á 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 de 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 establecer explícitamente la versión de ruby que quiero usar. No es ideal ... pero debería hacer que este error desaparezca.

    
respondido por el neuronsong 31.10.2017 - 22:15
0

En mi caso:

rvm get stable

sudo gem pristine --all

    
respondido por el skozz 26.03.2016 - 23:13
0

Soy muy nuevo en los rieles, por lo que este podría ser un consejo totalmente equivocado, pero como ninguna de las otras soluciones funcionó para mí, pensé que compartiría la mía.

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.

Intenté conectarme con bin/rails server , obtuve un error diferente (faltan gemas), así que corrí bundle install

En este punto obtuve un tercer error ("versión de biblioteca incompatible"), que spring stop curó.

Luego corrí rails generate controller otra vez, la primavera se reinició y todo funcionó (lloré un poco).

    
respondido por el mrtnmgs 24.05.2016 - 04:28

Lea otras preguntas en las etiquetas