Archiv/CouchDB/Manuelle Installation

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Bearbeiten von Paketquellen

  3. Pakete aus dem Quellcode erstellen

  4. Ein Terminal öffnen

  5. Einen Editor öffnen

  6. Archive entpacken

Inhaltsverzeichnis
  1. Installation
    1. Vorbereitung
    2. Pakete zum Kompilieren installieren
    3. Weitere Quellen
    4. Kompilieren
    5. Tests der Installation
    6. Integration ins System
    7. Aufräumen
  2. Links

Leider ist die Version von CouchDB aus den Paketquellen von Ubuntu 10.04 vergleichsweise alt und bietet z.B nur eine rudimentäre Nutzerverwaltung. Wer mit CouchDB entwickeln möchte, ist sicher an einer aktuelleren Version interessiert. Für einen „normalen“ Desktop ist dies jedoch nicht notwendig.

Achtung!

Auf Desktop-Systemen führt die Deinstallation des Paketes couchdb-bin zur Deinstallation zahlreicher Abhängigkeiten. Damit gehen eventuell gespeicherte Daten, wenigstens aber der Zugriff darauf verloren. Es wird auch auf Desktop-Systemen laut der Installationsanleitung des Herstellers 🇬🇧 eine Parallelinstallation empfohlen.

Es wird aus Gründen der Einfachheit eine Parallelinstallation beschrieben, da alle Informationen für eine Einzelinstallation enthalten sind. Dies hat nebenbei den Vorteil, dass man so mehrere Versionen von CouchDB auf einem Rechner betreiben kann. An diesem Punkt können also die Pakete couchdb und couchdb-bin installiert sein bzw. bleiben.

Installation

Vorbereitung

Einen laufenden CouchDB-Server sollte man den sicherheitshalber stoppen. Dazu ein Terminal öffnen und folgendes eingeben:

sudo service couchdb stop 

Des Weiteren ist es wie immer ratsam, eine Sicherung der aktuellen CouchDB-Datenbank(en) anzulegen.

Pakete zum Kompilieren installieren

Man benötigt zunächst die Quellen von CouchDB. Dazu einfach aus der Liste der Spiegelserver 🇬🇧 die entsprechende Version heraussuchen und herunterladen und entpacken[6].

Weiterhin werden noch folgende Pakete für einen erfolgreichen Bau benötigt. Alle Pakete, die auf "-dev" enden, sowie das Paket build-essential können nach Abschluss der Installation entfernt werden.

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install erlang erlang-dev erlang-eunit libicu-dev libcurl4-openssl-dev libgjs-dev libmozjs-dev build-essential 

sudo aptitude install erlang erlang-dev erlang-eunit libicu-dev libcurl4-openssl-dev libgjs-dev libmozjs-dev build-essential 

Weitere Quellen

Leider ist das benötigte Spidermonkey seit Ubuntu 10.04 nicht mehr in den offiziellen Paketquellen enthalten. Um auf einen eigenen Bau zu verzichten, kann man auf die Entwickler-Quellen zugreifen[2]:

sudo add-apt-repository ppa:launchpad/ppa
sudo aptitude update
sudo aptitude install spidermonkey-bin libmozjs-dev 

Das PPA kann ebenfalls nach Abschluss der Installation wieder deaktiviert werden.

Kompilieren

Nun zum eigentlichen Kompilieren. Es bietet sich an, die Installation als Paket zu sichern und deshalb checkinstall zu verwenden. Hierfür muss gegebenenfalls das Paket checkinstall installiert werden. Danach navigiert man im Terminal in den Ordner mit den entpackten Quellen und führt dort folgenden Befehl aus[4]:

./configure --prefix=/opt/couchdb-1.0.1 

Danach kann wie gewohnt kompiliert und installiert werden[3]. Nimmt man den Weg über checkinstall, können die Quellen nach der Installation sämtlich gelöscht werden. Es ist aber in diesem Fall dringend ein Paketname zu verwenden, der in den Quellen noch nicht verwendet wird. Zum Beispiel: couchdb-bin-custom-1.0.1

Tests der Installation

Die installierten Dateien sind nun in /opt/couchdb-1.0.1/ zu finden. Sollte der Benutzer couchdb zu diesem Zeitpunkt noch nicht im System angelegt sein, ist dies nun zu tun[4]:

