12

启动 Mongrel 服务器时出现此错误...

$ script/server --debugger
=> Booting Mongrel
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
config.gem: Unpacked gem authlogic-2.1.3 in vendor/gems has no specification file. Run 'rake gems:refresh_specs' to fix this.
=> Debugger enabled
=> Call with -d to detach
=> Ctrl-C to shutdown server

当我像它一样运行 rake gems:refresh_specs 时,我得到了另一个错误:

rake aborted!
undefined method `installed_source_index' for #<Gem::SourceIndex:0x100551a58>

关于如何解决这个问题的任何想法?

4

6 回答 6

22

我不确定为什么它在 Authlogic 中被破坏,但我必须自己生成它。

在你的 Rails 项目中试试这个:

$prompt> cd 供应商/gems/authlogic-2.1.3

$prompt> gem 规范 authlogic > .specification

于 2010-02-23T05:59:56.523 回答
4

我只是在这里插话,因为我今天经历了同样的事情,除了使用不同的宝石。

我正在更新 hoptoad 以将通知程序用作 gem 而不是插件,Github 页面上的说明之一是将 gem 解压缩到 vendor/gems 中。

我在 Mac OS X 上,我这样解压缩了 gem:

$> rake gems:unpack GEM=hoptoad_notifier

在我这样做之后,我得到了指定的错误,并且 gem 并没有真正解包(它在 vendor/gems 中创建了目录,但实际上并没有解包 gem)。

我从 vendor/gems 中删除了目录,并再次尝试:

$> sudo rake gems:unpack GEM=hoptoad_notifier

这次工作,解压正确,没有错误。

于 2010-05-18T16:22:34.487 回答
3

我相信这是原因:http: //github.com/binarylogic/authlogic/commit/05e452472616bd60bb81affc75a1cb3d95cf7857

所有者故意在 .specification 文件中添加了 gitignore。我猜你冻结了这个特定的 gem 并将它提交到 vendor/gems/.. 下的代码分支中,正如预期的那样,git 每个请求都会忽略这个特定的文件

于 2010-05-21T00:18:08.693 回答
1

我遇到了同样的“未知 GEM”问题。经过一番折腾,我找到了以下食谱:

首先,我使用标准的“gem install authlogic”安装了 gem,它将 gem 放置在 /Library/Ruby/Gems/1.8 中。

在 RadRails 中,我使用了 rake 任务“gems:unpack”,它似乎收集了与您的应用程序相关的所有 gem,并根据需要将它们放置在 /vendor/gems 中。

然后我卸载了系统范围的 gem 以检查它是否真的可以使用: gem uninstall authlogic --install-dir=/Library/Ruby/Gems/1.8

似乎运作良好。

于 2010-11-16T16:57:42.367 回答
1

我不得不进入 vendor/gems/authlogic 并从 .gitignore 中删除“.specification”

完成后,您可以运行 rake gems:refresh_specs

唯一的问题是,下次升级这个 gem 时,坏的 .gitignore 又回来了

于 2010-07-09T07:27:08.320 回答
0

在生成 .specification 文件之前构建并安装 gem

$prompt> cd 供应商/gems/authlogic-2.1.3

$prompt> gem 构建 authlogic.gemspec

$prompt> gem install authlogic.gemspec

$prompt> gem 规范 authlogic > .specification

于 2015-01-29T06:27:13.993 回答