Comenzamos una nueva serie en CouchDB. Este es el primer artículo de la serie CouchDB.
CouchDB es un proyecto de Apache.
Al igual que el nombre sugiere que es una base de datos. CouchDB es una base de datos NoSQL. Las bases de datos NoSQL no tienen ningún esquema, tablas, etc., que normalmente verá en bases de datos tradicionales como Oracle o MySQL. Los datos en CouchDB se almacenan como documento JSON, al que puede acceder desde un navegador web mediante HTTP.
Este artículo explica cómo instalar CouchDB en sistemas basados en RHEL. Por ejemplo, CentOS, Red Hat, Oracle Enterprise Linux, etc.
Hay dos métodos para instalar CouchDB. Puede instalarlo desde el repositorio EPEL o instalarlo desde el código fuente de CouchDB.
Método 1:Instalar desde EPEL
Primero, habilite el repositorio EPEL como explicamos anteriormente.
Verifique que couchdb esté disponible para la instalación de 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
Instalar couchdb. Dependiendo de su sistema, esto podría instalar muchos paquetes dependientes. En mi sistema, instaló 36 paquetes en total.
# yum install couchdb
Modifique el archivo local.ini y agregue una línea para bind_address y proporcione la dirección IP del sistema donde está instalado couchdb.
# vi /etc/couchdb/local.ini [httpd] ;port = 5984 ;bind_address = 127.0.0.1 bind_address = 192.168.101.38
Inicie los servicios de couchdb
# service couchdb start Starting couchdb: [ OK ] # service couchdb status couchdb (pid 29915) is running...
Verifique que couchdb funcione yendo a la URL:http://{your-ip-address}:5984, debería mostrar una página web con el siguiente mensaje.
{“couchdb”:”Bienvenido” ,”versión”:”1.0.3″}
Vaya a:http://{your-ip-address}:5984/_utils/ desde donde puede crear y administrar la base de datos de couchdb.
Método 2:Instalar desde el código fuente de CouchDB
Si desea instalarlo usted mismo desde el código fuente, primero debe satisfacer todas las dependencias.
Instale los siguientes paquetes estándar desde el repositorio de CentOS.
# yum info gcc libtool xulrunner-devel libicu-devel openssl-devel
Instalar Erlang
Descargue la última versión de Erland desde aquí. O bien, puede usar el wget como se muestra a continuación para descargarlo directamente.
cd /usr/src wget http://www.erlang.org/download/otp_src_R15B01.tar.gz tar xvfz otp_src_R15B01.tar.gz
Instalaremos couchdb y todas sus dependencias en el directorio /opt/couchdb. Entonces, al instalar erlang, proporcione el prefijo /opt/couchdb/erlang como se muestra a continuación.
cd otp_src_R15B01 ./configure --prefix=/opt/couchdb/erlang --without-termcap --without-javac --enable-smp-support --disable-hipe make make install
Instalar rizo
Descarga la última versión de Curl desde aquí. O bien, puede usar el wget como se muestra a continuación para descargarlo directamente.
cd /usr/src wget http://curl.haxx.se/download/curl-7.26.0.tar.gz tar xvfz curl-7.25.0.tar.gz
Al igual que Erlang, instalaremos Curl también en el directorio /opt/couchdb. Entonces, al instalar curl, proporcione el prefijo /opt/couchdb/curl como se muestra a continuación.
cd curl-7.25.0 ./configure --prefix=/opt/couchdb/curl make make install
Motor SpiderMonkey JS
Descarga la última versión de SpiderMonkey JS desde aquí. O bien, puede usar el wget como se muestra a continuación para descargarlo directamente.
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
Tenga en cuenta que debe hacer un cd en el subdirectorio "js/src" en js-1.8.5 para hacer ./configure y hacer como se muestra a continuación para instalar el motor spidermonkey js.
cd js-1.8.5/js/src ./configure make make install
Verá libmozjs185.so.1.0.0 y libmozjs185-1.0.a instalados en /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:Si la biblioteca JS de spidermonkey no está instalada, obtendrá el siguiente mensaje de error al intentar hacer ./configure mencionado en el siguiente paso.
checking for JS_NewObject in -lmozjs185... no configure: error: Could not find the js library. Is the Mozilla SpiderMonkey library installed?
Instalar CouchDB
Descargue la última versión de Couchdb desde aquí. O bien, puede usar el wget como se muestra a continuación para descargarlo directamente.
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
Al instalar couchdb, debe configurar las variables de entorno ERL, ERLC, CURL_CONFIG como se muestra a continuación. Estos son necesarios durante el ./config de couchdb.
Al igual que los requisitos previos, instalaremos couchdb en el directorio /opt/couchdb. Entonces, proporcione el prefijo como /opt/couchdb/couchdb como se muestra a continuación.
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:usará –enable-js-trunk solo si ha instalado la última versión (cualquier versión más nueva que js185-1.0.0) del motor SpiderMonkey JS. Le recomiendo que use la opción –enable-js-trunk.
Si no está utilizando la última versión del motor spidermonekey JS, es posible que desee utilizar las banderas –with-js-include y –with-js-lib y apuntarlas a la ubicación adecuada, como se muestra a continuación.
./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:si instaló la última versión de spidermonkey js y no está utilizando –enable-js-trunk, obtendrá el siguiente mensaje de error durante la "creación" de 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
Configurar los servicios de inicio de CouchDB
Cree un usuario de couchdb requerido por el programa de inicio de couchdb.
# adduser couchdb
Cambie la propiedad del directorio var, donde couchdb escribirá registros y alguna otra información.
# chown -R couchdb /opt/couchdb/couchdb/var/
Cree un enlace en /etc/init.d para el servicio couchdb
# ln -s /opt/couchdb/couchdb/etc/rc.d/couchdb /etc/init.d/couchdb
Finalmente inicie el servicio de couchdb.
# service couchdb start Starting database server couchdb
Verifique que couchdb funcione yendo a la URL:http://{your-ip-address}:5984, debería mostrar una página web con el siguiente mensaje.
{“couchdb”:”Bienvenido” ,”versión”:”1.0.3″}
Vaya a:http://{su-dirección-ip}:5984/_utils/ desde donde puede crear y administrar la base de datos coucbdb.
El próximo artículo de esta serie explicará cómo crear una base de datos CouchDB y realizar una manipulación básica de datos.