Redisのコンパイルで致命的なエラーが報告されます:jemalloc / jemalloc.h:そのようなファイルまたはディレクトリはありません

一つ、問題

ではcentOS7設置環境redis-5.0.4コンパイルフェーズで発生した致命的なエラー:jemalloc / jemalloc.h:そのようなファイルまたはディレクトリ

二、原因分析

では、次の通路:RedisREADME.md

アロケーター

Redisをビルドするときにデフォルト以外のメモリアロケータを選択するには
MALLOC環境変数を設定ます。
Linux
システムのデフォルトであるjemallocを除いて、Redisはデフォルトでコンパイルされ、libcmallocに対してリンクされますjemallocはlibcmalloc
よりも断片化の問題が少ないことが証明されているため、このデフォルトが選択されました

libc mallocに対してコンパイルを強制するには、次を使用します。

%make MALLOC = libc

Mac OS Xシステムでjemallocに対してコンパイルするには、次を使用します。

%make MALLOC = jemalloc

アロケーターallocatorについて言えば、MALLOCこの環境変数がある場合は、Redisのビルドに使用されます。また、これはlibcデフォルトのアロケータではなく、デフォルトです。これは存在するよりも少ないjemallocことjemallocが証明されいるためですしかし、コースエラーだけがない場合したがって、そのようなパラメータを追加します。libcfragmentation problemsjemalloclibcmake

三、解決策

1.make指定販売代理店はlibc

make MALLOC=libc

2.jemallocディストリビューターをインストールします

1.インストールjemalloc

wget https://github.com/jemalloc/jemalloc/releases/download/5.0.1/jemalloc-5.0.1.tar.bz2
tar -jxvf jemalloc-5.0.1.tar.bz2
cd jemalloc-5.0.1
yum install autogen autoconf
 
./autogen.sh
make -j2
make install
ldconfig
cd ../
rm -rf jemalloc-5.0.1 jemalloc-5.0.1.tar.bz2

2.
すでに解凍されているredisパッケージを最初に削除する前に再コンパイルし、再抽出します。その後、実行しmakemake installすることができます。

おすすめ

転載: blog.csdn.net/small_love/article/details/114441912