从报错信息可以看出报错根本原因是找不到zlib.h
1,确认是否安装zlib
注:上述命令Linux下运行,而非R环境下运行
输出结果:
可见zlib已安装。若未安装可用以下命令安装:
3,将zlib.h从安装的默认路径(anaconda/include)链接到报错中提示需要的位置
4,重新安装R包,如果还缺其他config按照上述过程解决,确实lib的话按照上一篇文章的方法( 安装R包 x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lxxx 问题解决 - (jianshu.com)
)解决
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,出现下图则表示安装成功
你没有安装编译器啊,当然无法编译。以下是我在 ubuntu 下使用 ruby 和 rails 时用到的一些包:
gcc g++ git git-core curl build-essential bison openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt-dev autoconf imagemagick libtool libltdl-dev libmagickwand-dev
redhat 下包的名称和 ubuntu 可能不一样,但是大同小异,你可以找到对应包,先安装这些依赖包,然后再编译,编译出的ruby 的功能应该比较全。