CentOSにredisをインストールした時のメモ

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