在 Windows 上安装 json gem 时出错

Posted

技术标签:

【中文标题】在 Windows 上安装 json gem 时出错【英文标题】:Error installing the json gem on Windows 【发布时间】:2012-06-09 23:57:53 【问题描述】:

我是 ruby​​ on rails 的新手,我正在尝试让我的第一个项目使用 git 和 heroku。我正在关注 Michael Hartl 的教程。我本来是想

git push heroku master

但我没有 GemFile.lock,所以我一直在尝试捆绑安装和捆绑更新,但没有任何效果,因为我没有 json 本机 gem。

bundle update

这是返回此错误的命令,它不是我遗漏了我已经拥有的所有宝石的全部错误

Installing json (1.7.3) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        "C:/Program Files/ruby-1.9.3/bin/ruby.exe" extconf.rb
creating Makefile

make
Makefile:160: warning: overriding commands for target `C:/Program'
Makefile:153: warning: ignoring old commands for target `C:/Program'
C:/Program Files/ruby-1.9.3/bin/ruby -e "puts 'EXPORTS', 'Init_parser'"  > parser-i386
mingw32.def
/bin/sh: C:/Program: No such file or directory
make: *** [parser-i386-mingw32.def] Error 127


Gem files will remain installed in C:/Program Files/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/json-1.7.3 f
or inspection.
Results logged to C:/Program Files/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/json-1.7.3/ext/json/ext/parser/gem_make.out
An error occured while installing json (1.7.3), and Bundler cannot continue.
Make sure that `gem install json -v '1.7.3'` succeeds before bundling.

如果有人知道如何修复我的错误以便我可以进入下一个错误,或者我如何获得一个正常工作的 GemFile.lock,我们将不胜感激。

【问题讨论】:

【参考方案1】:

在您的开发机器上安装json_pure。这是 json gem 的一个版本,不需要 C 扩展(但速度有点慢)。

在 Heroku 上,您应该可以直接使用更快的 json

如果你想在 Windows 上构建 C 扩展,那么你可能想看看这里:The 'json' native gem requires installed build tools

您可以像这样在Gemfile 中创建一个特定于 Windows 的部分:

# Common gems
gem 'xyz'
...

# Platform specific gems
platforms :ruby do
  gem 'json'
end

platforms :mswin, :mingw do
  gem 'json_pure'
end 

【讨论】:

我已经看过那篇帖子并尝试了所有内容。当我到最后一步安装 ruby​​ dk.rb 时,它说我需要 GemFile.lock @Tom - 好的。如果您还没有尝试,我会为您添加更多建议。 我遇到了同样的问题,这个解决方案对我有用。谢谢@Casper【参考方案2】:

Windows 没有正确转义“C:\Program Files”中的空间。我有一段时间没有使用 Windows,但快速搜索会发现 few fixes。

【讨论】:

【参考方案3】:

我遇到了同样的问题,发现在我的 config.yaml 文件中,安装了 Ruby 1.9.2,其中有一个空格。我必须完全卸载该版本的 Ruby,并将其从环境变量中的 PATH 中删除。然后,我重新安装了 DevKit,它运行良好。

【讨论】:

以上是关于在 Windows 上安装 json gem 时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Centos 5 上安装 RMagick ruby​​gem 时出现问题

如何在windows的rails上安装ruby

为啥捆绑器不安装 JSON gem?

尝试在我的 RoR 项目上“安装包”时出现错误。 [视窗 8]

尝试在 ruby​​ 上安装 gem(Windows 10)[重复]

在 Windows 上安装 taglib-ruby gem