如何修复此错误? config.gem:在 vendor/gems 中解压的 gem authlogic-2.1.3 没有规范文件

Posted

技术标签:

【中文标题】如何修复此错误? config.gem:在 vendor/gems 中解压的 gem authlogic-2.1.3 没有规范文件【英文标题】:How do I fix this error? config.gem: Unpacked gem authlogic-2.1.3 in vendor/gems has no specification file 【发布时间】:2011-01-17 17:48:48 【问题描述】:

我在启动 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>

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

【问题讨论】:

【参考方案1】:

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

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

$prompt> cd vendor/gems/authlogic-2.1.3

$prompt> gem 规范 authlogic > .specification

【讨论】:

工作就像一个魅力!谢谢队友:) 这给了我一个错误 - “错误:未知 gem 'authlogic'” 知道如何解决这个问题吗? gem install authlogic - 我有同样的问题,我教它已经安装了...... 谢谢! ice_cube 也有同样的问题。 我也在 Rails 2.3.5 上,并在我正在使用的供应商 gem 上获得 ERROR: Unknown gem 'trial_signup_form。是因为宝石不存在还是我错过了什么?【参考方案2】:

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

我正在更新 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

这次工作了,解压正常,没有报错。

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

【参考方案5】:

我遇到了同样的“未知 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

看起来效果不错。

【讨论】:

【参考方案6】:

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

$prompt> cd vendor/gems/authlogic-2.1.3

$prompt> gem 构建 authlogic.gemspec

$prompt> gem install authlogic.gemspec

$prompt> gem 规范 authlogic > .specification

【讨论】:

以上是关于如何修复此错误? config.gem:在 vendor/gems 中解压的 gem authlogic-2.1.3 没有规范文件的主要内容,如果未能解决你的问题,请参考以下文章

PythonException:从 UDF 引发异常:'ValueError:如何在 Databricks 中修复此错误?

如何修复此错误在多个渲染()操作期间无法使用相同的画布

如何修复此错误 3734:无法在 MySQL WorkBench 上添加外键约束?

如何获得修复此错误的 Stacktrace?

如何在 Kotlin 中使用 Timestamp(Date()) 修复此错误

如何在 Wamp_Server 中修复此错误? [关闭]