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

问题描述 投票:0回答:12

启动 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'
ruby rubygems guard
12个回答
298
投票

我通过单独运行 RSpec 发现了这个问题。据我了解,这意味着您的系统上安装了多个版本的列出的 gem,而 RSpec 不确定使用哪一个。卸载旧版本的 gems 后,警告消失了。

你可以尝试:

gem cleanup lumberjack

或者:

gem list lumberjack

gem uninstall lumberjack

如果您使用的是 Bundler,您可以尝试

bundle exec guard
(或者在我的情况下为
bundle exec rspec
)。


188
投票

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

bundle clean --force

请参阅 guard-and-unresolved-specs 了解更多信息


27
投票

使用捆绑器。打电话给

bundle exec guard
,而不是
guard


14
投票

仅供参考:

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

13
投票

这对我有用:

bundle clean --force

然后

bundle install

重新安装宝石。


6
投票

因为依赖关系,我用

gem list gem-name; gem uninstall gem-name
来一一清理gem。之后,该错误不再显示。


4
投票

添加

'bundle exec'

在你发出命令之前。

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


2
投票

如果有人已经走到了这一步,但仍然没有找到答案,我就把这个留给你。

gem update --system
。我尝试了所有其他答案均无济于事。希望这对你有用。


1
投票

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

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

然后,运行

bundle install

我希望这可以帮助你。


1
投票

尝试

gem uninstall <gem>
它会删除所有较年轻版本的 gem。

然后你会被问到

“如果删除此 gem,将不会满足这些依赖关系。继续 删除? [YN]”

选择答案

“不”

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


0
投票

我在 Guard 插件 gem 中使用

bundle exec rspec
运行 Rspec 时收到此消息。原来是
gemspec
文件中少了一行:

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

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


0
投票

这也对我有用:

bundle clean --force

然后

bundle install
© www.soinside.com 2019 - 2024. All rights reserved.