在Gem::Specification.reset期间未解决的规格:

当启动Guard时,我得到这样的输出:

$ guard
WARN: Unresolved specs during Gem::Specification.reset:
lumberjack (>= 1.0.2)
ffi (>= 0.5.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.

这意味着什么?我该如何解决?

Guardfile的内容:

guard 'livereload' do
watch(%r{.+\.(css|js|html)$})
end
guard 'sass', :input => 'css', :style => :compressed, :extension => '.min.css'
86990 次浏览

我只是通过自己运行RSpec来看到这个问题。据我所知,这意味着你的系统上安装了多个列出的gems版本,而RSpec不确定该使用哪个版本。卸载旧版本的gems后,警告就消失了。

你可以试试:

gem cleanup lumberjack

或者:

gem list lumberjack


gem uninstall lumberjack

如果你正在使用Bundler,你可以尝试bundle exec guard(或者在我的情况下bundle exec rspec)。

使用打包机。调用bundle exec guard,而不是guard

记住,如果你想使用guard,你必须在Gemfile中添加gem guard。

group :developement, :test do
gem 'guard'
end

然后,运行

bundle install

我希望这能帮助到你。

我在Guard插件gem中运行Rspec时得到了这条消息,使用bundle exec rspec。它原来是gemspec文件中缺少的一行:

$:.push File.expand_path("../lib", __FILE__)

这一行通常位于文件的顶部(在我最近工作的许多gem中),我已经将其注释掉以了解原因。

使用以下命令为我解决了这个问题:

bundle clean --force

更多信息请参见guard-and-unresolved-specs

由于依赖关系,我使用gem list gem-name; gem uninstall gem-name逐个清理gem。之后,错误将不再显示。

仅供参考:

gem cleanup

为我工作。

$ gem cleanup


Cleaning up installed gems...
Attempting to uninstall builder-3.2.2
Successfully uninstalled builder-3.2.2
Attempting to uninstall amatch-0.3.0
Successfully uninstalled amatch-0.3.0
Attempting to uninstall tins-1.12.0
Successfully uninstalled tins-1.12.0
Clean Up Complete

这招对我很管用:

bundle clean --force

然后

bundle install

重新安装宝石。

添加

'bundle exec'

在你的命令之前。

我使用ruby 2.4,在windows上部署jekyll时也遇到了同样的问题,它修复了。

如果有人已经走了这么远,仍然没有找到答案,我把这个留给你。gem update --system。我尝试了所有这些其他的答案都没有用。希望这对你有用。

< p > gem uninstall <gem>试试 它将删除所有较年轻版本的gem.

然后你会被问到

"如果你删除这个宝石,这些依赖将不满足。继续 删除吗?(YN)“< / p >

选择答案

“no"

保留最新版本的gem,并且所有依赖项仍然有效。