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



我尝试在Ruby 1.8.7中加载由RVM控制的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

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

来自文档:

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

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

Ruby 1.9

:默认的Ruby 1.9包现在在大多数平台上默认包含RubyGems(目前基于Debian的系统将其分离成一个单独的包)。这意味着在Ruby 1.9及以上版本中,你不需要需要'rubygems'来加载gem库。

最新更新