Redis 2.8.18 安裝報錯,redis2.8.18報錯
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
解決辦法是:
make MALLOC=libc
網上已經有了 解決辦法,為什麼要加這個呢 ,在README 有這個一段話。
Allocator---------Selecting a non-default memory allocator when building Redis is done by settingthe `MALLOC` environment variable. Redis is compiled and linked against libcmalloc by default, with the exception of jemalloc being the default on Linuxsystems. This default was picked because jemalloc has proven to have fewerfragmentation problems than libc malloc.To force compiling against libc malloc, use: % make MALLOC=libcTo compile against jemalloc on Mac OS X systems, use: % make MALLOC=jemalloc
說關於分配器allocator, 如果有MALLOC 這個 環境變數, 會有用這個環境變數的 去建立Redis。
而且libc 並不是預設的 分配器, 預設的是 jemalloc, 因為 jemalloc 被證明 有更少的 fragmentation problems 比libc。
但是如果你又沒有jemalloc 而只有 libc 當然 make 出錯。 所以加這麼一個參數。