Redisを使用して、新しい専用のcentos 6.4システムをセットアップしています。 redisを何度もインストールしましたが、この問題に遭遇したことはありません(centos 6.4を以前に使用したことがありません)。
cd redis-2.6.16
Sudo make install
エラー:
MAKE jemalloc
cd jemalloc && ./configure --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS=""
/bin/sh: ./configure: Permission denied
make[2]: *** [jemalloc] Error 126
make[2]: Leaving directory `/tmp/redis32/redis-3.2.6/deps'
make[1]: [persist-settings] Error 2 (ignored)
sh: ./mkreleasehdr.sh: Permission denied
and later:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
Jemallocを直接(redis tarballの/ src領域から)ビルドしようとすると、他のエラーには以下が含まれます。
cd src && make jemalloc
sh: ./mkreleasehdr.sh: Permission denied
make[1]: Entering directory `/tmp/rediswork/redis-2.6.16/src'
make[1]: *** No rule to make target `jemalloc'. Stop.
make[1]: Leaving directory `/tmp/rediswork/redis-2.6.16/src'
make: *** [jemalloc] Error 2
私もredis 2.6.7を試してみましたが、同じ問題があります。
私はあちこちを掘り下げており、進むべき道を見つけることができません。
このシステムでは/tmp
がマウントされましたnoexec
。
Redisは、インストール中に/tmp
からいくつかのシェルスクリプトを実行するため、noexec
フラグなしで/tmp
を再マウントすることが解決策です。これは一時的にこれを行います:
mount -o remount,exec /tmp
この解決策はすべてのredis 2.xおよび3.xバージョンに適用されることを追加する必要があります(4.xは私にはあまり知られていません)
CentOS 6.4で同じ問題に遭遇し、次のコマンドを実行する必要がありました。
cd deps
make hiredis jemalloc linenoise lua geohash-int
cd ..
make install
なぜdepが構築されなかったのかは分かりませんが、過去にあったと思いました。ただし、これにより、必要なバージョンのredisを使用できるようになりました。
パッケージ(gcc)がないために最初の障害が発生した後も、同じエラーが発生しました。
gccをインストールした後、もう一度make
を試行すると、これらのエラーが発生しました:
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
コマンドの失敗後にここに残ったいくつかのファイルが原因でした。どうやら私は次のコマンドでこれらのファイルをクリーンアップする必要がありました:
make distclean
そして、再度make
を実行すると、うまくいきました。
ソース: https://groups.google.com/forum/#!topic/redis-db/-guYpX2OCSk
要求されたパッケージをインストールしてみましたか?
yum install jemalloc-devel
これはEPELリポジトリにあります。これは、CentOSシステムにすでに追加されているはずです。
考えてみてください、redis
もEPELにあります...
ダーティメイクファイルが原因で発生するため、実行前に
$ Sudo make
これを実行してください:
$ make distclean
すべての依存関係が解決されることを確認してください。
次のように、RHEL-6.6上のRedis 3.0.2でこれを解決しました。
Redisインストールディレクトリから、
./deps/update-jemalloc.sh 3.6.0
を実行します(ここで3.6.0は、この記事の執筆時点でRedis 3.0.2と連携するjemallocの最新バージョンです)
make distclean && make
を実行します
ビルドを途中で終了してもう一度作成しようとしたところ、この問題が発生しました。 make clean
は役に立たなかったので、ディレクトリを削除してやり直しましたが、正常にコンパイルされました。
centOS-6.6x86でredis-3.0.0を作成したときに遭遇したのと同じ問題、これを作成してみてください。
make MALLOC=libc
最初に、gccがインストールされていなかったため、redis.<version>.tar.gz
からのファイルの抽出に失敗しました。
gcc: Command not found
だから私はgccをインストールしました:
Sudo yum install gcc-c++
それから私はもう一度メイクを実行しました、私は受け取りました:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
Redis extracedフォルダーを削除し、redis.<version>.tar.gz
から再抽出しました。今回はgccがインストールされているため、make
を実行するとすべてが正常に実行されました。私はredisで抽出されたディレクトリ内から実行しました:
Sudo make install