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!
Hier gibts übrigens einen Artikel, wie man das neueste CouchDB auf Debian Lenny installiert bekommt: http://japhr.blogspot.com/2010/03/edge-couchdb-on-debian.html
Leider habe ich es bis jetzt nicht geschafft, die Anleitung erfolgreich nachzuvollziehen. Die Abhängigkeiten aus Debian Testing, die durch das neuere Erlang nötig werden überkreuzen sich massiv mit Lenny, was überhaupt keinen Spaß mehr macht.
Auf keinen Fall sollte man versuchen, das auf einer Produktivmaschine nachzuvollziehen!