2013-10-08 5 views
12

Ich erhalte verwendet diese Meldung während Capistrano deploy meiner Schienen-Projekt:Rails: syck wurde entfernt, psych anstelle

syck has been removed, psych is used instead 

Versionen:

gem 'rails', '=3.2.13' 
ruby 2.0.0p247 

Als i Rubin nativen yamler nutzen wissen " Psych ".

Es gibt keinen Yamler in Gemfile.

In meinem boot.rb:

require 'yaml' 
YAML::ENGINE.yamler = 'psych' 

Was könnte das Problem sein?

Antwort

14

Dies bedeutet wahrscheinlich, dass yamler irgendwo in einem Juwel zugewiesen wird. Sie können sehen, wie die Nachricht hier generiert wird: https://github.com/ruby/ruby/blob/8a896179ada36b4fc0f50d75500c801a3097924a/lib/yaml.rb

Wenn yamler = 'syck' aufgerufen wird, wird die Warnung erzeugt.

Ich durchsuchte meine Edelsteine ​​und fand ich eine ältere Version von newrelic_rpm hatte, die die folgende Zeile hatte, die das Problem verursacht wurde: YAML :: ENGINE.yamler = ‚syck‘, wenn definiert (YAML :: MOTOR)

Die Aktualisierung der newrelic Edelstein behoben das Problem für mich. Viel Glück.

+0

Vielen Dank für Ihre Antwort! In meinem Fall war es ein Juwel 'vestal_versions' –

+0

Mit einer Dichotomie-Methode habe ich versucht, verschiedene Teile meiner Edelsteine ​​aus Gemfile zu entfernen und einen Edelstein gefunden, der diese Ausnahme verursacht hat. –

Verwandte Themen