背景:
由于是在公司内网下安装,坑基本全在搭建ruby环境,记录此次踩坑笔记。
坑一:搭建ruby环境
此次安装全在离线环境下。
步骤:
1、安装openssl
2、安装ruby
3、安装rubygem
4、安装zlib
5、安装redis-gem
第一点说明:若linux环境之前没有openssl,则可以直接源码安装。外网下载gz压缩包,然后通过tar安装。
wget https://www.openssl.org/source/openssl-1.0.2m.tar.gztar -zxvf openssl-1.0.2m.tar.gzcd openssl-1.0.2m./config --prefix=/usr/local/openssl./config -tmakemake installopenssl version
若之前有安装低版本openssl,则用以下命令,并且安装前如果没有zlib,最好先安装zlib
tar -zxvf openssl-1.0.2m.tar.gz
cd openssl-1.0.2m
./config shared zlib --prefix=/usr/local/openssl && make && make install
./config -tmake depend
cd /usr/local
ln -s openssl ssl
openssl version
然后在/etc/ld.so.conf文件的最后面,添加如下内容:/usr/local/openssl/lib
然后执行命令: ldconfig
最后一步: 添加OPESSL的环境变量,在etc/的profile的最后一行,添加如下内容:
export OPENSSL=/usr/local/openssl/bin
export PATH=$OPENSSL:$PATH:$HOME/bin
第二点说明:安装openssl过程种不报错安装成功后,安装ruby。
wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz
tar -zxvf ruby-2.4.2.tar.gz
cd ruby-2.4.2
./configure --with-openssl-dir=/usr/local/openssl
make
make install
ln -s /usr/local/bin/ruby /usr/bin/ruby
安装完后查看/ruby-2.4.2/ext/zlib/Makefile,若最后几行有
zlib.o: $(top_srcdir)/include/ruby.h
则安装ruby成功
第三点说明:安装rubygem
tar -zxvf rubygems-2.3.0.tgz
cd rubygems-2.3.0
ruby setup.rb
若执行 setup.rb 报not found xxx,查看/usr/local/bin下的ruby文件是否才几kb,
则表示ruby安装失败。重装ruby后再次执行ruby setup.rb,并查看ruby文件大小,正常情况ruby有十几m。
第四点说明:安装zlib
cd /ruby-2.4.2/ext/zlib
ruby extconf.rb
若执行 ruby extconf.rb 报check xxxx yes,则表示安装成功。
若报check xxxx no,则表示openssl安装失败。建议重装openssl。
然后
vim /ruby-2.4.2/ext/zlib/Makefile
zlib.o: $(top_srcdir)/include/ruby.h
修改为:
zlib.o: ../../include/ruby.h
第五点说明:
最后安装redis-gem,用于执行zlib相关redis包
gem install redis
也可先下载到本地
wget https://rubygems.org/downloads/redis-4.0.3.gem
可修改版本,下载相关redis-gem
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
报这个错,安装openssl-devel,并重新编译ruby即可。
坑二:创建集群
若节点设置了密码,使用./redis-trib.rb create --replicas 1
创建集群时
会报错 Sorry, can't connect to node
这时要配置集群密码
/usr/local/rvm/gems/ruby-2.4.1/gems/redis-4.0.1/lib/redis/client.rb
可通过find / -name client.rb找一下
在前几行找到password ,修改密码
class Client
DEFAULTS = {
:url => lambda { ENV["REDIS_URL"] },
:scheme => "redis",
:host => "127.0.0.1",
:port => 6379,
:path => nil,
:timeout => 5.0,
:password => "passwd123",
:db => 0,
:driver => nil,
:id => nil,
:tcp_keepalive => 0,
:reconnect_attempts => 1,
:inherit_socket => false
}