CouchDB 0.9 auf Debian Lenny

Debian Lenny hat die CouchDB bereits im Package System, allerdings nur in Version 0.8. Da sich in der 0.9er u.a. die API für die Design Dokumente leicht geändert hat und diese Änderung bereits in die neuesten Wrapper eingeflossen sind (wie z.B. PHPillow, und inzwischen auch die Version 0.10 veröffentlicht wurde, ist es keine gute Idee mehr, noch auf 0.8 eine neue Entwicklung zu starten.

Aus dem Grund muß wohl selbst Hand angelegt werden.

Für eine 0.9er Version hat freundlicherweise schon jemand Vorarbeit geleistet:

http://hostingfu.com/article/building-couchdb-0-9-debian-5

Um das Problem der fehlenden Abhängigkeiten möglichst auf einmal zu erschlagen, installieren wir der Einfachheit halber doch erst einmal die 0.8er Version und löschen sie anschließend gleich wieder:

$ sudo su
# apt-get install couchdb
# apt-get remove couchdb

Wir überprüfen noch einmal, ob das Ding wirklich weg ist, da Erlang (die Programmiersprache, in der CouchDB programmiert ist) ja dafür bekannt ist, extrem stabil zu sein:

# ps aux | grep couch
couchdb 9751 0.0 0.0 11948 304 ? S Sep26 0:00 /bin/sh -e /usr/bin/couchdb -c /etc/couchdb/couch.ini -b -r 5 -p /var/run/couchdb.pid -o /dev/null -e /dev/null -R
couchdb 9761 0.0 0.0 11956 88 ? S Sep26 0:00 /bin/sh -e /usr/bin/couchdb -c /etc/couchdb/couch.ini -b -r 5 -p /var/run/couchdb.pid -o /dev/null -e /dev/null -R
couchdb 9762 0.1 0.9 70924 3008 ? Sl Sep26 11:44 /usr/lib/erlang/erts-5.6.3/bin/beam -Bd -- -root /usr/lib/erlang -progname erl -- -home /var/lib/couchdb -noshell -noinput -smp auto -sasl errlog_type error -pa /usr/lib/couchdb/erlang/lib/couch-0.8.0-incubating/ebin /usr/lib/couchdb/erlang/lib/mochiweb-r76/ebin -eval application:load(inets) -eval application:load(crypto) -eval application:load(couch) -eval crypto:start() -eval inets:start() -eval couch_server:start(), receive done -> done end. -couchini /etc/couchdb/couch.ini -pidfile /var/run/couchdb.pid -heart
couchdb 9767 0.0 0.0 3640 236 ? Ss Sep26 0:00 heart -pid 9762 -ht 11
root 23297 0.0 0.2 8376 836 pts/0 R+ 22:50 0:00 grep couch

Alle Prozesse löschen mit

kill [Prozess-ID]

Dem 0.9er Packet fehlen dann noch zwei Abhängigkeiten:

# apt-get install libjs-jquery
# apt-get install libcurl3

Jetzt noch das Paket laden und installieren:

# wget http://hostingfu.com/files/couchdb/couchdb_0.9.0-2_amd64.deb
# dpkg -i couchdb_0.9.0-2_amd64.deb

Fertig!