Zunächst wird CouchDB als Proof-of-Concept aus den Quellen kompiliert. Dies stellt sich als komplizierter als gedacht heraus, da die Dokumentation unvollständig (Stichworte ./bootstrap
& INSTALL
) und fehlerhaft (Apache CouchDB README
im Couchbase Repo?) ist.
./configure --help
hilft.
In einem zweiten Schritt wird GeoCouch an den Sourcen von CouchDB kompiliert, was es erlaubt CouchDB mit GeoCouch zu starten.
Zunächst sind die lokalen Repos vorzubereiten:
cd ~
mkdir src
cd src
git clone https://github.com/couchbase/geocouch.git
git clone https://github.com/couchbase/couchdb.git
cd couchdb/
Anders als in der offiziellen Anleitung muss bevor ./configure
überhaupt existiert ./bootstrap
ausgeführt werden.
./bootstrap
./configure
Ein erster Konfigurationsversuch schlägt fehl:
erlang
64bit nicht gefunden. (http://wiki.apache.org/couchdb/Installing_on_RHEL5) :./configure --with-erlang=/usr/lib64/erlang/usr/include
js-devel
nicht auf Uberspace verfügbar, also Spidermonkey installieren:
cd ..
wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
tar -zxvf js185-1.0.0.tar.gz
cd js-1.8.5/js/src/
./configure && make
cd ../couchdb/
Konfigurieren und Kompilieren:
./configure --with-js-lib=/home/OBFUSCATED/src/js-1.8.5/js/src --with-js-include=/home/OBFUSCATED/src/js-1.8.5/js/src --with-erlang=/usr/lib64/erlang/usr/include
make
Im gist unten angehängte Fehler verhindern auf uberspace die Kompilierung. Stichwort JSScript
.
Auch gmake
hilft nicht weiter.
- Hat uberspace sein CouchDB selbst kompiliert (
↗️ Tweet) oder aus den Paketquellen installiert?
- Gibt es Erfahrungen wo zwischen
./configure
undmake
die Ungereimtheit auftritt?
Es bietet sich an die aufeinander angepassten CouchDB und GeoCouch Releases zu verwenden, da ältere CouchDB Versionen anscheinend Probleme mit neueren Spidermonkeys haben und, vermutlich unweigerlich, zum erwähnten JSScript
Fehler führen.
cd ~
mkdir src && cd src
git clone https://github.com/couchbase/geocouch.git
git clone https://github.com/apache/couchdb.git
cd couchdb
git checkout 1.5.0
Auch die Apache Anleitung erwähnt ./bootstrap
nicht; trotzdem wird es zwingend zur Generierung des ./configure
Scriptes genutzt:
./bootstrap
- schlägt fehl:
Unable to find the `ax_check_icu.m4' file.
Have you installed GNU Autoconf Archive?
- Ich gehe davon aus, dass der Apache CouchDB Branch andere Voraussetzungen hat, als der Couchbase 1.2.x Fork. Würde uberspace zur Unterstützung die vrmtl. fehlenden Autoconf Pakete auf
canis
Bereitstellen? Dann erübrige sich auch die Verwendung eines selbstkompilierten Spidermonkeys.
Ausschnitte einer beispielhaften, funktionierenden (RHEL-basierten) Konfiguration. Alle weiteren Schritte wie oben.
- 64bit
js-devel
underlang
Pfade (rpm -ql js-devel erlang-erts
) übergeben:
./configure --with-erlang=/usr/lib64/erlang/usr/include --with-js-include=/usr/include/js/ --with-js-lib=/usr/lib64/
- für Apache CouchDB 1.5.0 fehlte noch
gcc-c++
, obwohl es in den in den Voraussetzungen enthaltenen "Development Tools" enthalten sein sollte, die aber installiert waren:
yum install gcc-c++ -y
Abschließend sind noch die Dienstbenutzer und das Startup-Script einzurichten
-
http://uberspace.de/dokuwiki/database:couchdb Uberspace hat zwar CouchDB, aber nicht GeoCouch