註:此處使用的ubuntu版本為14.04.1-server並安裝到VMware® Workstation 12 Pro下,redis為3.0.7
對於redis的安裝,如果是案頭版的ubuntu確實足夠簡單,但作為伺服器使用,我們通常會選擇server版本的ubuntu,而伺服器版的ubuntu安裝redis會稍微複雜一點,這裡就將整個安裝過程說明一下(含錯誤解決)。
首先我們需要下載redis:
wget http://download.redis.io/release/redis-3.0.7.tar.gz
下載好後將其解壓縮:
tar -xzf redis-3.0.7.tar.gz
解壓完成後進入到redis目錄:
cd redis-3.0.7
然後我們使用make命令編譯(會出錯):
make
對,這裡會出錯,server版ubuntu沒有make工具,需要我們自己安裝,然後我們理所當然的輸入以下命令安裝(如果跟筆者使用相同的vm和ubuntu依然會出錯):
sudo apt-get install make
進行幾步後悔提示:請掛載cdrom,因為此時的安裝會自動到 /media/cdrom 下的系統安裝檔案(iso)尋找需要的內容,對於VMware,接下來我們就需要串連磁碟機:
(VMware內建中文的)右鍵當前的虛擬機器->可行動裝置->CD/DVD->設定
串連中選擇使用的ISO檔案,並瀏覽選擇當前系統對應的ISO檔案,確定。
右鍵當前虛擬機器->可行動裝置->CD/DVD->串連
串連好後案頭版的ubuntu會自動掛載光碟機,但是伺服器版的還需要我們自己手動掛載,因為make安裝是提示的是在 /media/cdrom ,所以我們直接使用以下命令掛載光碟機到這個目錄:
mount /dev/cdrom /media/cdrom
接下來我們就可以繼續安裝make了。
make工具安裝完成後,即可使用make命令編譯redis源檔案。
然而,伺服器版本的ubuntu連gcc都沒裝的,所以,還請輸入以下命令安裝gcc:
sudo apt-get install gcc
安裝好後我們再次make。sorry。這裡可能還會報錯(如果使用的redis版本跟筆者相同的話):“error: jemalloc/jemalloc.h: No such file or directory”。
錯誤描述:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directoryzmalloc.h:55:2: error: #error "Newer version of jemalloc required"make[1]: *** [adlist.o] Error 1make[1]: Leaving directory `/data0/src/redis-2.6.2/src'make: *** [all] Error 2
細心的同學可能注意到README檔案中有提到如下內容:
Allocator --------- Selecting a non-default memory allocator when building Redis is done by setting the `MALLOC` environment variable. Redis is compiled and linked against libc malloc by default, with the exception of jemalloc being the default on Linux systems. This default was picked because jemalloc has proven to have fewer fragmentation problems than libc malloc. To force compiling against libc malloc, use: % make MALLOC=libc To compile against jemalloc on Mac OS X systems, use: % make MALLOC=jemalloc
說關於分配器allocator, 如果有 MALLOC 這個環境變數, 會有用這個環境變數的去建立Redis。 而且libc並不是預設的分配器, 預設的是 jemalloc, 因為 jemalloc 被證明有更少的 fragmentation problems 比libc。 但是如果你又沒有 jemalloc 而只有 libc 當然 make 出錯。 所以加這麼一個參數。
輸入以下命令即可解決:
make MALLOC=libc
OK,終於可以愉快的make了。
make完後cd到src目錄ls後就能看到編譯好的檔案,然後可以啟動redis開始玩了。
更多內容請移步:
Redis安裝及Java用戶端的使用淺析