3

我得到Invalid gemspec in [path/to/vendor/bundle/spree_api-1.0.0.gemspec]: Illformed requirement ["#<YAML::Syck::DefaultKey:0x2ac381f81938> 1.0.0"] 了几颗宝石(所有的 Spree,以及它的 spree_* 要求)。我已经报告了两个大礼包的问题(我怀疑他们改变了他们的构建线;以及主机站点 5,他的 RubyGems 版本过时,1.6.2)

关于 stackoverflow 的几个 问题对此有解决方案,但没有一个适用于我。

  1. 我不能使用 RVM 升级到其他版本的 Ruby,因为 (v)host 安装了乘客,AFAIK 只允许运行一个 Ruby 版本。.htaccess除了通过我的public文件夹中的 a 之外,我无法访问乘客设置。
  2. 我不能这样做gem update --system,因为这需要sudo,而我没有。

我很好奇为什么会发生此错误:是否可以通过自己构建 gem(例如从 git)来解决,而不是从 ruby​​gems.org 获取它。

是否可以通过在我的开发机器上打包 gem 来解决?我在那里没有遇到问题,除了 RubyGems 版本,我的开发机器安装了完全相同的 Ruby 版本(在那里我可以使用 rvm 就好了)。

4

1 回答 1

3

您现在可能已经找到了解决此问题的方法,但是如果您有权编写更改,这里有一种解决方法。

cd /path/to/vendor/bundle/并在文本编辑器中打开 spree_api-1.0.0.gemspec。

删除它所说的任何地方#<YAML::Syck::DefaultKey:...>并用>=.

保存它,返回到 Rails 应用程序目录并运行bundle install

于 2012-07-18T15:40:47.020 回答