以前用的redis3.0,今天想尝试下redis的cluster功能,才现3.0还须要ruby和gem,刚好又知道5.0已经自带集群功能了,全部决定下载5.0,这样既让集群用起来更方便,又能够体验新版的redis。web
wget http://120.52.51.18/download.redis.io/releases/redis-5.0.3.tar.gz tar -zxvf redis-5.0.3.tar.gz
而后进入目录 cd redis-5.0.3
,按官方步骤执行make
命令,然而安装并没预想的同样顺畅,先是
出现/sys/types.h
找不到,后来百度了下,看到有朋友说是libc6-dev未安装,因而执行sudo apt-get install libc6-dev
安装libc6,而后执行dpkg -L libc6-dev|grep types.h
能够看到相关文件了。安装好了以后再次执行make
命令,没想到仍是报错,又是一个.h
头文件找不到,回头看了下readme.md,发现每次失败后须要make distclean
清除失败的编译结果。本觉得改完这个就行了的,没想到又跳出个error: jemalloc/jemalloc.h: No such file or directory
的错误,又百度了下,有位朋友说执行make MALLOC=libc
能够解决(那个朋友是在redis2.6上遇到的这个问题),因而乎再次执行,没想到仍是失败。redis
这个时候基本想放弃了,但不死心,去墙外的google找了下,而后搜索到stackexchange的一个相似问题 https://unix.stackexchange.com/questions/94479/jemalloc-and-other-errors-making-redis-on-centos-6-4 ,大体意思是deps这个目录是redis的依赖项,redis正常安装状况下应该先安装deps里面的依赖项,但不知出了什么情况,这些依赖项没有先执行,redis的安装就失败了。因而进入目录执行命令,geohash-int
这个依赖项在redis 5.0已经没有了,不用管它;centos
cd deps make hiredis jemalloc linenoise lua geohash-int cd .. make install
这里原本基本是已经要解决make失败的问题了,没想到又出现了个意外状况,这里原本基本是已经要解决make失败的问题了,没想到又出现了个意外状况,再次执行异常信息ruby
i386 architecture of input file `liblua.a(ltablib.o)' is incompatible with i386:x86-64 output makefile:70: recipe for target 'lua' failed make: *** [lua] error 2
安装lua失败了,查了很久也没发现是什么缘由,最后看了depts目录下的README.md,lua版本是5.1,果真sudo apt-get install lua5.1
, 而后从新make,终于出现ide
Hint: It's a good idea to run 'make test' ;
,安装成功,make test
执行测试,everything is ok.
进入src目录 ./redis-server
,执行成功,ok!svg
wget http://120.52.51.18/download.redis.io/releases/redis-5.0.3.tar.gz tar -zxvf redis-5.0.3.tar.gz cd redis-5.0.3 -- sudo apt-get install gcc(若是未安装gcc) make --若是直接成功,进入src目录下,就能够看到相关命令了 make distclean --每次失败须要清空失败的编译结果 cd deps make hiredis jemalloc linenoise lua cd .. --若是这里成功就不用看下面了 sudo sudo apt-get install lua5.1 make make test cd src ./redis-server