Redisインストールエラーerror:jemalloc/jemalloc.h:No such file or directory解決方法
1498 ワード
エラー記述
Redis 2.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
原因分析
READMEでこの一節があります.
Allocator --------- Selecting a non-default memory allocator when building Redis is done by setting the `MALLOC` environment variable. Redis is compiled and linked against libc malloc by default, with the exception of jemalloc being the default on Linux systems. This default was picked because jemalloc has proven to have fewer fragmentation problems than libc malloc. To force compiling against libc malloc, use: % make MALLOC=libc To compile against jemalloc on Mac OS X systems, use: % make MALLOC=jemalloc
ディスペンサallocatorについては、MALLOCという環境変数があれば、この環境変数でRedisを作成することができます.
またlibcはデフォルトのディスペンサではなく、デフォルトはjemallocです.jemallocはlibcよりもfragmentation problemsが少ないことが証明されているからです.
しかし、jemallocがなくlibcだけが間違っている場合は、もちろんmakeが間違っています.だからこのようなパラメータを追加します.
解決策
make MALLOC=libc