2010-11-12 12 views
8

Bir mücevher nasıl kullanılacağını anlamaya çalışırken burada Ruby Ruby yeni ve bu kadar büyük deneyim değil.Ruby Gem - LoadError

Mysql2'yi gemiyle kurduktan sonra basit bir dosyada kullanmayı denedim. Bunu çalıştırdığınızda

 
require 'mysql2' 

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

rağmen alıyorum: "yakut env" nin

 
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) 

Sonuçlar:

 
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/ 

 

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

Oysa benim mücevher liste mysql2 içeriyor Burada neyi yanlış yapıyorum? Anlayamıyorum.

Teşekkür

-Tanner

+0

Neredeyse aynı problemi yaşıyorum, bir çözüm buldunuz mu? –

cevap

6

Muhtemelen fark ettiğiniz gibi, yakutun birden çok sürümü yüklenmiştir. Birden çok ruby ​​sürümünü yönetmek için RVM'u kullanmanızı şiddetle tavsiye ediyorum.

Bu, vahşi bir tahmindir, ancak uygulamanızı çalıştırmak için ve TextMate gibi bir araç kullanarak komut satırını kullanmıyorsanız, yüklü rubygems ile ruby ​​sürümüne işaret etmek için bir kabuk değişkeni "TM_RUBY" ayarlamanız gerekebilir. (1.8.7 (2009-06-12 patchlevel 174)).

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

yüklü rubygem'ler ile irb sürümüne almak ve denemek daha için:

Deneyebilirsin

require 'rubygems' 
require 'mysql2' 

şu işin varsa ve bu ya size bilgi verebilir memnunsanız/usr/bin/ruby,/usr/bin/irb,/usr/bin/gem sembolik linkler ruby'nin eski versiyonuna işaret eder veya RVM'yi kurup hayatınızı daha kolay hale getirir.

6

Dene:

require 'rubygems' 
require 'mysql2' 
+0

Aynı hata 'mysql2' yerine bunun yerine 'rubygems' var – Tanner

+0

Sizin 'gem env' çıktı nasıl görünüyor? – subosito

+0

Orijinal yazılarda bulunan sonuçlar. – Tanner

0

, bilgi alabileceğimiz irb başlatıp çalıştırmak için:

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

Ayrıca, terminal istemi, çalışma zamanında " gem içeriği mysql2 ". Aşağıdakilerle biten yolları görüyor musunuz?

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

aynı hatayı getiriyor 2 problem var gibi görünüyor. Her seferinde bir tane alalım. Rubygems yüklenemiyor, çünkü buna bile gerek yok. Başka taşlar gerektirebilir misiniz? Ruby'nin birden fazla versiyonunuz var mı?Irb'de Config :: CONFIG ['bindir'] 'nin değeri nedir? Irb içinde, rubygems.rb'yi aramak için bunu kullanın: $ :. her {| dir | files = Dir [File.join (dir, '* gem * .rb')]; files.any dosyaları koyar? }; nil – Tanner

+0

ama her şeyi bulabilirsiniz "mysql2 mücevher içerikleri" Kimden -: "rubygems yüklemek için böyle bir dosyayı LoadError:" " 'RubyGems' gerektiren" Running – Kelvin

+0

Ayrıca, terminalde, çalıştırın: kafa -1 \ 'hangi gem \' (backquotes içinde). gem komutunun kullandığı ruby ​​yürütülebilir dosyasını görmelisiniz. Dizini irb den aldığınız Config :: CONFIG ['bindir'] değeriyle eşleşiyor mu? – Kelvin