Sonntag, 28. März 2010

CouchDB 0.10.1 unter Ubuntu 8.04 LTS aus dem Quellcode installieren

Die freien Tage vor Ostern werde ich u.a. dafür nutzen, mich ein wenig in NoSQL bzw. NoSQL-Datenbanken einzuarbeiten.

Als ersten Schritt habe ich mir vorgenommen, das Buch CouchDB: The Definitive Guide durch zu arbeiten.

Dazu benötige ich zunächst eine möglichst aktuelle Version der CouchDB.

Nachfolgend die Schritte, um die aktuelle Version 0.10.1 auf einem Ubuntu 8.0.4 LTS aus den Sourcen in das Verzeichnis /opt/couchdb-0.10.1 zu installieren. (Zusätzliche Software wird gemäß Filesystem Hierarchy Standard in /opt installiert.)

Schritt 1: Dependencies für CouchDB installieren


$ sudo apt-get install -y automake autoconf libtool help2man
$ sudo apt-get install -y build-essential erlang libicu-dev libmozjs-dev libcurl4-openssl-dev


Schritt 2: Aktuelle curl-Version installieren

CouchDB 0.10.1 erwartet curl ab Version 7.15.5. Installiert ist leider nur 7.15.4. Eine aktuellere Version (7.20) wird daher nach /opt/curl-7.20 installiert.

$ sudo mkdir /opt/curl-7.20
$ sudo ln -s /opt/curl-7.20 /opt/curl

$ cd /tmp
$ wget http://curl.haxx.se/download/curl-7.20.0.tar.bz2
$ tar -xjvf curl-7.20.0.tar.bz2
$ cd curl-7.20.0/

$ export LANG=C

$ ./configure --prefix=/opt/curl-7.20
$ make
$ make test
$ sudo make install

$ /opt/curl/bin/curl --version
curl 7.20.0 (i686-pc-linux-gnu) libcurl/7.20.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1
Protocols: dict file ftp ftps http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM SSL libz


Schritt 3: Aktuelle Erlang-Version installieren

CouchDB 0.10.1 erwartet Erlang ab Version 5.6.5 (R12B05). Installiert ist leider nur 5.5.5. Eine aktuellere Version (5.7.5, R13B04) wird daher nach /opt/erlang-R13B04 installiert.

$ sudo mkdir /opt/erlang-R13B04
$ sudo ln -s /opt/erlang-R13B04/ /opt/erlang

$ cd /tmp
$ wget http://www.erlang.org/download/otp_src_R13B04.tar.gz
$ tar -xzvf otp_src_R13B04.tar.gz
$ cd otp_src_R13B04
$ less INSTALL.md
$ export LANG=C
$ ./configure --prefix=/opt/erlang-R13B04
$ make
$ sudo make install

$ /opt/erlang/bin/erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.7.5


Schritt 4: Aktuelle CouchDB-Version installieren

Nachdem alle Abhängigkeiten erfüllt sind, kann endlich CouchDB installiert werden. Der Sourcecode kann über diverse Spiegelserver bezogen werden.

$ sudo mkdir /opt/couchdb-0.10.1
$ sudo ln -s /opt/couchdb-0.10.1/ /opt/couchdb

$ cd /tmp
$ wget http://..../apache-couchdb-0.10.1.tar.gz

$ tar -xzvf apache-couchdb-0.10.1.tar.gz
$ cd apache-couchdb-0.10.1

$ export LANG=C
$ export PATH=/opt/curl/bin:$PATH
$ export LDFLAGS=' -L/opt/curl/lib'
$ export ERL=/opt/erlang-R13B04/bin/erl
$ export ERLC=/opt/erlang-R13B04/bin/erlc

$ ./configure --prefix=/opt/couchdb-0.10.1
$ make
$ sudo make install


Schritt 5: CouchDB User anlegen

Aus Sicherheitsgründen sollt CouchDB nicht als root, sondern über einen geeigneten eigenen Account gestartet werden.

$ sudo adduser --system --home /opt/couchdb/var/ --no-create-home \
--shell /bin/bash --group --gecos "CouchDB Administrator" couchdb

