CentOS 7下安装 Redis 6.0.6 & 常见安装错误处理

CentOS 7 下安装Redis-6.0.6 & 常见错误解决


本文主要介绍在CentOS 7下安装Redis-6.0.6的详细安装步骤,以及一些常见安装遇到的问题原因及解决过程,起初本人参照官方文档在纯净Centos7下进行安装,遇到各种问题,查阅资料按步骤解决并总结过程。

一.整理后完整安装步骤

shell > yum -y install gcc tcl
shell > yum -y install centos-release-scl
shell > yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
shell > echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
shell > source /etc/profile
shell > mkdir /usr/common
shell > wget http://download.redis.io/releases/redis-6.0.6.tar.gz
shell > tar xzf redis-6.0.6.tar.gz
shell > mv redis-6.0.6 /usr/local/redis-6.0.6
shell > cd /usr/local/redis-6.0.6/deps/jemalloc/
shell > ./configure
shell > cd /usr/local/redis-6.0.6
shell > make
shell > make test
shell > src/redis-server &
shell > src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> 

二.过程步骤

先上完整安装步骤shell ,可直接参照完成Redis安装,启动

shell > mkdir /usr/common
shell > wget http://download.redis.io/releases/redis-6.0.6.tar.gz
shell > tar xzf redis-6.0.6.tar.gz
shell > mv redis-6.0.6 /usr/local/redis-6.0.6
shell > cd /usr/local/redis-6.0.6
shell > yum -y install gcc
shell > cd /usr/local/redis-6.0.6/deps/jemalloc/
shell > ./configure
shell > cd /usr/local/redis-6.0.6
shell > yum -y install centos-release-scl
shell > yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
shell > echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
shell > source /etc/profile
shell > cd /usr/local/redis-6.0.6
shell > make
shell > yum -y install tcl
shell > make test
shell > src/redis-server &
shell > src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> 

三.步骤拆解 & 解释

1.软件安装包下载

shell > mkdir /usr/common
shell > wget http://download.redis.io/releases/redis-6.0.6.tar.gz
shell > tar xzf redis-6.0.6.tar.gz
shell > mv redis-6.0.6 /usr/local/redis-6.0.6
shell > cd /usr/local/redis-6.0.6

2.前置依赖安装 & 环境配置
(1)安装 gcc

shell > yum -y install gcc

执行make操作需要依赖 gcc ,否则提示如下错误

make[3]: cc: Command not found
make[3]: *** [net.o] Error 127
make[3]: Leaving directory `/usr/local/redis-6.0.6/deps/hiredis'
make[2]: *** [hiredis] Error 2
make[2]: Leaving directory `/usr/local/redis-6.0.6/deps'
make[1]: [persist-settings] Error 2 (ignored)
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make: *** [all] Error 2

(2)配置jemalloc

shell > cd /usr/local/redis-6.0.6/deps/jemalloc/
shell > ./configure

否则make提示如下错误:

[root@iZ2zedll6n6czo68sfh0mjZ redis-6.0.6]# make
cd src && make all
make[1]: Entering directory `/usr/local/redis-6.0.6/src'
    CC Makefile.dep
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make[1]: Entering directory `/usr/local/redis-6.0.6/src'
    CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
 #include <jemalloc/jemalloc.h>
                               ^
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make: *** [all] Error 2

(3)升级gcc 版本

shell > yum -y install centos-release-scl
shell > yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

否则make提示如下错误:

server.c:5191:24: error: ‘struct redisServer’ has no member named ‘masterhost’
             if (!server.masterhost) {
                        ^
server.c:5201:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
         if (server.supervised_mode == SUPERVISED_SYSTEMD) {
                   ^
server.c:5208:15: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
               ^
server.c:5208:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
     if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
                                       ^
server.c:5209:176: error: ‘struct redisServer’ has no member named ‘maxmemory’
         serverLog(LL_WARNING,"WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?", server.maxmemory);
                                                                                                                                                                                ^
server.c:5212:31: error: ‘struct redisServer’ has no member named ‘server_cpulist’
     redisSetCpuAffinity(server.server_cpulist);

(4)配置gcc环境信息

shell > echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
shell > source /etc/profile

(5)编译安装make

shell > make

(6) 安装tcl

shell > yum -y install tcl

否则执行make test 提示如下错误

[root@iZ2zedll6n6czo68sfh0mjZ redis-6.0.6]# make test
cd src && make test
make[1]: Entering directory `/usr/local/redis-6.0.6/src'
    CC Makefile.dep
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make[1]: Entering directory `/usr/local/redis-6.0.6/src'
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/redis-6.0.6/src'
make: *** [test] Error 2

(7)后台启动redis 并进行测试

shell > src/redis-server &
shell > src/redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值