sudo adduser --system --home=/opt/couchdb-1.0.1/ --no-create-home --disabled-password couchdb --shell=/bin/bash 

Um den CouchDB-Server startbar zu machen, müssen noch verschiedene Verzeichnisrechte angepasst werden. Da die die genannten Verzeichnisse erst beim ersten Start des Servers erstellt werden, sind sie eventuell vorher anzulegen:

sudo mkdir -p couchdb /opt/couchdb-1.0.1/var/{lib,log,run}/couchdb/
sudo chown -R couchdb /opt/couchdb-1.0.1/var/{lib,log,run}/couchdb/ /opt/couchdb-1.0.1/etc/couchdb 

Der Server kann nun zum Test gestartet werden. Es ist darauf zu achten, dass ein eventuell konkurrierender CouchDB-Dienst gestoppt ist.

sudo /opt/couchdb-1.0.1/etc/init.d/couchdb start 

Jetzt sollte der Server laufen und anfragen entgegen nehmen. Es empfiehlt sich, an dieser Stelle die integrierten Testroutinen einmal anzustoßen, damit man einen groben Überblick über die implementierten Funktionalitäten bekommt:

netstat -ant | grep 5984  

Dieser Befehl sollte folgendes Ergebnis produzieren:

tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

Eine kurze Anfrage via cURL sollte die Version und eine Willkommensmeldung zurückgeben (das Paket curl muss eventuell zusätzlich installiert werden):

curl http://127.0.0.1:5984/ 

Abschließend noch ein Funktionstest mittels Webbrowser, wozu man folgende URL aufruft:

http://127.0.0.1:5984/_utils/couch_tests.html?script/couch_tests.js

Dann alle Tests durchlaufen lassen. Dies funktioniert nur bei einer Desktop Installation, wo auf dem gleichen Rechner auch ein Browser installiert ist. Bei Server-Installationen muss vorher in /opt/couchdb-1.0.1/etc/couchdb/local.ini die Direktive bind_address so abgeändert werden, dass der CouchDB Dienst an einem erreichbaren IP-Adresse und Port lauscht. Alternativ kann man sich den Port natürlich auch ein seinen eigenen lokalen Host binden. In diesem Fall sollte man darauf achten, dass nicht am eigenen localhost ein CouchDB-Dienst läuft. Dieser ist entweder zu stoppen oder ein anderer Port anzugeben.

ssh -N -f -L 5984:127.0.0.1:5984 benutzer@server 

Sollten alle Tests abgeschlossen sein, ist der Server zunächst wieder zu stoppen.

sudo /opt/couchdb-1.0.1/etc/init.d/couchdb stop 

Hinweis:

Es ist möglich, dass nicht alle Tests erfolgreich abgeschlossen werden können. Dies bedeutet nicht unbedingt, dass die Datenbank nicht nutzbar ist oder nicht funktioniert.

Integration ins System

Nun ist der CouchDB-Server installiert, aber noch nicht in das System integriert. Um den Server wie gewohnt als Dienst startbar zu machen, wird ein Link auf den Starter unter /etc/init.d/ erzeugt.

sudo ln -s /opt/couchdb-1.0.1/etc/init.d/couchdb /etc/init.d/couchdb-1.0.1 

Danach kann man den Dienst wie gewohnt starten:

sudo /etc/init.d/couchdb-1.0.1 start 

Auch der alte CouchDB-Server ist natürlich noch startbar:

sudo /etc/init.d/couchdb-1.0.1 stop
sudo /etc/init.d/couchdb start 

Achtung!

Wenn man beide Server auf dem gleichen Port unter einer gemeinsamen IP startet, können unter Umständen Zombie-Prozesse entstehen. Diese müssen dann gewaltsam beendet werden, damit der Server wieder erfolgreich an einen Port binden kann. Es ist daher unbedingt notwendig, für jeden CouchDB-Server die Voreinstellungen in PREFIX/etc/couchdb/local.ini anzupassen.

Sind die Voreinstellungen korrekt, können beide Server problemlos nebeneinander betrieben werden. Abschließend fügt man den neuen Server noch zum Autostart hinzu.

sudo update-rc.d couchdb-1.0.1 defaults 

Aufräumen

Die folgenden Schritten sind optional, halten aber das System sauber.