0

我使用 ruby​​-aws gem 维护一个基于 ruby​​ 的应用程序,该 gem 与 Mechanical Turk 交互以创建 HIT 并在 HIT 完成后下载数据。

我刚收到一封来自亚马逊的电子邮件,要求我升级 SDK,因为它们现在要求您使用 SSL 访问 API(最后日期是 2011 年底)

在更新 gem 之前,该应用程序运行良好。

但是,在更新 gem 之后,我在代码的第二行收到一个错误,内容如下:

require "rubygems"
require "ruby-aws"
...

我收到以下错误:

C:/Ruby192/lib/ruby/gems/1.9.1/gems/ruby-aws-1.3.1/lib/ruby-aws/version.rb:8:in ``': No su
ch file or directory - git describe --tags --always --dirty (Errno::ENOENT)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/ruby-aws-1.3.1/lib/ruby-aws/version.rb:8:
in `<module:RubyAWS>'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/ruby-aws-1.3.1/lib/ruby-aws/version.rb:4:
in `<top (required)>'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require
'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require
'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/ruby-aws-1.3.1/lib/ruby-aws.rb:4:in `<top
(required)>'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require
'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue
in require'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require
'
from create_hit.rb:2:in `<main>'

我尝试过的事情:

  1. 执行完整的宝石更新。(宝石更新)
  2. 使用必需的 gem 卸载并重新安装 ruby​​ 1.8.7。
  3. 在新的干净机器上安装 Ruby 1.8.7。
  4. 使用必需的 gem 安装 Ruby 1.9.2。

我过去两天一直在搜索论坛等,但无法弄清楚出了什么问题。我并不是真正的 Ruby 专家(刚刚开始)——所以我可能会遗漏一些非常基本的东西。

任何帮助将不胜感激。

谢谢你。

4

1 回答 1

1

这是 ruby​​-aws gem 尝试使用 git(在运行时)来确定您拥有的 gem 版本的问题。如果你没有安装 git,你会得到那个时髦的错误信息。

看起来它已在 gem 的 1.3.2 版本中修复。看到这个差异

或者,您可以在您的开发机器上安装 git,它甚至可以使用 1.3.1 版的 gem。

于 2011-11-11T23:15:50.587 回答