Нерешенные спецификации во время Gem :: Specification.reset:

192

При запуске 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'
reneruiz
источник
1
Я тоже это понимаю и даже не бегу на страже.
Дуглас Дж. Аллен
Этот пост очень полезен, если вы используете RVM.
GDP2

Ответы:

274

Я видел эту проблему, просто запустив RSpec самостоятельно. Насколько я понимаю, это означает, что в вашей системе установлено более одной версии перечисленных гемов, и RSpec не уверен, какую из них использовать. После удаления старой версии драгоценных камней, предупреждения исчезли.

Можешь попробовать:

gem cleanup lumberjack

Или:

gem list lumberjack

gem uninstall lumberjack

Если вы используете Bundler, вы можете попробовать bundle exec guard(или в моем случае bundle exec rspec).

jallen7usa
источник
2
Вы поставили меня на правильный путь. Я получал ошибки при запуске 'gem cleanup', поэтому нашел это: stackoverflow.com/questions/4007074/… Оказывается, это связано с RVM. Когда я запустил 'rvm gemset use global' и запустил guard, ошибки исчезли.
reneruiz
Я использовал rbenv и gem cleanup [gemname] отлично сработал. Спасибо.
Мэтт
3
У меня была похожая проблема, запуск обновления пакета решил ее
Майк
4
После rvm gemset use globalgem cleanup <gemname>) убедитесь, что вы вернулись к своему стандартному гемсету с помощьюrvm gemset use default
AlexChaffee
Мне нужно было использовать, gem uninstall <problematic gem>но спасибо и upvote за указание мне в правильном направлении!
снижение активности
159

Использование следующей команды решило это для меня:

bundle clean --force

См. Guard-and-unresolved-specs для получения дополнительной информации

Питер ван дер Мерве
источник
1
Я пробовал массу вещей, включая переустановку RVM и Ruby, пока не столкнулся с этим решением, и это сделало это для меня.
Джордж
Чувак, я потратил несколько часов, пытаясь выяснить, почему Textmate 2 зависал, когда я проводил тесты. Это очистило это.
Бакалея
Мне нужно было su/ sudoчтобы сделать это, так как он пытался писать в /var/lib/gems. Кроме этого - работает на Джекилла.
einpoklum
21

Используйте Bundler. Звони bundle exec guard, нет guard.

Nowaker
источник
12

FYI:

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
иллюзионист
источник
9

Это сработало для меня:

bundle clean --force

затем

bundle install

переустановить драгоценные камни.

Ванесса Эджикеме
источник
6

Я использую, gem list gem-name; gem uninstall gem-nameчтобы убрать драгоценный камень один за другим из-за зависимости. После этого ошибка не отображается снова.

Артур Брайант
источник
1

Добавить

'bundle exec'

перед вашей командой.

Я использую ruby ​​2.4 и получил ту же проблему при развертывании Jekyll на Windows, это исправлено.

IBam
источник
0

Я получал это сообщение при запуске Rspec в геме плагина Guard, используя bundle exec rspec. В gemspecфайле оказалась пропущенная строка :

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

Эта строка обычно находится вверху файла (во многих драгоценных камнях, над которыми я недавно работал), и я прокомментировал ее, чтобы понять, почему.

Робин Догерти
источник
0

Помните, что если вы хотите использовать охрану, вы должны добавить gem guard в Gemfile.

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

Затем запустите

bundle install

Я надеюсь это тебе поможет.

rocLv
источник