在使用ruby脚本安装Redis集群时,需要先安装Ruby语言环境和redis插件,但是安装redis插件时遇到以下报错,下面记录一下解决过程。
因为执行Ruby脚本需要Ruby语言环境,所以首先安装Ruby语言环境和Ruby的包管理器Gems。
然后使用gem安装Redis和Ruby的接口。
RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。
RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem 的服务器。这类似于 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。
安装Ruby和Redis的接口时
报错
从Gem源安装gem包
gem install [gemname]
从本地安装gem包
gem install -l [gemname].gem
# gem install -l redis-4.1.0.gem
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
报错原因
缺少zlib库依赖
解决报错
1 首先安装zlib库
yum install zlib-devel
2 集成zlib库到Ruby环境
进入到相关目录
# cd ruby-2.3.8/ext/zlib
# ruby extconf.rb
checking for deflateReset() in -lz... yes
checking for zlib.h... yes
checking for crc32_combine() in zlib.h... yes
checking for adler32_combine() in zlib.h... yes
checking for z_crc_t in zlib.h... yes
creating Makefile
# make
linking shared-object zlib.so
# make install
/bin/install -c -m 0755 zlib.so /usr/local/ruby/lib/ruby/site_ruby/2.3.0/x86_64-linux
重新安装成功