Redis make編譯報錯解決方法

原文鏈接:https://my.oschina.net/u/2289161/blog/832358

轉載地址: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,然後啓動,即可進行測試了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章