win下 bundle install 显示json安装错误解决办法

原创 2013年04月21日 20:07:57

环境:win7,ruby1.9.3p392(鄙视我吧,在win下弄rails不是找死么,只是有时候懒得切linux罢了,好吧只是偶尔要用到win还是希望它能跑起来。)


本文的方法1同样适用于解决由于 windows平台而导致用c编译器写的各种gem安装失败(如fast-stemmer, rdiscount, curb等)


错误:在一个rails project中运行bundle install(或是搭建octopress博客时运行bundle install时)其他的gem都能正确安装,唯独到json这里出了莫名其妙的错误=。=

如下:

Installing json (1.7.7)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
	C:/Ruby193/bin/ruby.exe extconf.rb
creating Makefile
make 
generating generator-i386-mingw32.def
compiling generator.c
In file included from c:/Ruby193/include/ruby-1.9.1/ruby.h:32:0,
		 from ../fbuffer/fbuffer.h:5,
		 from generator.c:1:
c:/Ruby193/include/ruby-1.9.1/ruby/ruby.h:109:14: error: size of array 'ruby_check_sizeof_voidp' is negative
...//此处省略n行=。=


查了各种资料,终于发现这是json采用了c的编译器的原因,
方法1:
请看so上对此问题的解决
http://stackoverflow.com/questions/7780756/cannot-install-json-gem-in-rails-using-windows
根据这个说法,只要装个Devkit就行了,下载链接: http://rubyinstaller.org/downloads/
用法请戳https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

好吧我错了,方法2只是治标不治本,遇到什么fast-stemmer的gem时(octopress要用到)还是错了,上面wiki给的用法终究还是解决了这个问题,只要一步一步耐心看下去。

关键的几步:devkit下载请下4.5.2版本,也就是下载界面给出的第一个。

运行 ruby rake.rb install 报错时(什么skipping because of existing gems)只需运行 

ruby rake.db install --force   即可。


检验方法: gem install json --platform=ruby

安装成功而且应该看到 with native extensions 的消息(反正我这边貌似中文的原因又报了点错=。=)

接着运行ruby -rubygems -e "require 'json'; puts JSON.load('[42]').inspect"

应该输出[42]

这样就大功告成啦~


方法2:
反正切回linux是p事没有。json装的好不过滴的。所以说不要在win下弄rails啊!!!!
但是我昨晚找到了新法子,用纯ruby写的 json_pure 代替了json,
具体方法如下:
在工作目录下找到gemfile.lock, 用文本编辑器打开,找到json 1.7.7改为json_pure 1.7.7
然后再运行bundle install ,  your bundle is complete搞定。(考虑到rubygems.org不稳定,推荐使用http://ruby.taobao.org 的gem)

此处牺牲了对速度的需求,毕竟c跑地要快些=。=不是个好办法

另外雅安加油,为他们祈祷。

win7安装oracle10g错误解决办法

  • 2013年02月20日 11:01
  • 1KB
  • 下载

使用Genymotion安装APK出现错误Failure [INSTALL_FAILED_NO_MATCHING_ABIS]的解决办法

genymotion作为最快的android模拟器,深受广大开发者的喜爱。但是有时候也会碰到比较尴尬的问题:安装APK出现错误Failure [INSTALL_FAILED_NO_MATCHING_A...

安装mysql Install/Remove of the Service Denied!错误的解决办法 2013-11-05 10:08 81426人阅读 评论(6) 收藏 举报 分类: m

安装mysql Install/Remove of the Service Denied!错误的解决办法 2013-11-05 10:08 81426人阅读 评论(6) 收藏 举报  分类...

关于SDK升级到5.0,使用ADT-Bundle中产生的appcompat_v7错误的解决办法.

在使用adt-bundle-windows-x86-20140702时候,创建新的项目的时候,如果将TargetSDK选择成4.0,Complie with也选择成4..0或者就是4.x一下的版本. ...

Restful框架中导入数据库表,选择Application/Json选项显示数据时出现500错误的解决办法

这学期开始接触Restful Web Service开发,我用的是NetBeans开发环境加GlassFish服务器。连接数据库表之后,在浏览器里面显示Application/Json格式的内容的时候...

使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法

Genymotion是构建在x86和VirtualBox虚拟Android的环境。这不是一个ARM仿真器所以它的性能是比Android SDK的模拟器更好。然而,在他们的最新的更新,他们已经删除了AR...
  • pjbwan
  • pjbwan
  • 2014年10月21日 09:55
  • 504

No instrumentation runner InstrumentationTestRunner和INSTALL_FAILED_INSUFFICIENT_STORAG错误解决办法

今天运行一个android小程序时,出现了两个错误如下:(网上看到了两个解决方案,可以凑效) 问题一:单击“Android JUnit Test”运行后会出现如下警告:Warning: No inst...

win7下在安装Oracle10g时出现【安装检测到系统的主 IP 地址是 DHCP 分配的地址】的错误的解决办法

win7下在安装Oracle10g时出现【安装检测到系统的主 IP 地址是 DHCP 分配的地址】的错误的解决办法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:win下 bundle install 显示json安装错误解决办法
举报原因:
原因补充:

(最多只允许输入30个字)