I have been using CouchDB recently to build some of my new projects. It’s a new schema-less, document-modelled, highly concurrent, Erlang powered “database” where you wrote map reduce functions in design views to create queries and indices. It is also very neat to bootstrap a project when you have not worked out the relational model of your database yet, due to its schema-less nature. I am still getting my head around it (coming from 15 years of SQL experience), but so far so good.
I guess one issue with CouchDB is that it’s HTTP-based interface is still not fixed, and there are quite a few differences between versions. Nor is there any upgrade utilities to convert database created in an older version to the current one, although it’s trivial to write one. Debian 5, which is my current distro of choice, is still stuck at 0.8.0 for CouchDB, when most documentation online have moved to 0.9.0. I can’t seem to be able to find ready-made CouchDB-0.9.0 Debian packages for Lenny, so I made my own from Squeeze source.
- Download couchdb_0.9.0-2_i386.deb
- Download couchdb_0.9.0-2_amd64.deb
Those were built for Debian 5.
- Add
deb-src http://ftp.us.debian.org/debian squeeze mainto/etc/apt/source.list. - Run
apt-get updateto download the updates. - Run
apt-get -b source couchdbto try to build the source. It will download the source tarball, diff, etc and will attempt to build it, but will fail due to dependency. - Try to build & skip dependency check.
cd couchdb-0.9.0 && dpkg-buildpackage -b -uc -d - You’ll end up with the
.debfiles above…
I’m actually putting the packages up for my own benefit so I can quickly deploy them onto my servers and have fun with its replication ability over nothing but HTTP.

5
This couchdb sounds interesting. Gonna have a look at it. I’ve always just been using SQL.
Thanks for the article.
Thanks a lot!
Max
Trying to build from source but for Lenny, could you provide a list of steps. I’ve looked at the documentation on CouchDB website and I have the book, but the instructions to build from source are not detailed enough.
In particular I’m interested in the dependencies and versions you chose for Erlang and OpenSSL, ICU, SpiderMonkey and libcurl. I plan on building with the last stable of CouchDB.
Thanks for your help.
I have written a text how to compile CouchDB 1.0 on Debian 5: http://strukturpunkt.de/doku/couchdb_compile
@Klaus, thanks, I like your idea to install then remove CouchDB to get the dependencies fixed.