CentOS 5.8にredis 2.6.7をインストールした際にやった事をメモしておく。
> wget http://download.redis.io/redis-stable.tar.gz > tar xvzf redis-stable.tar.gz > cd redis-stable > make
Redis Quick Start – Redisに従い、上記コマンドを実行すると以下のエラーが発生。
zmalloc.o: In function `zmalloc_used_memory': /home/tomute/redis_lessons/redis-stable/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4' collect2: ld はステータス 1 で終了しました make[1]: *** [redis-server] エラー 1 make[1]: ディレクトリ `/home/tomute/redis_lessons/redis-stable/src' から出ます make: *** [all] エラー 2
ということでError compiling branch 2.6 in RHEL5 with 32bit mode · Issue #753 · antirez/redis · GitHub等を参考に、Makefileを以下のように修正。
(変更前) $(MAKE) CFLAGS="-m32" LDFLAGS="-m32" (変更後) -march=i686を追加 $(MAKE) CFLAGS="-m32 -march=i686" LDFLAGS="-m32"
その後以下のように再度makeすると無事makeに成功。
> make clean > make
が、make testをすると以下のエラーが発生。
You need 'tclsh8.5' in order to run the Redis test make[1]: *** [test] エラー 1 make[1]: ディレクトリ `/home/tomute/redis_lessons/redis-stable/src' から出ます make: *** [test] エラー 2
tclsh8.5が必要ということで、tclsh8.5をインストールして、再度make testを実施すると無事成功。
最後にmake installを実行すればインストール終了である。
インストールが成功したかどうかは以下のコマンドを実行して確認する。
> redis-server --version Redis server v=2.6.7 sha=00000000:0 malloc=jemalloc-3.2.0 bits=32
【tclsh8.5のインストール】
> wget http://prdownloads.sourceforge.net/tcl/tcl8.5.13-src.tar.gz > tar xvzf tcl8.5.13-src.tar.gz > cd tcl8.5.13/unix > ./configure > make > make test
【メモ】
・CentOSのバージョン確認方法
> cat /etc/redhat-release