Redis make編譯報錯解決方法

轉載地址:http://xueliang1yi.blog.163.com/blog/static/1145570162012102114635764/     linux

在linux環境下安裝redis,在make編譯步驟報以下錯誤信息:git

 

[root@centos6 redis-3.2.6]# makegithub

cd src && make allredis

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

  CC adlist.o測試

/bin/sh: cc: command not foundgoogle

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

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

make: *** [all] Error 2blog

 

錯誤緣由: 原來Linux系統沒有裝gcc,而Redis是C實現的,因此須要gcc來進行編譯。

一、報錯一  沒用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依賴了不少東西,有些包可能系統已經 裝了,有些沒有,防止出意外,最好都走一遍

 

二、報錯二,沒有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

三、安裝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,而後啓動,便可進行測試了。

相關文章
相關標籤/搜索