摘要
linux安装配置Redis过程中经常遇到的错误解决办法。
linux安装配置Redis过程中经常遇到的错误解决办法。
下载Redis资源:
1、github
2、官方网站
通过上述方式下载的gz包,执行以下命令解压
tar -zxvf redis-6.0.6.tar.gz
注意,请在你下载的redis-6.0.6.tar.gz所在的文件夹下执行
然后进入解压后的redis文件夹
cd /home/mySoft/redis-6.0.6/ # 我下载的redis-6.0.6.tar.gz在/home/mySoft/下,因此解压到了这个目录
执行以下命令进行安装:
make && make install
此步为重点,因为几乎所有的错误均出现在这里:
[root@master redis-6.0.1]# make …… make[3]: cc: Command not found make[3]: *** [net.o] Error 127 make[3]: Leaving directory `/home/mySoft/redis-6.0.6/deps/hiredis' make[2]: *** [hiredis] Error 2 make[2]: Leaving directory `/home/mySoft/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 `/home/mySoft/redis-6.0.6/src' make: *** [all] Error 2
此时,说明你的linux系统没有安装gcc,请执行一下命令安装gcc
yum -y install gcc
如您执行make命令报如下的错误,说明您的Linux系统gcc版本过低,请升级gcc版本到最新
[root@master redis-6.0.1]# make …… server.c:5101:19: error: ‘struct redisServer’ has no member named ‘sofd’ if (server.sofd > 0) ^ server.c:5102:94: error: ‘struct redisServer’ has no member named ‘unixsocket’ serverLog(LL_NOTICE,"The server is now ready to accept connections at %s", server.unixsocket); ^ server.c:5103:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’ if (server.supervised_mode == SUPERVISED_SYSTEMD) { ^ server.c:5104:24: error: ‘struct redisServer’ has no member named ‘masterhost’ if (!server.masterhost) { ^ server.c:5117:15: error: ‘struct redisServer’ has no member named ‘maxmemory’ if (server.maxmemory > 0 && server.maxmemory < 1024*1024) { ^ server.c:5117:39: error: ‘struct redisServer’ has no member named ‘maxmemory’ ……
解决办法:
# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5 gcc -v # 升级gcc到5.3及以上,如下: 升级到gcc 9.3: yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash 需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。 如果要长期使用gcc 9.3的话: echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile 这样退出shell重新打开就是新版的gcc了 以下其他版本同理,修改devtoolset版本号即可。
3、报:Hint: It's a good idea to run 'make test' ;)
这个不是错误,是已经运行成功的说明,让你运行make test
Hint: It's a good idea to run 'make test' ;) INSTALL install INSTALL install INSTALL install INSTALL install INSTALL install make[1]: Leaving directory `/home/mySoft/redis-6.0.6/src'
执行make test :
[root@hecs-x-large-2-linux-20200513103942 redis-6.0.6]# make test cd src && make test make[1]: Entering directory `/home/mySoft/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 `/home/mySoft/redis-6.0.6/src' make: *** [test] Error 2
根据以上报错,我们需要安装tcl 8.5以上
[root@etcd3 tmp]# wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz [root@etcd3 tmp]# tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/ [root@etcd3 tmp]# cd /usr/local/tcl8.6.1/unix/ [root@etcd3 unix]# ./configure [root@etcd3 unix]# make #此命令是在unix文件夹下执行的,不是redis下 [root@etcd3 unix]# make install #此命令是在unix文件夹下执行的,不是redis下