3

I recently installed a gem that was inappropriately named. My installation thinks the the version number is "Epub". The gem is called Simple Epub Creator-0.0.0.gem. I already know what I did wrong (used spaces) but now I need to fix it.

Whenever I run gem with any argument, including uninstall, I get this:

C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/version.rb:200:in `initialize': Malformed version number string Epub (ArgumentError)gem

Followed by a stack trace as long as my arm. Is there an elegant fix to this problem, or is it better to just take the "sledgehammer" approach and nuke the installation, followed by a clean install of ruby and all of the gems I use?

4

4 回答 4

1

当我无意中rake:install对我正在构建的尚未分配版本号的 gem 进行了操作时,我遇到了类似的问题。运行gem,bundlerake使用任何命令都会导致关于格式错误的版本号的相同错误。

对我有用的是手动删除.rvm文件夹中有问题的 gem 的所有实例。就我而言,我有一个名为的 gem dogecoin-,它缺少版本后缀。所以cd进入我的.rvm目录并运行find . -path \*doge\* -delete让我回到了正常运行的状态。

于 2014-01-09T00:21:14.023 回答
0

我的直觉是,它version.rb会遍历您已安装的所有 gem,其中之一就是您命名错误的 epub 创建者。

也许您可以看一下文件中的第 200 行C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/version.rb,看看它在哪里尝试加载错误命名的 gem,找到它并删除它?

于 2013-11-10T18:55:59.780 回答
0

我今天遇到了同样的问题。我使用的是通过安装的 Ruby 。我在以下文件夹中发现了不良 gem 的残余物。从这两个文件夹中删除引用似乎已经解决了这个问题:

/usr/local/Cellar/ruby/2.1.0/lib/ruby/gems/2.1.0/doc/
/usr/local/Cellar/ruby/2.1.0/lib/ruby/gems/2.1.0/specifications/
于 2014-01-14T02:47:54.463 回答
0

我在参考路径或这篇文章中的其他一些建议路径中找不到文件。一些对我有帮助的事情是首先注释掉第 201 行的 version.rb 文件中出现的错误。然后使用 GEM PATH 目录$ gem env来查找引用 gem 的路径。确保从 doc、cache 和 specification 文件夹中删除所有内容。这终于解决了我的问题。

于 2016-06-14T22:59:48.283 回答