Redis之集群redis-trib.rb环境的搭建-yellowcong

来源:互联网 发布:北京大学 奖教金 知乎 编辑:程序博客网 时间:2024/05/29 18:56

前面已经准备好了搭建集群的redis节点,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个工具:redis-trib.rb(/usr/local/redis-x.x.1/src/redis-trib.rb) 看后缀就知道这鸟东西不能直接执行,它是用ruby写的一个程序,所以我们还得安装ruby.安装完ruby后,需要安装zlib依赖,修改gem源配置。最后执行gem install redis 安装redis接口。

1、安装ruby的执行环境

通过yum来自动安装的方式不好用,因为安装的版本比较低,集群的时候用不了,会报 redis requires Ruby version >= 2.2.2.的错

#安装ruby的执行环境#yum -y install ruby ruby-devel rubygems rpm-build#这种方式不推荐,因为安装的ruby版本不对所以这是不正确的

1.1下载ruby

#这个下载太慢了wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz#这个是我存在七牛的wget http://yellowcong.qiniudn.com/ruby-2.4.2.tar.gz

1.2编译安装

编译的时候,需要提前安装好依赖的环境,安装完成后,需要配置环境变量

#安装编译包yum -y install gcc gcc-c++ autoconf automake make#解压tar -zxvf ruby-2.4.2.tar.gz #配置,将ruby安装到/usr/local目录./configure --prefix=/usr/local/ruby-2.4.2#编译安装,需要注意的是是否有gcc等一些编译包make && make install 

这里写图片描述

1.3配置环境变量

#建立软连接,或则添加环境变量#ln -s /usr/local/ruby-2.4.2/bin/ruby /usr/bin/ruby#编辑环境变量,这种方法可以一次解决/usr/local/ruby-2.4.2/bin 的所有需要软连接的程序vim /etc/profileexport RUBY_BIN=/usr/local/ruby-2.4.2/binexport PATH=$PATH:$RUBY_BIN#让修改的的环境变量生效source /etc/profile#查看版本rbuy -v

安装完成后,/usr/local目录有ruby-2.4.2,建立软连接后,查看版本信息成功

这里写图片描述

2、ruby的zlib依赖安装

2.1安装zib

#先安装 zlib的工具包yum install zlib#安装完zlib后,再安装zlib-devel,它两是有依赖关系的yum install zlib-devel#到ext的zlib目录下cd /usr/local/ruby/ruby-2.4.2/ext/zlib#配置环境ruby extconf.rb#编译并安装make && make install

ruby extconf.rb 执行后,可以看到都是yes,表示成功解决zlib依赖问题

这里写图片描述

2.2修改Makefile文件

#修改编译后的文件,因为编译报错,找不到ruby.h文件,需要修改Makefile文件vim Makefile#修改zlib.o路径zlib.o: $(top_srcdir)/include/ruby.h 改成:zlib.o: ../../include/ruby.hmake && make instal

原来路径
这里写图片描述

更改后的路径
这里写图片描述

编译成功

这里写图片描述

3、ruby的gem源修改

源需要改成http协议,不然还得装openssl来解决https协议问题,需要删除原来的https的源,更改为国内的源。

#查看gem的源gem source -l  #删除https的协议,添加中国的源#-add 添加一个源#--remove 删除一个源gem sources --add http://gems.ruby-china.org/  --remove https://rubygems.org/

这里写图片描述

4、安装redis 接口

简单来说,相当于安装了redis-trib.rb执行所需要的依赖包,相当于java的jar包

gem install redis

安装成功
这里写图片描述

问题合集

1 redis requires Ruby version >= 2.2.2.

这里写图片描述

ruby的版本号太低了,所导致的,可以看到我的版本是2.0的,所以装不上,需要安装ruby的高版本

这里写图片描述

2 cannot load such file – zlib

不能找到zlib类

#先安装 zlib的工具包yum install zlib,zlib-devel#到ext的zlib目录下cd /usr/local/ruby/ruby-2.4.2/ext/zlib#配置环境ruby extconf.rb#编译并安装make && make install

这里写图片描述

编译成功后的效果

这里写图片描述

3 checking for deflateReset() in -lz… no

这是没有安装zliblg工具包所导致的

yum install zlib,zlib-devel#查看配置,结果是no,就是表示依赖没有安装ruby extconf.rb

这里写图片描述

安装完成后
这里写图片描述

4 make: * No rule to make target /include/ruby.h', needed byzlib.o’. Stop.

#这个是ruby.h的路径,是没有找到,所以报错了/usr/local/ruby/ruby-2.4.2/include/ruby.h

这里写图片描述

修改 zlib.o里面的ruby.h路径为

这里写图片描述

更改后的效果
这里写图片描述

5  Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

需要安装OpenSSL的依赖, 因为是https的协议,所以需要openssl,还有一种解决方案是 修改为http协议
这里写图片描述

gem sources -a https://gems.ruby-china.org/ 把https地址改成 gem sources -a http://gems.ruby-china.org/

#-add 添加一个源#--remove 删除一个源gem sources --add http://gems.ruby-china.org/  --remove https://rubygems.org/

执行成功,查看gem source -l 镜像地址修改成功。
这里写图片描述

再次执行:gem install redis成功。

原创粉丝点击