Нерешенные спецификации во время 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'

1
Я тоже это понимаю и даже не бегу на страже.
Дуглас Дж. Аллен

Этот пост очень полезен, если вы используете RVM.
GDP2

Ответы:


274

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

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

gem cleanup lumberjack

Или:

gem list lumberjack

gem uninstall lumberjack

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


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


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


6

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


1

Добавить

'bundle exec'

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

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


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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.