0

在全新的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 11636此堆栈溢出此堆栈溢出)大多数指向构建 libyaml 然后重新安装 Ruby。有人说需要采取更极端的措施来清除这一点,例如删除对可能在您的系统上的 libyaml 旧幽灵的特定引用。

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

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

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

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

4

1 回答 1

0

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

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

我错误地尝试使用rails 5.2.0.beta 安装新的rails,认为solidus 的负责人可能会在它上面工作。(愚蠢的假设)。

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

然后我自己添加了 Solidus gems,当我在 bundle exec rails g spree: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 应用程序。

于 2017-12-09T14:13:06.427 回答