$ sudo chown -R couchdb:couchdb /opt/couchdb/var/



Schritt 6: CouchDB starten und ausprobieren


$ sudo /opt/couchdb/etc/init.d/couchdb start

$ /opt/curl/bin/curl -X GET http://127.0.0.1:5984/
{"couchdb":"Welcome","version":"0.10.1"}


Die graphische Administrationsoberfläche Futon steht jetzt via http://127.0.0.1:5984/_utils/ zur Verfügung.


Siehe auch:

Sonntag, 7. März 2010

Perl@CeBIT2010

Perl@CeBIT2010 war erfolgreicher als ich erwartet habe:

Der Stand war fast durchgehend gut besucht und wir konnten viele gute Gespräche mit Entscheidern und Entwicklern führen.

Renée Bäcker hat hier erstklassige Vorarbeit geleistet: Professionelle Broschüren, Flyer, Give-Aways, T-Shirts und überhaupt super Organisation. Danke.

Neben den Enterprise-Produkten OTRS und Foswiki wurden die Perl-IDE Padre, coole moderne Module wie Moose, DBIx::Class, Catalyst, Perl::Critic, Perlerweiterungen CPAN und natürlich die Perl-Community vorgestellt.

Ich war nur an zwei Tagen (Freitag und Samstag) am Messestand dabei und bewundere die Leistungs- und Leidensfähigkeit der Mitstreiter, die die ganze Woche am Stand verbracht haben. Es ist tierisch anstrengend, hat aber auch viel Spass gemacht.

Am Freitag waren überwiegend Besucher aus dem Firmenumfeld am Messestand; am Samstag mehr Besucher aus dem privaten Umfeld, aber auch viele Entwickler.

Am ersten Tag (Freitag) kamen die Besucher weitestgehend von selbst an den Stand und wir konnten sehr viele gute Einzelgespräche führen. In diesen Gesprächen konnten wir die Stärken und Einsatzbereiche von Perl aufzeigen und die coolen Neuerungen vorstellen, aber auch konkrete Fragen wie "Welches Modul eignet sich für mein Problem" beantworten.

Firmen, die Perl im Bereich Sicherheit und Firewall einsetzen, waren begeistert von Perl::Critic.

Andere Firmen, die mehrere Programmiersprachen einsetzen, waren positiv überrascht von Padre und wollen die IDE Ihren Entwicklern vorstellen,
so daß zukünftig nur noch eine IDE für alle Sprachen auf allen verwendeten Betriebssystemen gepflegt werden muss. Hier hat Sewi, einer der Padre-Entwickler, wirklich gute Arbeit geleistet.

Viele Entwickler wussten gar nicht, wie sehr sich Perl weiterentwickelt hat. Auch Entwickler, die einen eher negativen Eindruck von Perl gewonnen haben, konnten positiv durch Moose, DBIx::Class und Catalyst überrascht werden.

Wir konnten auch mit vielen jungen Menschen sprechen, die bisher noch nicht mit der dynamischen Programmiersprache Perl in Kontakt gekommen sind.

Überrascht hat mich in den Gesprächen mit Entwicklern und Entscheidern, wo und wie umfangreich Perl eingesetzt wird. Die Nachfrage nach Perl-Programmierern und auch Perl-Trainings ist höher als ich vermutet habe.


Am Samstag war der Stand zunächst schlecht besucht. Daher haben Gabor und ich uns auf den Hauptgang gestellt, Prospekte verteilt und Besucher direkt angesprochen. Viele haben erfreut reagiert und umgehend den Stand besucht. Es waren sogar so viele, daß leider nicht mehr alle Besucher am Stand bedient werden konnten. Aber die Botschaft ist rübergekommen: Perl ist da und hat sich weiterentwickelt.


Gegen Ende der CeBIT haben wir uns noch kurz zusammengesetzt und den Verlauf den Messe, unsere Erfahrungen und auch Fehler besprochen. Es wird auch in den nächsten Jahren wieder Perl@CeBIT2010 geben und es wird noch besser.

Siehe auch: