看来你的ruby安装缺少心理(对于YAML输出)。要消除此警告,请安装libyaml并重新安装ruby

时间:2017-12-09 14:09:42

标签: ruby-on-rails bundler solidus libyaml

在新的Solidus安装上,运行bundle exec rails g spree:install,抛出异常

$ bundle exec rails g spree:install /Users/jason/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/yaml.rb:4:in `<top (required)>': It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.

我不知道我是怎么做到这一点的,但不知怎的,我搞砸了一个默认的solidus安装到它拒绝运行bundle exec rails g spree:install的程度,现在我遇到这个错误就崩溃了。

互联网上有一些关于此错误的帖子(请参阅Github Homebrew core issue 11635Github Homebrew core 11636this stack overflowthis stack overflow),大多指向构建libyaml,然后重新安装Ruby。有人说需要采取更加极端的措施来清除这种情况,例如删除可能存在于您系统中的libyaml旧鬼的特定引用。

我尝试了解决这个问题的所有线程中的所有内容,但问题仍然存在并且不会消失。 以上任何链接的建议均无效。

然后我只是从头开始,使用全新的rails应用程序,问题就消失了。所以我怀疑我在初始设置中无意中做了一些导致此代码产生此错误的内容,而不是我的系统中缺少的库(正如所有迹象所示)

我在这里发帖仅供参考。 交叉发布: https://github.com/solidusio/solidus/issues/2434

https://gist.github.com/jasonfb/5d4834a55411a0f45f5f8f966188e117

1 个答案:

答案 0 :(得分:0)

可以在这里检查错误安装: https://github.com/jasonfb/solidus_240_helloworld_BUGGY_solidio-solidis-Issue2434

我知道我在这里做了什么。

我错误地尝试使用rails 5.2.0.beta安装rails new,认为也许solidus的负责人会对它起作用。 (愚蠢的假设)。

在开始生成Rails 5.2.0.beta应用程序之后,我将gemfile的rails版本切换到5.1.4。不要这样做;它不起作用。

然后我继续自己添加Solidus宝石,当我在bundle exec之后点击不可修复的异常g gree:install

在我随后尝试进行新的Solidus安装时,我正确使用了 rails _5.1.4_ new solidus-hello-world 要检查您在活动gemset中安装的Rails版本,请使用rails -v

我认为发生的事情是我将5.2.0.beta激活并且刚刚运行rails new solidus-hello-world并且它安装了一个5.2.0.beta应用程序。