Neben der nativen Postgres-Installation (die wir empfehlen) gibt es auch die Möglichkeit, Postgres unter Cygwin zu betrieben. Insgesamt eignet sich eine unter Cygwin kompilierte Postgres-Installation unter nur für den Testbetrieb, denn bei der Sortierung werden Umlaute falsch eingeordnet und es wird sehr großzügig mit der Prozessorlast umgegangen: Wenn Postgres-Prozesse laufen, dann ist die Performance des Rechners für andere Anwendungen weitgehend gesperrt.
Aber auch bei der nativen Postgres-Installation unter Windows benötigen Sie für Postgres und SuperX unter Windows die UNIX-Shell-Emulation cygwin . Cygwin bietet rudimentäre UNIX-Funktionen wie z.B. die "bash", aber keine UNIX-typischen Dateirechte (z.B. Ausführungsrechte für User, Gruppen oder Andere).Außerdem unterstützt Cygwin (unseres Wissens) keine Locales, und unter Win98 haben wir keine stabile Installation hinbekommen. In den Mailinglisten wurden häufiger Probleme mit Win98 berichtet, unter WinME, Win2000 und Windows XP haben wir Cygwin erfolgreich getestet.
Das folgende Beispiel arbeitet mit Postgres 7.4.x. Postgres ist als Paket im Installer von Cygwin auswählbar.
Für die Installation muss man eine Windows-Kennung benutzen, die Rechte für "Standardbenutzer" reichen aus (es sei denn Cygwin soll als Dienst laufen). Außerdem: Wenn Sie planen, Daten bzw. entladene Datenbank-Exporte zwischen verschiedenen Rechnern hin- und herzuschieben, sollten Sie darauf achten, dass Sie immer die gleiche Kennung benutzen. Sie können z.b. superx nehmen. Die Windows Kennung, unter der man Cygwin installiert, wird nämlich nach Cygwin durchgereicht.
Vorgehen:
1)
Die setup-Datei
setup.exe
der Unix-Emulation Cygwin von
http://www.cygwin.com
herunterladen und starten
Dann je nach Belieben
direkt aus dem Internet installieren oder zunächst herunterladen und dann
in
stall
from local directory
(alle Komponenten ausgewählt lassen) anklicken (wir empfehlen letzteres Vorgehen, da das Online-Cygwin-Paket ständig aktualisiert
wird).
2) Als Installationspfad sollten Sie unbedingt einen Pfad wählen, der keine Leerzeichen enthält, z.B. c:\cygwin ).
3) Bei der Frage, für welchen User Cygwin installiert werden soll, wählen Sie "All users", und beim Standard-Dateiformat wählen Sie Unix.
4)
Bei der Auswahl der Pakete sollten Sie wie folgt vorgehen: Bei den
Shells
mauss auf jeden Fall die
bash
ausgewählt sein. Zusätzlich zu den Defaults müssen lediglich
Base ->
TextUtils,
Database -> Postgres, Admin -> cron, net->openssh
und
Libs -> libint
und
libint1
manuell
ausgewählt werden. Ein Mailprogramm (mutt, mail) sollte auch installiert werden. Wenn Sie Postgres selbst aus den Quellen
installieren wollen, dann wählen Sie natürlich nicht Postgres aus.
Danach einmal starten, das
home
-Verzeichnis wird angelegt
5) Das Cygwin-/bin Verzeichnis muss in der Umgebungsvariable PATH vor den Windows Programm-Verzeichnissen liegen, denn die sort.exe von Cygwin muss benutzt werden, nicht die von Windows. Prüfen Sie außerdem im Verzeichnis /bin, ob die bash.exe existiert - dies muss der Fall sein.
6)
Wenn Sie Postgres nativ (d.h. mit dem Windows-Installer von Postgres ab Version 8.x) installiert haben, dann können Sie jetzt
aufhören. Der folgende Teil gilt nur für Postgres unter Cygwin:
IPC-Daemon starten
ipc-daemon2 &
Danach ist Postgres bereits installiert. Wenn Sie Postgres selbst aus den Quellen installieren, dann gehen Sie in das Verzeichnis
mit den Quellen von postgresql. Die Installationsschritte entsprechen der Linux-Installation, außer dass Sie beim
configure
auch
--enable-odbc
eingeben sollten. Wenn entsprechende Fehlermeldungen erscheinen, müssen Sie noch dafür sorgen, dass (am Beispiel einer Installation
von Cygwin in c:\cygwin)
C:\cygwin\usr\local\pgsql\lib\pq.dll
im PATH ist.
7)
Nach der Installation Cygwin neu starten; danach muss unter cygwin ein User installiert werden. Geben Sie dazu ein
mkpasswd -d | grep <<Windows-Username>> >> /etc/passwd
Unter Win95/98/ME muss man das Passwort in
/etc/passwd
noch verschlüsseln; ersetzen Sie den Passus "use crypt" durch die Ausgabe von dem Befehl
crypt <<Ihr Passwort>>
8) Zur Initialisierung von Postgres folgendes eingeben:
ipc-daemon2 &
initdb -D /usr/local/pgsql/data
in
/usr/local/pgsql/data/postgresql.conf
#tcpip_socket=false
# wegnehmen und auf true setzen
Zum Start des Postmaster eine Batchdatei z.B. pgsql_start.x anlegen mit dem Inhalt:
pgsql_start.x |
#! /bin/sh ipc-daemon2 & pg_ctl -D /usr/local/pgsql/data -l /var/log/postgres.log -o -i start |
Danach gibt man ein:
chmod +x pgsql_start.x
./pgsql_start.x
Der Postmaster startet dann, und die Logdatei /var/log/postgres.log wird gefüllt.
Den erfolgreichen Start von Postgres kann man prüfen, indem man psql template1 eingibt.
Den postmaster beendet man wie unter UNIX mit
pg_ctl stop –D /usr/local/pgsql/data
Die Installation des Kernmoduls kann danach vorgenommen werden; bei der Umgebungsvariable JAVA_HOME müssen Sie die Windows-Installation von Java verwenden (/cgydrive/<<Windows-Laufwerk>>/<<Pfad zum JDK>>).
Noch ein kleiner Hinweis: Wenn Sie sich von entfernten Rechnern auf dem Cygwin-Server anmelden wollen, müssen Sie den ssh-Daemon installieren (s.u.).