2010-11-12 5 views
8

Newbie rubino qui cercando di capire come utilizzare una gemma e finora l'esperienza non è così eccezionale.Ruby Gem - LoadError

Dopo aver installato mysql2 tramite gem ho cercato di usarlo in un file semplice.

 
require 'mysql2' 

#client = Mysql2::Client.new(:host => "localhost", :username => "username") 

Anche se quando faccio funzionare questo ottengo:

 

Parse.rb:1:in `require': no such file to load -- mysql2 (LoadError) 
from Parse.rb:1 

Eppure la mia lista gemma contiene mysql2:

 
Tanner-Smiths-MacBook-Pro:Humans_vs_Zombies_Parse tanner$ gem list 

*** LOCAL GEMS *** 

abstract (1.0.0) 
actionmailer (3.0.1, 2.3.5, 1.3.6) 
actionpack (3.0.1, 2.3.5, 1.13.6) 
actionwebservice (1.2.6) 
activemodel (3.0.1) 
activerecord (3.0.1, 2.3.5, 1.15.6) 
activeresource (3.0.1, 2.3.5) 
activesupport (3.0.1, 2.3.5, 1.4.4) 
acts_as_ferret (0.4.3) 
arel (2.0.2) 
builder (2.1.2) 
capistrano (2.5.19, 2.5.2) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.1.0, 1.0.10) 
dnssd (1.4, 0.6.0) 
erubis (2.6.6) 
fastthread (1.0.7, 1.0.1) 
fcgi (0.8.8, 0.8.7) 
ferret (0.11.6) 
gem_plugin (0.2.3) 
highline (1.6.1, 1.5.0) 
hpricot (0.8.3, 0.6.164) 
i18n (0.4.2) 
jk-ferret (0.11.8.2) 
libxml-ruby (1.1.4, 1.1.2) 
mail (2.2.9) 
mime-types (1.16) 
mongrel (1.1.5) 
mysql2 (0.2.6) 
needle (1.3.0) 
net-scp (1.0.4, 1.0.1) 
net-sftp (2.0.5, 2.0.1, 1.1.1) 
net-ssh (2.0.23, 2.0.4, 1.1.4) 
net-ssh-gateway (1.0.1, 1.0.0) 
polyglot (0.3.1) 
rack (1.2.1, 1.0.1) 
rack-mount (0.6.13) 
rack-test (0.5.6) 
rails (2.3.5, 1.2.6) 
railties (3.0.1) 
rake (0.8.7, 0.8.3) 
RedCloth (4.2.3, 4.1.1) 
ruby-openid (2.1.8, 2.1.2) 
ruby-yadis (0.3.4) 
rubynode (0.1.5) 
sqlite3-ruby (1.3.2, 1.2.4) 
termios (0.9.4) 
thor (0.14.4) 
treetop (1.4.8) 
tzinfo (0.3.23) 
xmpp4r (0.5, 0.4) 

Risultati di "ruby env":

 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.5 
    - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] 
    - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8 
    - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - universal-darwin-10 
    - GEM PATHS: 
    - /Library/Ruby/Gems/1.8 
    - /Users/tanner/.gem/ruby/1.8 
    - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://gems.rubyforge.org/ 

Cosa sto facendo di sbagliato qui? Non riesco a capirlo.

Grazie

-Tanner

+0

Ho quasi lo stesso identico problema, hai trovato una soluzione? –

risposta

6

Come probabilmente notato, sono installate più versioni di Ruby. Ti consiglio vivamente di utilizzare RVM per gestire più versioni di ruby.

Si tratta di un ipotesi, ma se non si utilizza la riga di comando per eseguire l'applicazione e l'utilizzo di un tool come TextMate si potrebbe essere necessario impostare una variabile di shell "TM_RUBY" per puntare alla versione rubino con le RubyGems installati (1.8.7 (2009-06-12 patchlevel 174)).

Si può provare:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/irb 

per arrivare alla versione IRB con i RubyGems installate e che cercare:

require 'rubygems' 
require 'mysql2' 

Se questo è il lavoro e si è soddisfatti che si potrebbe o aggiornarvi collegamenti simbolici in/usr/bin/ruby,/usr/bin/irb,/usr/bin/gem per puntare alla versione precedente di ruby ​​o ancora una volta installare RVM e semplificare la vita.

6

Prova:

require 'rubygems' 
require 'mysql2' 
+0

Lo stesso errore tranne invece di 'mysql2' ha 'rubygems' – Tanner

+0

Qual è l'aspetto del tuo output 'gem env'? – subosito

+0

Risultati in post originali. – Tanner

0

Per ottenere maggiori informazioni, start up irb ed eseguire:

 
require 'rubygems' 
gem 'mysql2' #=> does this cause an error? 
$:.grep /mysql2/ #=> if no error from previous line, please post what this shows 

anche al terminal prompt run " contenuto della gemma mysql2 ". Vedete percorsi che terminano con il seguente?

 
lib/mysql2/error.rb 
lib/mysql2/mysql2.bundle 
lib/mysql2/client.rb 
lib/mysql2/result.rb 
lib/mysql2.rb 
+0

Running "richiede '' rubygems" porta lo stesso errore: "LoadError: Nessun file da caricare - RubyGems" Da "contenuti gemma mysql2" posso trovare tutto ma lib/mysql2/mysql2.bundle – Tanner

+0

Sulla base di questa , sembrano esserci 2 problemi. Prendiamo uno alla volta. I rubygems non possono essere caricati, perché non puoi nemmeno richiederlo. Sei in grado di richiedere altre gemme? Hai più di una versione di rubino?In irb, qual è il valore di Config :: CONFIG ['bindir']? In irb, usa questo per cercare rubygems.rb: $ :. each {| dir | files = Dir [File.join (dir, '* gem * .rb')]; mette i file se files.any? }; nil – Kelvin

+0

Inoltre, al terminale, esegui: head -1 \ 'which gem \' (in backquotes). dovresti vedere l'eseguibile rubino che sta usando il comando gem. La sua directory corrisponde al valore di Config :: CONFIG ['bindir'] che hai ricevuto da irb? – Kelvin