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