如何要求特定版本的ruby gem?

如何要求特定版本的ruby gem?,ruby,version,gem,oci8,Ruby,Version,Gem,Oci8,特别是ruby-oci8宝石。我安装了1.0.7和2.0.4。我想要1.0.7 我可以只要求oci8,但我没有得到我想要的版本 irb(main):001:0> require 'oci8' => true irb(main):002:0> OCI8::VERSION => "2.0.4" 我可以要求使用文件的完整路径,该路径有效,但不可移植: irb(main):001:0> require 'C:\Ruby\lib\ruby\gems\1.8\gems\rub

特别是ruby-oci8宝石。我安装了1.0.7和2.0.4。我想要1.0.7

我可以只要求oci8,但我没有得到我想要的版本

irb(main):001:0> require 'oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "2.0.4"
我可以要求使用文件的完整路径,该路径有效,但不可移植:

irb(main):001:0> require 'C:\Ruby\lib\ruby\gems\1.8\gems\ruby-oci8-1.0.7-x86-mswin32-60\lib\oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "1.0.7"
我可以使用gem命令请求所需的版本,但它似乎没有实际加载库:

irb(main):001:0> gem 'ruby-oci8', :lib=>'oci8', :version=>'=1.0.7'
=> true
irb(main):002:0> OCI8::VERSION
NameError: uninitialized constant OCI8
    from (irb):2
如果要加载库,我肯定会支持最后一种方法,而不仅仅是确认它是否存在于我的系统中。我缺少什么?

尝试以下语法(而不是require):

require_gem'RMagick','=1.10'
需要_gem'RMagick','>=1.10'

require_gem'rake','>=0.7.0',我的问题有两个:

1) 混淆gem命令语法与rails environment.rb配置文件中config.gem行中使用的语法

2) 未能在gem命令之后发出require命令

脚本中的正确用法是:

gem 'ruby-oci8', '=1.0.7'
require 'oci8'           # example is confusing; file required (oci8.rb) is not 
                         # same name as gem, as is frequently the case
rails 2.3.x environment.rb文件中的正确用法是:

config.gem "ruby-oci8", :version=>'1.0.7'

感谢

require\u的同事,gem似乎是过时的语法,被我在问题的第三个示例中引用的gem命令所取代(我使用的是rubygems 1.3.5)。但是你的建议把我放在了线程上,这表明我应该首先发出gem命令,然后需要gem,比如:gem'ruby-oci8',:lib=>'oci8',:version=>'=1.0.7';需要“oci8”,但这对我也不起作用-我最终还是加载了2.0.4。我怀疑我被gem的名称(ruby-oci8)和要加载的文件名(oci8)之间的差异所束缚。
config.gem "ruby-oci8", :version=>'1.0.7'