在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,然后啟動,即可進行測試了。