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

具体来说,rubyoci8gem。 我安装了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" 

我可以要求使用文件的完整path,这是可行的,但不会是可移植的:

 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 

我肯定会赞成这最后的方法,如果将加载图书馆,而不是只是确认它是存在于我的系统。 我错过了什么?

2 Solutions collect form web for “我如何要求特定版本的ruby?”

我的问题是双重的:

1)将gem命令语法与rails environment.rbconfiguration文件中的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' 

感谢http://www.ruby-forum.com/topic/109100上的人们

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

 require_gem 'RMagick' , '=1.10' require_gem 'RMagick' , '>=1.10' require_gem 'rake', '>=0.7.0', '<0.9.0' 
  • 无法从同一networking上的另一台计算机访问本地Sinatra服务器
  • 如何使用Ruby一步初始化数组?
  • Rails原始的SQL例子
  • Rails将哈希数组映射到单个哈希
  • 停止导轨控制台在循环结束时打印出对象
  • 在Ubuntu上为Ruby on Rails安装PostgreSQL
  • 使用RSpec来检查是否有其他对象的实例
  • WARN无法确定响应主体的内容长度。 设置响应的内容长度或设置响应#chunked = true
  • 我如何parsing一个YAML文件?
  • 错误NoMethodError:对于ActionView :: Base:Class,未定义的方法`debug_rjs ='
  • 检查logging是否被摧毁了