Nierozwiązane specyfikacje podczas Gem :: Specification. Reset:

192

Podczas uruchamiania Guard otrzymuję ten wynik:

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

Co to znaczy i jak to naprawić?

Zawartość Guardfile:

guard 'livereload' do
    watch(%r{.+\.(css|js|html)$})
end
guard 'sass', :input => 'css', :style => :compressed, :extension => '.min.css'
reneruiz
źródło
1
Też to rozumiem i nawet nie biegnę.
Douglas G. Allen,
Ten post jest bardzo pomocny, jeśli używasz RVM.
GDP2

Odpowiedzi:

274

Widziałem ten problem, po prostu sam uruchamiając RSpec . Z tego, co rozumiem, oznacza to, że masz więcej niż jedną wersję wymienionych klejnotów zainstalowanych w twoim systemie, a RSpec nie jest pewien, której użyć. Po odinstalowaniu starszej wersji klejnotów ostrzeżenia zniknęły.

Możesz spróbować:

gem cleanup lumberjack

Lub:

gem list lumberjack

gem uninstall lumberjack

Jeśli używasz Bundlera, możesz spróbować bundle exec guard(lub w moim przypadku bundle exec rspec).

jallen7usa
źródło
2
Ustawiłeś mnie na właściwej drodze. Podczas uruchamiania „czyszczenia klejnotów” pojawiały się błędy, więc znalazłem to: stackoverflow.com/questions/4007074/… Okazało się, że miało to związek z RVM. Kiedy uruchomiłem „gemm rvm use global” i uruchomiłem wartę, błędy zniknęły.
reneruiz
Używałem rbenv i czyszczenie klejnotów [nazwa klejnotu] działało dla mnie idealnie. Dzięki.
Matt
3
Miałem podobny problem, ponieważ aktualizacja pakietu rozwiązała go
Mike
4
Po rvm gemset use global(i gem cleanup <gemname>) pamiętaj, aby powrócić do domyślnego zestawu gemset za pomocąrvm gemset use default
AlexChaffee
Musiałem użyć, gem uninstall <problematic gem>ale dziękuję i głosowałem za skierowanie mnie we właściwym kierunku!
zmniejszenie aktywności
159

Użycie następującego polecenia rozwiązało to dla mnie:

bundle clean --force

Aby uzyskać więcej informacji, zobacz dane straży i nierozwiązane

Pieter van der Merwe
źródło
1
Próbowałem wielu rzeczy, w tym ponownej instalacji RVM i Ruby, dopóki nie wpadłem na to rozwiązanie i zrobiłem to za mnie.
George,
Człowieku, zmarnowałem kilka godzin, próbując dowiedzieć się, dlaczego Textmate 2 się zepsuł, kiedy przeprowadzałem testy. To wyjaśniło.
Sklep spożywczy
Musiałem su/ sudoaby to zrobić, ponieważ starałem się pisać /var/lib/gems. Poza tym - działa dla jekyll.
einpoklum
21

Użyj Bundlera. Zadzwoń bundle exec guard, nie guard.

Nowaker
źródło
12

FYI:

gem cleanup

pracował dla mnie.

$ 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
iluzjonista
źródło
9

To działało dla mnie:

bundle clean --force

następnie

bundle install

ponownie zainstalować klejnoty.

Vanessa Ejikeme
źródło
6

Używam gem list gem-name; gem uninstall gem-namedo czyszczenia klejnotów jeden po drugim z powodu zależności. Następnie błąd nie wyświetla się ponownie.

Arthur Bryant
źródło
1

Dodaj

'bundle exec'

przed twoim rozkazem.

Używam Ruby 2.4 i dostałem ten sam problem podczas wdrażania jekyll w systemie Windows, to naprawiono.

IBam
źródło
0

Otrzymywałem ten komunikat podczas uruchamiania Rspec w klejnocie wtyczki Guard, używając bundle exec rspec. Okazało się, że w gemspecpliku brakuje linii :

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

Ta linia zwykle znajduje się na górze pliku (w wielu klejnotach, nad którymi ostatnio pracowałem) i skomentowałem ją, aby zobaczyć, dlaczego.

Robin Daugherty
źródło
0

Pamiętaj, że jeśli chcesz użyć strażnika, musisz dodać strażnika klejnotów do Gemfile.

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

Następnie uruchomić

bundle install

Mam nadzieję, że ci to pomoże.

rocLv
źródło