Redis make编译报错解决方法

转载地址:https://my.oschina.net/u/2289161/blog/832358

在linux环境下安装redis,在make编译步骤报如下错误信息:

[root@centos6 redis-3.2.6]# make

cd src && make all

make[1]: Entering directory `/var/redis-3.2.6/src’

CC adlist.o

/bin/sh: cc: command not found

make[1]: *** [adlist.o] Error 127

make[1]: Leaving directory `/var/redis-3.2.6/src’

make: *** [all] Error 2

错误原因: 原来Linux系统没有装gcc,而Redis是C实现的,所以需要gcc来进行编译。

1、报错一 没用gcc

安装过程
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make

yum install tcl

注意gcc依赖了很多东西,有些包可能系统已经 装了,有些没有,防止出意外,最好都走一遍

2、报错二,没有tcl8.5, 安装tcl8.5,过程如下

下载地址:http://downloads.sourceforge.net/tcl/tcl8.5.10-src.tar.gz

安装过程

tar -zxvf tcl8.5.tar.gz

./configure

make

make install

3、安装redis

make

make test //检查一下,看看有没有问题

make install

如果make继续报错,信息如下:error: jemalloc/jemalloc.h: No such file or directory

执行 make MALLOC=libc 就行

注意的是,为了防止出意外,make失败后在make的话,清理一下,执行make clean

下面是一些介绍:

Redis2.6已经发布了(http://redis.io/download),下载后,在make时一堆编译错误,后来看issue,跟linux系统版本及位数有关。

昨天作者 antirez发布了2.6.2,此版本修复了一些linux版本不兼容导致make不通过的问题,可是下下来以后,发现在测试机编译还是有些问题,与是 在issue上提出一个问题:(https://github.com/antirez/redis/issues/736#issuecomment- 9848046) 早上来的时候,看到大牛们热心的回复,真的很感动。在测试机上,由于系统 是32位的,导致编译时没通过,首先我立马确定了这个问题,在64位测试机上测试时,发现果然编译可以通过,然后在32位上,跟据提示,在 Makefile中增加一条CFLAGS= -march=i686,编译也顺利通过了,顿时感觉舒畅很多!

下载地址:http://redis.googlecode.com/files/redis-2.6.2.tar.gz

然后tar, make,即可。(make前,如果确认自己的测试机是32位linux,在src/Makefile文件中的头部加上CFLAGS= -march=i686,可参考isSUSE中相关回答)

修改对应的redis.conf,然后启动,即可进行测试了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当在Linux上安装Redis时,可能会遇到make的情况。这可能是由于缺少依赖项或编译器版本不兼容等原因导致的。为了解决这个问题,您可以尝试以下几个步骤: 1. 确保您已经安装了所有必需的依赖项,例如gcc、make、tcl等。 2. 检查您的编译器版本是否与Redis的要求相匹配。您可以在Redis的官方网站上查找相关信息。 3. 尝试使用不同的编译器版本进行编译。您可以使用命令“make CC=编译器名称”来指定使用特定的编译器。 4. 检查您的系统是否有足够的内存和磁盘空间来编译Redis。 5. 如果以上步骤都无法解决问题,您可以尝试使用其他方法来安装Redis,例如使用二进制包或使用Docker容器。 ### 回答2: Linux安装Redis时,可能会遇到make的情况。这通常是由于安装依赖库不完全或版本不匹配导致的。 首先,需要先确认是否已经安装了必要的依赖库,如GCC编译器、make、tcl等。如果没有安装,需要先使用命令行工具安装相关依赖库,如以下命令: $ sudo apt-get install build-essential $ sudo apt-get install tcl 其次,需要检查编译器是否正确安装并配置。如果编译器版本不匹配,也会导致make。可以使用以下命令检查GCC编译器是否正确安装: $ gcc --version 如果输出信息正确,说明GCC编译器已正确安装。否则需要先安装正确版本的GCC编译器。 还需检查Redis版本是否正确,如果是较早版本的Redis,可能会出现与系统不兼容的情况。此时,需要升级或是降低Redis版本以匹配系统。 最后,如果检查依赖库和编译器都正确安装、版本也匹配,但还是无法解决make的问题,可以尝试重新下载Redis源代码并重新编译安装。注意,下载源代码时要下载稳定版本的Redis。 总之,在安装Redis过程中遇到make的情况,需要逐步排查原因并逐一解决,才能确保Redis的正常安装和运行。 ### 回答3: Redis 是一个高性能、高可用性的键值对存储系统,常用于缓存、消息队列等场景。在 Linux 环境下安装 Redis 十分常见,然而在安装过程中,有时会遇到 make 的情况。下面我们就来分析一下可能出现的原因和解决方法。 1. 依赖库安装不足 在安装 Redis 时,需要预先安装几个依赖库,包括: - gcc:C、C++ 编译器 - make:自动化编译工具 - tcl:Redis 测试所需的工具 如果在安装 Redis 时没有安装上述依赖库,就可能导致 make 。此时,我们可以通过以下命令安装依赖库: ``` sudo apt-get update sudo apt-get install build-essential sudo apt-get install tcl ``` 2. Makefile 文件误 如果 RedisMakefile 文件中存在误,也会导致 make 。我们可以检查 Makefile 文件是否完整,是否有语法误等问题,尝试进行修复。 3. 缺少必要的头文件 在编译 Redis 时,某些头文件可能会找不到,导致 make 。此时,我们可以在 Makefile 文件中添加缺少的头文件路径,例如: ``` CFLAGS=-I/usr/include ``` 或者使用以下命令安装缺失的头文件: ``` sudo apt-get install libc6-dev sudo apt-get install libssl-dev ``` 4. 多个版本冲突 如果系统中已经安装了多个 Redis 版本,可能会导致 make 。此时,我们可以删除冲突的版本,或者在编译时明确指定需要编译的版本。 总之,make 可能有很多原因,我们需要耐心地逐一排查,找出问题所在,然后进行修复。如果问题比较复杂,可以尝试在社区或者官方论坛中寻求帮助。同时,作为一名 Linux 开发人员,也应该不断提升自己的技能,积累经验,以便更好地应对各种问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值