最近比较背运,各种奇葩的怪事轮流袭来,刚搞定了rails new问题,本以为都ok了谁知Rails g -h也报错,貌似是和json包相关的错误:_rb_str_new_static,开始以为是ruby版本低的问题,先升级2.2.5到2.4.0:
rvm install 2.4.0 --disable-binary
因为没有Mac 10.12版本的2.4.0的二进制版本,所以后面加上禁止搜索binary版本.
但是使用2.4.0后错误依旧.
考虑可能是由于gem包版本不正确导致,遂将gem包复原到初始状态:
gem pristine --all
你可以看一下pristine的意思:
gem pristine [GEMNAME ...] [options]
作用:
比较已经安装的gem和缓存的.gem file, 如果和缓存的 .gem 不匹配,则恢复原始的文件 如果修改过已经安装的gem包,pristine将会恢复它。所有的扩展会 rebuild,所有的 bin 如果发现有更改会重新生成。 如果缓存的文件不存在,则重新下载。
然后在bundle install,终于正常了.