无法在由RVM控制的Ruby 1.8.7上加载sqlite3 gem

时间:2013-06-05 09:04:13

标签: ruby sqlite rubygems rvm

我尝试在由RVM控制的Ruby 1.8.7中加载sqlite3库。但我不能。

情况如下

watanabe@linux:~$ rvm use 1.8.7
Using /home/watanabe/.rvm/gems/ruby-1.8.7-p371
watanabe@linux:~$ ruby -v
ruby 1.8.7 (2012-10-12 patchlevel 371) [x86_64-linux]
watanabe@linux:~$ gem list

*** LOCAL GEMS ***

bundler (1.3.5)
bundler-unload (1.0.1)
rake (10.0.4)
rubygems-bundler (1.2.0)
rvm (1.11.3.8)
sqlite3 (1.3.7)
sqlite3-ruby (1.3.3)
watanabe@linux:~$ gem -v
1.8.25
watanabe@linux:~$ irb
1.8.7 :001 > require 'sqlite3'
LoadError: no such file to load -- sqlite3
        from (irb):1:in `require'
        from (irb):1
1.8.7 :002 > exit
watanabe@linux:~$ ls -lA .rvm/gems/ruby-1.8.7-p371/gems/sqlite3-1.3.7/lib/
total 8
drwxrwxr-x 2 watanabe watanabe 4096 Jun  5 17:02 sqlite3
-rw-r--r-- 1 watanabe watanabe  249 Jun  5 17:02 sqlite3.rb
watanabe@linux:~$ ls -lA .rvm/gems/ruby-1.8.7-p371/gems/sqlite3-ruby-1.3.3/lib/
total 4
drwxrwxr-x 2 watanabe watanabe 4096 Jun  5 17:37 sqlite3

我认为sqlite3 gems安装正确。但是我无法加载sqlite3。你知道这个问题的解决方案吗?

注意: 它适用于Ruby 1.9.3。

watanabe@linux:~$ rvm use 1.9.3
Using /home/watanabe/.rvm/gems/ruby-1.9.3-p429
watanabe@linux:~$ ruby -v
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]
watanabe@linux:~$ gem list

*** LOCAL GEMS ***

bundler (1.3.5)
bundler-unload (1.0.1)
rake (10.0.4)
rubygems-bundler (1.2.0)
rvm (1.11.3.8)
sqlite3 (1.3.7)
watanabe@linux:~$ irb
1.9.3p429 :001 > require 'sqlite3'
 => true

1 个答案:

答案 0 :(得分:2)

在Ruby 1.8.7中,您需要先require 'rubygems'然后require 'sqlite3'

来自documentation

  

您会看到,由于gems存储库的版本特性,RubyGems不会将库文件直接存储在标准库搜索路径中。它在运行时根据需要将必要的gem包添加到库搜索路径。

     

这意味着必须在任何gem库可访问之前加载RubyGems。

     

Ruby 1.9 :   默认情况下,默认的Ruby 1.9软件包在大多数平台上都包含RubyGems(目前基于Debian的系统将其拆分为单独的软件包)。这意味着在Ruby 1.9及更高版本中,您不需要'rubygems'来加载gem库。