redis 编译安装过程中出现问题汇总: 通过解压方式安装,tar -zvxf redis-3.2.9.tar.gz 进入 解压后的文件目录,如下 cd /home/redis-3.2.9/ 进行编译安装,在编译安装过程中出现如下错误: [root@localhost redis-3.2.9]# make cd src && make all make[1]: 进入目录“/home/redis-3.2.9/src” CC adlist.o In file included from adlist.c:34:0: zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录 #include <jemalloc/jemalloc.h> ^ 编译中断。 make[1]: *** [adlist.o] 错误 1 make[1]: 离开目录“/home/redis-3.2.9/src” make: *** [all] 错误 2

这时使用make MALLOC=libc,进行安装: root@localhost src]#make MALLOC=libc rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o .gcda .gcno .gcov redis.info lcov-html (cd ../deps && make distclean) make[1]: 进入目录“/home/redis-3.2.9/deps” (cd hiredis && make clean) > /dev/null || true (cd linenoise && make clean) > /dev/null || true (cd lua && make clean) > /dev/null || true (cd geohash-int && make clean) > /dev/null || true (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true (rm -f .make-) make[1]: 离开目录“/home/redis-3.2.9/deps” (rm -f .make-) echo STD=-std=c99 -pedantic -DREDIS_STATIC= >> .make-settings echo WARN=-Wall -W >> .make-settings echo OPT=-O2 >> .make-settings echo MALLOC=libc >> .make-settings echo CFLAGS= >> .make-settings echo LDFLAGS= >> .make-settings echo REDIS_CFLAGS= >> .make-settings echo REDIS_LDFLAGS= >> .make-settings echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -DREDIS_STATIC= -Wall -W -O2 -g -ggdb -I../deps/geohash-int -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src >> .make-settings echo PREV_FINAL_LDFLAGS= -g -ggdb -rdynamic >> .make-settings (cd ../deps && make hiredis linenoise lua geohash-int) make[1]: 进入目录“/home/redis-3.2.9/deps” (cd hiredis && make clean) > /dev/null || true (cd linenoise && make clean) > /dev/null || true (cd lua && make clean) > /dev/null || true (cd geohash-int && make clean) > /dev/null || true (cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true (rm -f .make-) (echo "" > .make-cflags) (echo "" > .make-ldflags) MAKE hiredis cd hiredis && make static make[2]: 进入目录“/home/redis-3.2.9/deps/hiredis” cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c ar rcs libhiredis.a net.o hiredis.o sds.o async.o make[2]: 离开目录“/home/redis-3.2.9/deps/hiredis” . . . . CC redis-benchmark.o LINK redis-benchmark INSTALL redis-check-rdb CC redis-check-aof.o LINK redis-check-aof

Hint: It's a good idea to run 'make test' ;)

安装好后,进入src目录下,make test,报You need tcl 8.5 or newer in order to run the Redis test,然后安装tcl,如果可以在线安装就在线安装,如果不行同样下载对应需要安装版本tcl 8.5 tar包进行安装。 root@localhost redis-3.2.9]# make test cd src && make test make[1]: 进入目录“/home/redis-3.2.9/src” You need tcl 8.5 or newer in order to run the Redis test make[1]: *** [test] 错误 1 make[1]: 离开目录“/home/redis-3.2.9/src” make: *** [test] 错误 2

[root@localhost redis-3.2.9]# yum install tcl 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile

  • base: mirrors.cn99.com
  • epel: mirrors.aliyun.com
  • extras: mirrors.njupt.edu.cn
  • updates: mirrors.cn99.com 正在解决依赖关系 --> 正在检查事务

完毕! [root@localhost redis-3.2.9]# make test cd src && make test make[1]: 进入目录“/home/redis-3.2.9/src” Cleanup: may take some time... OK Starting test server at port 11111 [ready]: 2729 Testing unit/printver . . . . 106 seconds - integration/replication-psync

\o/ All tests passed without errors!

Cleanup: may take some time... OK make[1]: 离开目录“/home/redis-3.2.9/src”