Spécifications non résolues lors de Gem :: Specification.reset:


192

Au lancement de Guard, j'obtiens cette sortie:

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

Qu'est-ce que cela signifie et comment y remédier?

Contenu du Guardfile:

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

1
Je reçois ça aussi et je ne lance même pas la garde.
Douglas G. Allen

Ce message est très utile si vous utilisez RVM.
GDP2

Réponses:


274

Je voyais ce problème en exécutant simplement RSpec seul. D'après ce que je comprends, cela signifie que vous avez plus d'une version des gemmes répertoriées installées sur votre système, et RSpec ne sait pas laquelle utiliser. Après avoir désinstallé l'ancienne version des gemmes, les avertissements ont disparu.

Tu peux essayer:

gem cleanup lumberjack

Ou:

gem list lumberjack

gem uninstall lumberjack

Si vous utilisez Bundler, vous pouvez essayer bundle exec guard(ou dans mon cas bundle exec rspec).


2
Tu m'as mis sur la bonne voie. J'obtenais des erreurs lors de l'exécution de «nettoyage de gemmes», j'ai donc trouvé ceci: stackoverflow.com/questions/4007074/… Il s'avère que cela avait à voir avec RVM. Quand j'ai couru 'rvm gemset use global' et couru guard, les erreurs ont disparu.
reneruiz

J'utilisais rbenv et le nettoyage des gemmes [gemname] a parfaitement fonctionné pour moi. Merci.
Matt

3
J'ai eu un problème similaire, l'exécution de la mise à jour du bundle l'a résolu
Mike

4
Après rvm gemset use global(et gem cleanup <gemname>) assurez-vous de revenir à votre jeu de gemmes par défaut avecrvm gemset use default
AlexChaffee

J'avais besoin d'utiliser gem uninstall <problematic gem>mais merci et vote positif pour m'avoir pointé dans la bonne direction!
réduction de l'activité

159

L'utilisation de la commande suivante l'a résolu pour moi:

bundle clean --force

Voir les spécifications de protection et non résolues pour plus d'informations


1
J'ai essayé une tonne de choses, y compris la réinstallation de RVM et Ruby, jusqu'à ce que je tombe sur cette solution et que je l'ai fait pour moi.
George

Mec, j'ai perdu quelques heures à essayer de comprendre pourquoi Textmate 2 était en panne quand je faisais des tests. Cela l'a éclairci.
Épicerie du

J'avais besoin de su/ sudopour faire cela, car il essayait d'écrire /var/lib/gems. Autre que cela - fonctionne pour jekyll.
einpoklum

21

Utilisez Bundler. Appelez bundle exec guardpas guard.


12

Pour info:

gem cleanup

travaillé pour moi.

$ 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

Cela a fonctionné pour moi:

bundle clean --force

puis

bundle install

pour réinstaller les gemmes.


6

J'utilise gem list gem-name; gem uninstall gem-namepour nettoyer la gemme une par une à cause de la dépendance. Après cela, l'erreur ne s'affiche plus.


1

ajouter

'bundle exec'

avant votre commande.

J'utilise ruby ​​2.4 et j'ai eu le même problème lors du déploiement de jekyll sur Windows, il a été corrigé.


0

J'obtenais ce message lors de l'exécution de Rspec dans une gemme de plugin Guard, en utilisant bundle exec rspec. Il s'est avéré qu'il s'agissait d'une ligne manquante dans le gemspecfichier:

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

Cette ligne est normalement en haut du fichier (dans de nombreuses gemmes dans lesquelles j'ai récemment travaillé) et je l'avais commentée pour voir pourquoi.


0

N'oubliez pas que si vous souhaitez utiliser Guard, vous devez ajouter Gem Guard à Gemfile.

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

Ensuite, exécutez

bundle install

J'espère que cela pourra vous aider.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.