Stiamo iniziando una nuova serie su CouchDB. Questo è il primo articolo della serie CouchDB.
CouchDB è un progetto Apache.
Proprio come suggerisce il nome, è un database. CouchDB è un database NoSQL. I database NoSQL non hanno schemi, tabelle, ecc. Che in genere vedrai in un database tradizionale come Oracle o MySQL. I dati in CouchDB vengono archiviati come documento JSON, a cui puoi accedere da un browser Web utilizzando HTTP.
Questo articolo spiega come installare CouchDB su sistemi basati su RHEL. Ad esempio, CentOS, Red Hat, Oracle Enterprise Linux, ecc.
Esistono due metodi per installare CouchDB. Puoi installarlo dal repository EPEL o installarlo dal codice sorgente di CouchDB.
Metodo 1:installazione da EPEL
Innanzitutto, abilita il repository EPEL come spiegato in precedenza.
Verifica che couchdb sia disponibile per l'installazione di yum.
# yum info couchdb Name : couchdb Arch : x86_64 Version : 1.0.3 Release : 2.el6 Size : 1.7 M Repo : epel Summary : A document database server, accessible via a RESTful JSON API
Installa couchdb. A seconda del tuo sistema, questo potrebbe installare molti pacchetti dipendenti. Sul mio sistema ha installato 36 pacchetti in totale.
# yum install couchdb
Modifica il file local.ini e aggiungi una riga per bind_address e fornisci l'indirizzo ip del sistema su cui è installato couchdb.
# vi /etc/couchdb/local.ini [httpd] ;port = 5984 ;bind_address = 127.0.0.1 bind_address = 192.168.101.38
Avvia i servizi couchdb
# service couchdb start Starting couchdb: [ OK ] # service couchdb status couchdb (pid 29915) is running...
Verifica che couchdb funzioni andando all'URL:http://{your-ip-address}:5984 , dovrebbe visualizzare una pagina web con il seguente messaggio.
{"couchdb":"Benvenuto" ”,versione”:”1.0.3″}
Vai a:http://{your-ip-address}:5984/_utils/ da dove puoi creare e gestire il database couchdb.
Metodo 2:installazione dal codice sorgente di CouchDB
Se ti piace installarlo da solo dal codice sorgente, prima dovresti soddisfare tutte le dipendenze.
Installa i seguenti pacchetti standard dal repository CentOS.
# yum info gcc libtool xulrunner-devel libicu-devel openssl-devel
Installa Erlang
Scarica l'ultima versione di Erland da qui. Oppure puoi utilizzare wget come mostrato di seguito per scaricarlo direttamente.
cd /usr/src wget http://www.erlang.org/download/otp_src_R15B01.tar.gz tar xvfz otp_src_R15B01.tar.gz
Installeremo couchdb e tutte le sue dipendenze nella directory /opt/couchdb. Quindi, durante l'installazione di erlang, dai il prefisso /opt/couchdb/erlang come mostrato di seguito.
cd otp_src_R15B01 ./configure --prefix=/opt/couchdb/erlang --without-termcap --without-javac --enable-smp-support --disable-hipe make make install
Installa Curl
Scarica l'ultima versione di Curl da qui. Oppure puoi utilizzare wget come mostrato di seguito per scaricarlo direttamente.
cd /usr/src wget http://curl.haxx.se/download/curl-7.26.0.tar.gz tar xvfz curl-7.25.0.tar.gz
Proprio come Erlang, installeremo Curl anche nella directory /opt/couchdb. Quindi, durante l'installazione di curl, dai il prefisso /opt/couchdb/curl come mostrato di seguito.
cd curl-7.25.0 ./configure --prefix=/opt/couchdb/curl make make install
Motore SpiderMonkey JS
Scarica l'ultima versione di SpiderMonkey JS da qui. Oppure puoi utilizzare wget come mostrato di seguito per scaricarlo direttamente.
cd /usr/src wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz tar xvfz js185-1.0.0.tar.gz
Tieni presente che devi eseguire il cd nella sottodirectory "js/src" in js-1.8.5 per eseguire ./configure e fare come mostrato di seguito per installare il motore js spidermonkey.
cd js-1.8.5/js/src ./configure make make install
Vedrai libmozjs185.so.1.0.0 e libmozjs185-1.0.a installati in /usr/local/lib
# ls -ltr /usr/local/lib -rwxr-xr-x. 1 root root 3671764 May 30 09:39 libmozjs185.so.1.0.0 -rwxr-xr-x. 1 root root 5523616 May 30 09:39 libmozjs185-1.0.a lrwxrwxrwx. 1 root root 35 May 30 09:40 libmozjs185.so.1.0 -> /usr/local/lib/libmozjs185.so.1.0.0 lrwxrwxrwx. 1 root root 33 May 30 09:40 libmozjs185.so -> /usr/local/lib/libmozjs185.so.1.0
Nota:se la libreria JS di spidermonkey non è installata, riceverai il seguente messaggio di errore durante il tentativo di eseguire ./configure menzionato nel passaggio successivo.
checking for JS_NewObject in -lmozjs185... no configure: error: Could not find the js library. Is the Mozilla SpiderMonkey library installed?
Installa CouchDB
Scarica l'ultima versione di Couchdb da qui. Oppure puoi utilizzare wget come mostrato di seguito per scaricarlo direttamente.
cd /usr/src wget http://apache.mirrors.pair.com/couchdb/releases/1.2.0/apache-couchdb-1.2.0.tar.gz tar xvfz apache-couchdb-1.2.0.tar.gz
Durante l'installazione di couchdb, è necessario impostare le variabili di ambiente ERL, ERLC, CURL_CONFIG come mostrato di seguito. Questi sono richiesti durante il ./config di couchdb.
Proprio come i prereq, installeremo couchdb nella directory /opt/couchdb. Quindi, dai il prefisso come /opt/couchdb/couchdb come mostrato di seguito.
cd apache-couchdb-1.2.0 export ERL=/opt/couchdb/erlang/bin/erl export ERLC=/opt/couchdb/erlang/bin/erlc export CURL_CONFIG=/opt/couchdb/curl/bin/curl-config export LDFLAGS=-L/opt/couchdb/curl/lib ./configure --prefix=/opt/couchdb/couchdb --with-erlang=/opt/couchdb/erlang/lib/erlang/usr/include/ --enable-js-trunk make make install
Nota:utilizzerai –enable-js-trunk solo se hai installato l'ultima versione (qualcosa di più recente di js185-1.0.0) del motore SpiderMonkey JS. Ti consiglio di usare l'opzione –enable-js-trunk.
Se non stai utilizzando l'ultima versione del motore JS di spidermonekey, potresti voler usare i flag –with-js-include e –with-js-lib e puntarlo nella posizione appropriata come mostrato di seguito.
./configure --prefix=/opt/couchdb/couchdb --with-erlang=/opt/couchdb/erlang/lib/erlang/usr/include/ --with-js-include=/usr/include/xulrunner-2/ --with-js-lib=/usr/lib64/xulrunner-devel-2/lib/
Nota:se hai installato l'ultima versione di spidermonkey js e se non stai usando –enable-js-trunk, riceverai il seguente messaggio di errore durante "make" di couchdb:
cc1: warnings being treated as errors In file included from couch_js/main.c:20: couch_js/sm170.c: In function req_status: couch_js/sm170.c:105: error: implicit declaration of function INT_FITS_IN_JSVAL couch_js/sm170.c: In function evalcx: couch_js/sm170.c:138: error: implicit declaration of function JS_GetStringChars couch_js/sm170.c:138: error: assignment makes pointer from integer without a cast couch_js/sm170.c: In function seal: couch_js/sm170.c:220: error: implicit declaration of function JS_SealObject couch_js/sm170.c: At top level: couch_js/sm170.c:236: error: initialization from incompatible pointer type
Impostazione dei servizi di avvio di CouchDB
Crea un utente couchdb richiesto dal programma di avvio couchdb.
# adduser couchdb
Cambia la proprietà della directory var, dove couchdb scriverà i log e alcune altre informazioni.
# chown -R couchdb /opt/couchdb/couchdb/var/
Crea un collegamento in /etc/init.d per il servizio couchdb
# ln -s /opt/couchdb/couchdb/etc/rc.d/couchdb /etc/init.d/couchdb
Finalmente avvia il servizio couchdb.
# service couchdb start Starting database server couchdb
Verifica che couchdb funzioni andando all'URL:http://{your-ip-address}:5984 , dovrebbe visualizzare una pagina web con il seguente messaggio.
{"couchdb":"Benvenuto" ”,versione”:”1.0.3″}
Vai a:http://{your-ip-address}:5984/_utils/ da dove puoi creare e gestire il database coucbdb.
Il prossimo articolo di questa serie spiegherà come creare un database CouchDB ed eseguire alcune manipolazioni di base dei dati.