Unresolved specs during Gem::Specification.reset:

2019-01-08 04:36发布

问题:

When launching Guard, I'm getting this output:

$ 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.

What does this mean, and how do I fix it?

Contents of Guardfile:

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

回答1:

I was seeing this issue by just running RSpec on its own. From what I understand, this means that you have more than one version of the listed gems installed on your system, and RSpec is unsure which one to use. After uninstalling older version of the gems, the warnings went away.

You can try:

gem cleanup lumberjack

Or:

gem list lumberjack

gem uninstall lumberjack

If you're using Bundler, you can try bundle exec guard (or in my case bundle exec rspec).



回答2:

Using the following command solved it for me:

bundle clean --force

See guard-and-unresolved-specs for more info



回答3:

Use Bundler. Call bundle exec guard, not guard.



回答4:

FYI:

gem cleanup

worked for me.

$ 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


回答5:

I use gem list gem-name; gem uninstall gem-name to clean the gem one by one because of the dependency. After that, the error does not show again.



回答6:

This worked for me:

bundle clean --force

then

bundle install

to reinstall gems.



回答7:

add

'bunlde exec'

before your command.

I use ruby 2.4 and got the same problem when deploying jekyll on windows, it fixed.



回答8:

I was getting this message while running Rspec within a Guard plugin gem, using bundle exec rspec. It turned out to be a missing line in the gemspec file:

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

This line is normally at the top of the file (in many of the gems I have recently been working in) and I had commented it out to see why.



回答9:

Remember, if you want to use guard, you have to add gem guard to Gemfile.

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

Then, run

bundle install

I hope this can help you.