Ruby su OS X 10.9 Ignorare le gemme perché le estensioni non sono costruite

35

Ogni pochi giorni ciò accade quando si eseguono varie operazioni in Ruby CLI (in particolare, utilizzando l'utilità knife per Chef) su OS X (impossibile replicare in altri ambienti: Linux, FreeBSD, ecc.):

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

E mentre è una soluzione semplice, continua a succedere. Qualcuno l'ha mai visto prima?

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin11.2.0]
    
posta tony_perkis666 01.10.2014 - 18:53
fonte

8 risposte

5

Recentemente sono passato da rvm a chruby e ho eseguito gem update --system , questo è il momento in cui il problema si è verificato per me. Successivamente, ogni volta che ho eseguito il bundle, sono stato macellato con gli stessi avvertimenti. Ancora non sono sicuro quale sia la causa del problema.

Ignoring curb-0.8.6 because its extensions are not built. Try: gem pristine curb-0.8.6

Non sono sicuro di cosa sia stato risolto, ma ho fatto 2 cose e l'avviso è scomparso:

gem uninstall bundler
gem install bundler

gem install curb
    
risposta data 09.10.2014 - 17:38
fonte
60

Nel mio caso, comincio a vedere questi errori dopo aver installato rvm

Risolvo questo problema con: gem pristine --all

    
risposta data 18.11.2014 - 14:19
fonte
19

Questo problema si verifica, se una gemma è stata compilata su una libreria diversa come quella attualmente in esecuzione. Ad esempio, se si usa un rubino nella sua home directory con chruby e si installano gemme in ~ / .gem / ruby, si esegue uno script che chiama / usr / bin / ruby, che riutilizza le gemme installate lì. In questo caso gem pristine --all non sarà di aiuto, perché le gem possono essere collegate solo a una versione ruby.

    
risposta data 14.01.2015 - 22:04
fonte
5

Ho risolto questo problema:

rvm get stable

link

    
risposta data 21.06.2015 - 09:10
fonte
2

Questo ha funzionato per me su MacOs Sierra:

xcode-select --install
gem install nokogiri

Avevo già installato l'intero xcode prima di eseguire i comandi precedenti, ma dovevo farlo comunque, forse perché il primo script aggiorna alcune librerie / dipendenze interne.

    
risposta data 17.09.2016 - 21:58
fonte
1

Assicurati di eseguire "gem pristine --all" per la versione giusta di ruby. Se viene chiamato / usr / bin / ruby ... usa "/ usr / bin / gem pristine --all". Questo non è ovvio se stai usando rvm e hai 10 versioni di ruby installate.

Questo ha risolto il mio problema per un giorno e poi è tornato.

Ciò che sembra essere una soluzione più permanente è fare "rvm reset" affinché il ruby predefinito sia la versione OSX installata / usr / bin / ruby e / usr / bin / gem. Se voglio usare una versione più recente di ruby per un progetto, uso .ruby-version e .ruby-gemset nella directory root del progetto per impostare esplicitamente la versione di ruby che voglio usare. Non ideale ... ma dovrebbe far sparire questo errore.

    
risposta data 31.10.2017 - 22:15
fonte
0

Nel mio caso:

rvm get stable

sudo gem pristine --all

    
risposta data 26.03.2016 - 23:13
fonte
0

Sono molto nuovo alle guide, quindi questo potrebbe essere un consiglio completamente fuorviante, ma dal momento che nessuna delle altre soluzioni ha funzionato per me ho pensato di condividere il mio.

Mic92 e Gerry mi hanno messo sulla strada giusta: stavo usando rails s che può causare errori perché esegue una versione di rota che può essere una versione diversa da quella del progetto.

Ho provato a connettermi con bin/rails server , ho ricevuto un errore diverso (gemme mancanti), quindi ho eseguito bundle install

A questo punto ho ricevuto un terzo errore ("versione della libreria incompatibile"), che spring stop ha risolto.

Poi ho eseguito nuovamente rails generate controller , riavviato a molla e tutto ha funzionato (ho pianto un po ').

    
risposta data 24.05.2016 - 04:28
fonte

Leggi altre domande sui tag