概要
過去にWindows上にRedisをインストールする方法を紹介しましたが、この方法だと実はCygwin上では使えません
今回はCygwin上で実行できるRedisのインストール方法をご紹介します
環境
- Windows7 64bit
- Cygwin 1.7.32-1
- apt-cyg 0.59
- make, gcc-core
- 事前にapt-cygでmakeに必要なパッケージをインストールしておいてください、apt-cygのインストール方法はこちらから
- Redis 2.6.14
インストール
インストールはRedisのソースコードをmakeビルドしてインストールします
Redisインストール
まずはソースをダウンロードして解凍します
wget https://redis.googlecode.com/files/redis-2.6.14.tar.gz
tar zvxf redis-2.6.14.tar.gz
既存のソースコードをCygwin でビルドできるように修正します
cd redis-2.6.14/src/
vim redis.h
redis.hはすでに存在するファイルでこれに追記します
追記する箇所は「Data types」の上に以下を追記します
(左の番号は行数なのでコピペしないでください)
307 #ifdef __CYGWIN__
308 #ifndef SA_ONSTACK
309 #define SA_ONSTACK 0x08000000
310 #endif
311 #endif
312
313 #if defined(__CYGWIN__)
314 #define strtold(a,b) ((long double)strtod((a),(b)))
315 #endif
316
317 /*-----------------------------------------------------------------------------
318 * Data types
319 *----------------------------------------------------------------------------*/
追記できたらあとはビルドします
make
P.S 20160822
make 時に「エラー: 不明な型名 ‘u_int’ です」となってエラーになる場合は以下のように実行してみてください
CFLAGS='-D_GNU_SOURCE'
成功すると最後は以下のようになりました
警告でまくりでしたがうまく成功しているようです
...この前にもいろいろビルドログが出ている...
...
redis-check-aof.c: 関数 ‘process’ 内:
redis-check-aof.c:118:17: 警告: 関数 ‘strcasecmp’ の暗黙的な宣言です [-Wimplicit-function-declaration]
if (strcasecmp(str, "multi") == 0) {
^
redis-check-aof.c: 関数 ‘main’ 内:
redis-check-aof.c:177:5: 警告: 関数 ‘fileno’ の暗黙的な宣言です [-Wimplicit-function-declaration]
if (redis_fstat(fileno(fp),&sb) == -1) {
^
redis-check-aof.c:198:17: 警告: 関数 ‘strncasecmp’ の暗黙的な宣言です [-Wimplicit-function-declaration]
strncasecmp(buf,"y",1) != 0) {
^
LINK redis-check-aof
Hint: To run 'make test' is a good idea ;)
実行するのはmakeだけでOKです(make testやmake installは不要)
動作確認
バイナリファイルが存在するか確認しましょう
redis-2.6.14/src/配下でls -ltr
を実行して以下のファイルがあればOKです
-rwxr-xr-x 1 user None 2056256 11月 26 15:51 redis-server.exe
-rwxr-xr-x 1 user None 2056256 11月 26 15:51 redis-sentinel.exe
-rw-r--r-- 1 user None 139609 11月 26 15:51 redis-cli.o
-rwxr-xr-x 1 user None 424068 11月 26 15:51 redis-cli.exe
-rw-r--r-- 1 user None 52283 11月 26 15:51 redis-benchmark.o
-rwxr-xr-x 1 user None 337399 11月 26 15:51 redis-benchmark.exe
-rw-r--r-- 1 user None 44586 11月 26 15:51 redis-check-dump.o
-rwxr-xr-x 1 user None 114399 11月 26 15:51 redis-check-dump.exe
-rw-r--r-- 1 user None 23556 11月 26 15:51 redis-check-aof.o
-rwxr-xr-x 1 user None 84892 11月 26 15:51 redis-check-aof.exe
あとは
cd redis-2.6.14/src/
./redis-server.exe
でredis-serverを立ち上げて別のcygwinターミナルから
cd redis-2.6.14/src/
./redis-cli.exe
すれば問題なく使えると思います
自分の場合は何も失敗することなくスムーズにmakeビルドできましたが、makeする環境が整っていないとエラーになると思います
その場合はapt-cygがあればapt-cygで必要なライブラリやモジュールをインストールすれば問題ないと思います
0 件のコメント:
コメントを投稿