Donnerstag, 30. August 2012

Installation von CouchDB 1.2 unter Ubuntu 10.04 LTS


Leider bietet Ubuntu in der Version 10.04 in den offiziellen Paketquellen nur die Version 0.10.0 der CouchDB an.
Deshalb muss man sich die Version 1.2 der CouchDB aus den Sourcen selber kompilieren.

Der erste Schritt besteht daraus die notwendigen Abhängigkeiten zum Kompilieren der CouchDB zu installieren:

sudo apt-get build-dep couchdb

Danach entpackt man die Sourcen der CouchDB und wechselt in das extrahierte Verzeichnis per

tar -zxvf apache-couchdb-1.2.0.tar.gz && cd apache-couchdb-1.2.0

Der nächste Schritt besteht darin, dass configure Skript mit den zugehörigen Parametern ausführen.
Wichtig ist es unter Ubuntu 10.04 den LD_RUN_PATH als auch die Pfade zu den Bibliotheken und Headerfiles der Mozilla Javascript Runtime anzugeben. Ansonsten funktionieren keine Views in der CouchDB.

LD_RUN_PATH=/usr/lib/xulrunner-1.9.28 ./configure –with-js-lib=/usr/lib/xulrunner-devel-1.9.2.28/lib/ --with-js-include=/usr/lib/xulrunner-devel-1.9.1.5/include –prefix=<prefix>

Danach wird das Kompilieren der Sourcen gestartet:

LD_RUN_PATH=/usr/lib/xulrunner-1.9.28 make

Das Kompilieren bricht ab mit der Fehlermeldung:

./mochifmt.erl:none: error in parse transform 'eunit_autoexport'
In neueren Versionen der CouchDB braucht Mochiweb für die Installation erlang-eunit. Diese Abhängigkeit bestand noch nicht mit der Version des Paketes von Ubuntu. Also wird erlang-eunit über apt installiert und das Kompilieren erneut gestartet.

sudo apt-get install erlang-eunit
LD_RUN_PATH=/usr/lib/xulrunner-1.9.28 make

Danach werden die übersetzen Dateien noch in das Zielverzeichnis (prefix) kopiert:
make install

Hiernach sollte man überprüfen ob die Datei <couchdb Verzeichnis>/lib/couchdb/bin/couchjs auch gegen die Mozilla Bibliothek libmozjs.so gelinkt ist:

ldd couchdb/lib/couchdb/bin/couchjs
linux-vdso.so.1 => (0x00007fffabdff000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007f4f7929f000)
libmozjs.so => /usr/lib/xulrunner-1.9.2.28/libmozjs.so (0x00007f4f78f85000)
libm.so.6 => /lib/libm.so.6 (0x00007f4f78d01000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f4f78ac8000)
libc.so.6 => /lib/libc.so.6 (0x00007f4f78745000)
libidn.so.11 => /usr/lib/libidn.so.11 (0x00007f4f78511000)
liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x00007f4f78303000)
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x00007f4f780b7000)
librt.so.1 => /lib/librt.so.1 (0x00007f4f77eae000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007f4f77c7a000)

Nun hat man fast das Ziel erreicht und es muss nur noch die CouchDB gestartet werden.
Beim Starten der CouchDB wird nur eine Fehlermeldung angezeigt und der Prozess beendet sich wieder

{"init terminating in do_boot",{{badmatch,{error,{"no such file or directory","os_mon.app"}}},[{couch,start,0},{init,start_it,1},{init,start_em,1}]}}

Also installieren wir auch noch erlang-os-mon

sudo apt-get install erlang-os-mon

und haben nun endlich unserer Ziel erreicht.
Eine lauffähige CouchDB 1.2.0 unter Ubuntu 10.04






Keine Kommentare:

Kommentar veröffentlichen