Installation von PostgreSQL auf Linux (Erstellung aus Sourcen)

Dieses How-To befasst sich mit der Installation eines PostgreSQL-Servers unter Linux. Hier wird die Installation auf Basis der Sourcen von PostgreSQL behandelt. Es werden also keine vorkompilierten Packete verwendet! Als Basis dient die Version 8.1.5.

Befehle die mit einer Tilde (~) aufgeführt sind, werden als normaler Benutzer ausgeführt. Befehle mit der Raute (#) erfordern root-Rechte.

Als erstes benötigt man die Sourcen. Diese findet man unter der folgenden URL: http://wwwmaster.postgresql.org/download/mirrors-ftp?file=source%2Fv8.1.5%2Fpostgresql-8.1.5.tar.bz2

Im ersten Schritt entpacken wir das Source-Archiv und wechseln dann in den entpackten Ordner:

~ tar -xjf postgresql-8.1.5.tar.bz2
~ cd postgresql-8.1.5

Wie üblich bei Linux-Sourcepacketen wird auch PostgreSQL mit einem Configure-Skript konfiguriert. Alle Parameter kann man sich mit dem Befehl ./configure -helpanschauen. In diesem Beispiel möchte ich einen PostgreSQL Server mit Python Unterstützung erstellen. Hierzu gebe ich folgendes ein:

~ ./configure --with-python

Configure überprüft dann Abhängigkeiten im System. Wenn etwas nicht stimmt und dadurch PostgreSQL nicht kompiliert werden könnte, bricht das Skript ab. In diesem Fall nicht nur die letzte Zeile lesen sondern auch ein paar Zeilen davor. Hier steht das Problem und die letzte Zeile ist nur eine Folge davon!

Läuft alles sauber durch, kann mit

~ make

der Datenbankserver erzeugt werden. Je nach Leistungsfähigkeit des Computers kann dieser Vorgang mehrere Minuten dauern.

Wenn bereits ein PostgreSQL Datenbankserver besteht, sollte vor der Installation des neuen Servers die Datenbank gesichert werden. Die Vorgehensweise hierzu ist in der PostgreSQL-Dokumentation beschrieben.

Meldet make am Ende “All of PostgreSQL successfully made. Ready to install.” ist alles gut geloffen und wir können mit der Installation fortfahren. Ansonsten bitte wieder die letzten Zeilen lesen. Hier steht in der Regel was schief geloffen ist.

Die folgenden Schritte müssen mit root-Rechten ausgeführt werden. Also wechseln wir nun zu root und installieren den gerade erzeugten PostgreSQL-SErver:

~ su
# make install

Um den Datenbankserver später einfach über ein init-Skript starten zu können, kopieren wir dieses in den entsprechenden Ordner.

# cp contrib/start-scripts/linux /etc/init.d/postgresql

Die Befehle für die Erzeugung der Datenbank habe ich aus dem PostgreSQL-Handbuch kopiert da es hierzu nocht soviel zu sagen gibt.

# adduser postgres
# mkdir /usr/local/pgsql/data
# chown postgres /usr/local/pgsql/data
# su - postgres
~ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
~ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
~ /usr/local/pgsql/bin/createdb test
~ /usr/local/pgsql/bin/psql test

Sollte das Starten des PostgreSQL-Server nicht funktionieren (der dritte Befehl von unten), dann versuche diesen (und nur diesen!) als root. Sollte alles gut gehen befindest du dich nun in der Datenbank “test” auf dem neu erzeugten Server!

Bei einem Update kann nun das erstellte Backup zurück gespielt werden und es sollten alle Daten wieder verfügbar sein.

Nun viel Spaß mit dem neu erzeugten PostgreSQL-Server. Für Ergänzungen, Änderungen, Korrekturen etc. bitte einfach eine PM an mich.