2014-12-12 8 views
5

Non sono un esperto di Ruby ma ho voluto capire cosa sta succedendo mentre sto cercando di far funzionare la bussola in un'app nodo ma il mio Ruby sembra rotto. Digitando:Problema con le gemme di Ruby (interrotte?) Cercando di far funzionare la bussola in nm

ruby --version 

mi fa:

ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] 

Ho Homebrew installato e ha avuto in precedenza problemi con le versioni di Ruby, ma sembra che sia installato e funzionante. Tuttavia quando entro in una richiesta con la gemma ottengo questo errore:

$ gem -h 
Error loading RubyGems plugin "/Users/user_dir/.rvm/gems/[email protected]/gems/executable-hooks-1.3.1/lib/rubygems_plugin.rb": dlopen(/Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method 
Referenced from: /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle 
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib 
in /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle (LoadError) 
Error loading RubyGems plugin "/Users/user_dir/.rvm/gems/[email protected]/gems/gem-wrappers-1.2.4/lib/rubygems_plugin.rb": dlopen(/Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method 
Referenced from: /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle 
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib in /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle (LoadError) 
RubyGems is a sophisticated package manager for Ruby. This is a 
basic help message containing pointers to more information. 

Usage: 
    gem -h/--help 
    gem -v/--version 
    gem command [arguments...] [options...] 

Examples: 
    gem install rake 
    gem list --local 
    gem build package.gemspec 
    gem help install 

Further help: 
    gem help commands   list all 'gem' commands 
    gem help examples   show some examples of usage 
    gem help platforms   show information about platforms 
    gem help <COMMAND>   show help on COMMAND 
           (e.g. 'gem help install') 
    gem server     present a web page at 
           http://localhost:8808/ 
           with info about installed gems 
Further information: 
    http://guides.rubygems.org 

ho notato il riferimento a OpenSSL, ma non riusciva a trovare eventuali problemi on-line di questo.

Ho provato a installare la bussola su npm e RVM e Homebrew, quindi, al momento, non so quali versioni vengono utilizzate e da dove cominciare a provare a risolvere il problema.

Se si conosce il problema, fatemelo sapere o se sono necessarie ulteriori informazioni sul mio sistema.

Ho visto: "Ruby Bundle Symbol not found: _SSLv2_client_method (LoadError)" e "Error loading RubyGems plugin ,openssl.bundle (LoadError)".

Non ho aggiunto tag npm o nodo in quanto sono abbastanza sicuro che si tratti di un problema di Ruby, ma l'ho lasciato nella domanda poiché ho provato a installare anche la bussola.

Ho provato a correggere RVM, Homebrew ecc., Ma è ancora rotto.

risposta

7

EDIT:

ho finalmente scoperto che RVM ha una versione di default, così ogni volta che ho installato una nuova versione sarebbe tornare alla vecchia (credo che questo aveva errori che è il motivo per cui non l'ho fatto nota il problema della versione).

Se vai a:

~/.rvm/gems/ 

Ci sarà un elenco delle versioni rubino e una cartella predefinita in alto. A seguito di this page e inserimento:

rvm --default use 2.1.5 

fissa i miei problemi (per ora ...)

ORIGINALE:

Ho provato un sacco di cose diverse, ma alla fine ho convinto per lavorare, ho rotto questo rispondi alla lista delle cose che penso possano aver contribuito al risultato dato che c'erano molte cose che non funzionavano.

This answer a una domanda SO che ho trovato mi ha portato su questa strada.

ho reinstallato rubino, ma perché la versione nella risposta (1.9.3) è stato più vecchio di 2.1.1p76 Ho appena entrato:

rvm get stable 

poi:

rvm reinstall ruby 

questo mi ha tenuto su 2.1 .1p76, quindi:

rvm gemset pristine 

gemma aggiornato a 2.4.3

Questo bit è strano, ma poi ho provato ad installare la bussola in NPM e ha funzionato, ma ancora non correre, poi controllando la mia versione rubino ancora una volta ha dato me 2.1.5p273 (non ci sono stati aggiornamenti tra meno che RVM gemset abbia aggiornato il rubino aggiornato ...). Allora ho provato il codice mygemset dal SO rispondere, ma ha ottenuto più errori così ho deciso di correre solo

gem install bundler 

Questo sembrava funzionare, così ho provato:

gem install compass 

che avevo provato molte volte ma questa volta ha funzionato. Ha installato ffi-1.9.6.gem e 9 gemme che presumo fossero dipendenti.

Il pacchetto NPM ha funzionato e attualmente non ho alcun errore visualizzato in ruby.

NOTA: Non accetterò questa risposta in quanto non so davvero perché ha funzionato, se si segue ciò sii consapevole che non conosco rubino e questo era solo per far funzionare la bussola in NPM.

NOTA: Molte risposte avevano rbenv come gestore pacchetti, volevo risolvere la situazione con quello che era già nel sistema, così ho continuato a lavorare con RVM.

+0

vorrei aggiungere che questo ancora non ha risolto il problema, il mio sistema sembra regredire, ho avuto lo stesso problema il giorno dopo e ha dovuto aggiornare rubino di nuovo. – Totoro

+1

Dopo esserci assicurati di usare il corretto rvm (2.1.1) e impostarlo con --default, il seguente problema è stato risolto per il nostro team: rvm gemset pristine. Grazie! – stephennmcdonald

+0

Inoltre ho fatto _non_ devo disinstallare/reinstallare, ma ho appena impostato il valore predefinito. – eebbesen

16

Stai utilizzando birra?

In tal caso, brew update o brew upgrade interrompe il runtime di Ruby che è ciò che ha causato un errore simile per me.

Di seguito ha risolto il problema per me:

brew rm openssl 
brew cleanup openssl 
brew install openssl 
rvm reinstall ruby 
gem install compass 
+0

Grazie @ 1469, ho messo la risoluzione nella parte superiore della mia risposta (c'era un vecchio riferimento a una versione inesistente di ruby ​​impostata come predefinita in '~/.rvm/gems /'), La correzione di openssl non lavoro per me perché faceva riferimento alla versione sbagliata. Non l'ho accettato perché non capisco cosa stia succedendo, ma funziona su ATM, quindi non voglio rovinarlo. – Totoro

+0

Grazie !!! Ha funzionato perfettamente! – emcpadden