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'

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


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


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


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

9

To działało dla mnie:

bundle clean --force

następnie

bundle install

ponownie zainstalować klejnoty.


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.


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.


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.