博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
win下 bundle install 显示json安装错误解决办法
阅读量:4358 次
发布时间:2019-06-07

本文共 1609 字,大约阅读时间需要 5 分钟。

环境: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.rbcreating Makefilemake generating generator-i386-mingw32.defcompiling generator.cIn 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上对此问题的解决
根据这个说法,只要装个Devkit就行了,下载链接:
用法请戳

好吧我错了,方法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跑地要快些=。=不是个好办法

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

 

 

转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/22/3035865.html

你可能感兴趣的文章
从垃圾回收看闭包
查看>>
Intel Core Microarchitecture Pipeline
查看>>
如何去除交叉表的子行(列)的小计?
查看>>
Web字体(链接)嵌入
查看>>
switch… case 语句的用法
查看>>
day07补充-数据类型总结及拷贝
查看>>
语言、数据和运算符
查看>>
正则表达式30分钟入门教程
查看>>
sqlserver try catch·
查看>>
怎么在三维世界里叙述五维故事
查看>>
css技巧
查看>>
代码优化(一)
查看>>
为什么JSP会比Beetl慢
查看>>
移动端rem的用法
查看>>
php-laravel中间件使用
查看>>
myslq 表与表之前的数据转移
查看>>
python学习日志
查看>>
微信自媒体账号涉违规大规模被封
查看>>
35.数组中的逆序对
查看>>
HDU 1811 Rank of Tetris
查看>>