溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Redis 2.8.18 安裝報錯 error: jemalloc/jemalloc.h: No such file or directory解決方法

發(fā)布時間:2020-07-08 00:45:14 來源:網(wǎng)絡(luò) 閱讀:662 作者:dreamer192 欄目:開發(fā)技術(shù)

錯誤描述

安裝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


說關(guān)于分配器allocator, 如果有MALLOC  這個 環(huán)境變量, 會有用這個環(huán)境變量的 去建立Redis。

而且libc 并不是默認(rèn)的 分配器, 默認(rèn)的是 jemalloc, 因為 jemalloc 被證明 有更少的 fragmentation problems 比libc。

但是如果你又沒有jemalloc 而只有 libc 當(dāng)然 make 出錯。 所以加這么一個參數(shù)。

解決辦法

make MALLOC=libc

make PREFIX=/opt/redis MALLOC=libc install


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI