0

我使用的 gem 的版本似乎有问题。我没有互联网访问权限,我直接从 Rubyforge 下载了 gem,然后将它 SCPed 到目标机器上,我曾经gem install --force --local安装它。Ruby/Rubygems 来自大约一个月前拍摄的 EPEL 存储库的快照。它托管在网络中的一台机器上,并且 YUM 被配置为跨网络指向正确的位置。

我正在尝试使用 Net::SSH 宝石系列(Net:SSH、Net::SSH::Shell、Net::SSH::Multi、Net::SSH::Gateway、Net::SCP)。当我运行我的时,file.rb我得到了这个:

/usr/lib/ruby/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': RubyGem version error: net-ssh(2.6.6 not ~> 2.1.0) (Gem::LoadError)
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:214:in `activate'
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate' 
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
        from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:35:in `require'
        from ./cluster_config.rb:12

我在互联网上看到了很多关于实际版本低于预期版本的问题,但我只发现实际版本比预期更新的示例,但它已通过来自的响应“解决” OP 说“我的朋友知道了,谢谢。”

这也是我第一次看到~>运营商在这方面的使用。通常我在这里见过>=运营商。

有什么建议么?

4

1 回答 1

0

~>在 Gemfiles 中使用以允许使用补丁版本大于或等于指定版本的 gem,前提是主要和次要版本相同。例如:

~> 2.1.0将允许 version 2.1.9,但不允许2.2.0or 2.0.0

~> 2.1.3也允许2.1.9但不允许2.1.0or 2.2.0

此外,您可能可以直接从 RubyGems 下载您需要的确切版本。在您的情况下,链接将是http://rubygems.org/downloads/net-ssh-2.1.0.gem

于 2013-03-27T21:09:11.460 回答