Ubuntu16安装Redis 5.0

背景

以前用的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