【发布时间】:2016-10-20 20:28:21
【问题描述】:
我刚刚将代码克隆到在 VirtualBox 中运行的新创建的 Ubuntu Server 环境中。
在输入 rake db:reset 设置数据库后,我收到一条错误消息,提示我运行 Bundle Install,因为我的包被锁定到 JSON 1.8.1 但它没有在任何我的 Gemfile 中列出的来源。
我运行了Bundle install 并得到了错误图片(还没有弄清楚如何从我的虚拟机中复制/粘贴文本)。
我正在运行 Ruby 2.3.1,所有内容都已更新/升级。我尝试过操作 Gemfile、Gemfile.lock 并重新/安装 json,但没有成功。以前的解决方案似乎出现在 2011-2013 年,但最近没有。
我的头在键盘上敲了一天+ - 我猜这与在新的环境实现中使用旧代码有关?
我们将不胜感激。
【问题讨论】:
-
这是一种很难解释的错误,除非您已经完成了几次。它告诉您确保
gem install json -v '1.8.1'命令成功 - 如果您运行该命令,您将看到更多信息错误。你可能需要一些系统依赖,比如apt-get或brew。顺便说一句,如果您遇到奇怪的 gem 错误,通常值得尝试在命令前添加bundle exec- 这将确保使用 Gemfile 中的版本而不是系统版本。 -
你是正确的,最大,我尝试安装 json 1.8.1 并且它遇到了错误,期望有 2 个参数,但只有一个用于称为 fbuffer 的东西,然后它在那个时候级联崩溃。也许我应该删除这个问题并提出那个错误?
-
不需要删除问题。只需添加错误。
-
每当您看到有关“本机扩展”的信息弹出时,您必须在系统上安装一些库。在这种情况下,我不确定 json install 错误文本最后几行中的两个文件应该告诉你哪个文件。
-
@maxpleaner 我的朋友在 SO 中发现了这个晦涩的帖子,帮助我完成了这项工作:stackoverflow.com/questions/29578142/… - 我将 Gemfile.lock JSON 行从 1.8.1 更改为 1.8.2 并捆绑安装 + rake db:reset 有效!现在看看我的应用程序功能是否仍然正常。谢谢你们的帮助!
标签: ruby-on-rails json ruby ruby-2.3