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:
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.
erlang
erlang-dev
erlang-eunit
libicu-dev
libcurl4-openssl-dev
libgjs-dev
libmozjs-dev
build-essential
Befehl zum Installieren der Pakete:
sudo apt-get install erlang erlang-dev erlang-eunit libicu-dev libcurl4-openssl-dev libgjs-dev libmozjs-dev build-essential
Oder mit apturl installieren, Link: apt://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.
Links¶
CouchDB - Hauptartikel