
windows下安装或升级时gem经常会碰到
这是因为没有安装DevKit的缘故。
DevKit 是windows平台下编译和使用本地C/C++扩展包的工具。它就是用来模拟Linux平台下的make, gcc, sh来进行编译。注:这个方法目前仅支持通过RubyInstaller安装的Ruby,如果不是建议你重新安装。安装方法:双击下载的7z文件,指定解压路径,路径中不能有空格。如C:\DevKit,这个路径就是<DEVKIT_INSTALL_DIR>。
>cd <DEVKIT_INSTALL_DIR>
>ruby dk.rb init
#生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby
#如果这里列出的Ruby与你的要求不符,可以手动修改
>ruby dk.rb review #检查要添加DevKit支持的Ruby列表是否有误,可以略过
>ruby dk.rb install
[INFO] Updating convenience notice gem override for 'C:/Ruby192'
[INFO] Installing 'C:/Ruby192/lib/ruby/site_ruby/devkit.rb'
检查是否安装成功
>gem install rdiscount --platform=ruby
Fetching: rdiscount-1.6.8.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
Successfully installed rdiscount-1.6.8
1 gem installed
Installing ri documentation for rdiscount-1.6.8...
Installing RDoc documentation for rdiscount-1.6.8...
如果能安装rdiscount成功说明安装DevKit成功。
redis-cluster安装需要通过gem install redis来安装相关依赖。否则报错。通过gem install redis执行后会出现两个问题:
1、缺少zlib依赖
问题:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method 'invoke_with_build_args' for nil:NilClass
解决:
通过yum install zlib-devel 安装zlib库
然后集成zlib库到ruby环境
cd /usr/local/ruby-2.2.7/ext/zlib
ruby extconf.rb
重要:ext/openssl/Makefile 增加 top_srcdir = ../..
//这一步如果不修改,make时会爆出另外一个错误
//make:*** No rule to make target '/include/ruby.h', needed by 'zlib.o'. Stop
make &&make install
2、缺少openssl库
问题:
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
解决:
通过yum install openssl-devel 安装openssl库
然后集成到ruby环境
cd /usr/local/ruby-2.2.7/ext/zlib
ruby extconf.rb
重要:ext/openssl/Makefile 增加 top_srcdir = ../..
//修改Makefile中的$(top_srcdir)为../..
make &&make install
再次运行gem install redis,出现下图则表示安装成功
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)