Ubuntu16安装Redis 5.0
背景
之前用的redis3.0,今天想尝试下redis的cluster功能,才现3.0还需要ruby和gem,恰好又知道5.0已经自带集群功能了,所有决定下载5.0,这样既让集群用起来更方便,又可以体验新版的redis。
下载
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上遇到的这个问题),于是乎再次执行,没想到还是失败。
这个时候基本想放弃了,但不死心,去墙外的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已经没有了,不用管它;
cd deps
make hiredis jemalloc linenoise lua geohash-int
cd ..
make install
这里本来基本是已经要解决make失败的问题了,没想到又出现了个意外情况,这里本来基本是已经要解决make失败的问题了,没想到又出现了个意外情况,再次执行异常信息
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,终于出现
Hint: It's a good idea to run 'make test' ;
,安装成功,make test
执行测试,everything is ok.
进入src目录 ./redis-server
,执行成功,ok!
看这里就够了
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