mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-02 07:21:22 +02:00
Remove HTML FAQ files that are really just text files.
This commit is contained in:
parent
b29f94fd2c
commit
76adc09571
35
doc/FAQ_BSDI
35
doc/FAQ_BSDI
@ -2,8 +2,9 @@ This outlines modifications to BSD/OS for running PostgreSQL:
|
|||||||
|
|
||||||
1) How to increase resource limits
|
1) How to increase resource limits
|
||||||
2) How to increase the number of shared memory buffers
|
2) How to increase the number of shared memory buffers
|
||||||
|
3) How to increasing the number of semaphores
|
||||||
|
|
||||||
Bruce Momjian (pgman@candle.pha.pa.us) 2000-06-09
|
Bruce Momjian (pgman@candle.pha.pa.us) 2000-07-7
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -44,3 +45,35 @@ plus add 1 for every additional 4MB of shared memory you desire.
|
|||||||
/sys/i386/i386/i386_param.c:28:#define SYSPTSIZE 0 /* dynamically...
|
/sys/i386/i386/i386_param.c:28:#define SYSPTSIZE 0 /* dynamically...
|
||||||
|
|
||||||
sysptsize can not be changed by sysctl on the fly.
|
sysptsize can not be changed by sysctl on the fly.
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
3) How to increasing the number of semaphores.
|
||||||
|
|
||||||
|
You may need to increase the number of sysv semaphores. By default,
|
||||||
|
PostgreSQL allocates 32 semaphores, one for each backend connection.
|
||||||
|
This is just over half the default system total of 60.
|
||||||
|
|
||||||
|
The defaults are in /sys/sys/sem.h:
|
||||||
|
|
||||||
|
/* Configuration parameters */
|
||||||
|
#ifndef SEMMNI
|
||||||
|
#define SEMMNI 10 /* # of semaphore identifiers */
|
||||||
|
#endif
|
||||||
|
#ifndef SEMMNS
|
||||||
|
#define SEMMNS 60 /* # of semaphores in system */
|
||||||
|
#endif
|
||||||
|
#ifndef SEMUME
|
||||||
|
#define SEMUME 10 /* max # of undo entries per process */
|
||||||
|
#endif
|
||||||
|
#ifndef SEMMNU
|
||||||
|
#define SEMMNU 30 /* # of undo structures in system */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Set the values you want in your kernel config file, e.g.:
|
||||||
|
|
||||||
|
options "SEMMNI=40"
|
||||||
|
options "SEMMNS=240"
|
||||||
|
options "SEMUME=40"
|
||||||
|
options "SEMMNU=120"
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
<PRE>
|
|
||||||
=======================================================
|
=======================================================
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL V6.5
|
Frequently Asked Questions (FAQ) for PostgreSQL V6.5
|
||||||
HP-UX Specific
|
HP-UX Specific
|
||||||
@ -172,4 +171,3 @@ Postgres 6.5 by not depending on the system versions of those routines.
|
|||||||
Any other error is cause for suspicion. In particular, if you see
|
Any other error is cause for suspicion. In particular, if you see
|
||||||
failures in the datetime test on HPUX 9, you probably forgot to
|
failures in the datetime test on HPUX 9, you probably forgot to
|
||||||
install the libm patch PHSS_4630 --- see item 1.1 above.
|
install the libm patch PHSS_4630 --- see item 1.1 above.
|
||||||
</PRE>
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
======================================================
|
======================================================
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL >=V6.1
|
Frequently Asked Questions (FAQ) for PostgreSQL >=V6.1
|
||||||
IRIX Specific
|
IRIX Specific
|
||||||
|
752
doc/FAQ_Linux_German
Normal file
752
doc/FAQ_Linux_German
Normal file
@ -0,0 +1,752 @@
|
|||||||
|
|
||||||
|
Häufig gestellte Fragen (FAQ) zu PostgreSQL >= V6.1, Linux-spezifisch
|
||||||
|
|
||||||
|
Bitte Zusammen mit der normalen FAQ lesen!
|
||||||
|
_________________________________________________________________
|
||||||
|
|
||||||
|
Letztes Update des Originals: Tue Aug 10 11:15:00 BST 1999
|
||||||
|
Original-FAQ gepflegt durch: Andrew C.R. Martin
|
||||||
|
(martin@biochem.ucl.ac.uk)
|
||||||
|
Original Autor: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
|
||||||
|
|
||||||
|
Letztes Update der Übersetzung: Mo, 23. August 1999, 10:00 CEST
|
||||||
|
Übersetzer: Karsten Schulz (schulz@linux-systemhaus.de)
|
||||||
|
_________________________________________________________________
|
||||||
|
|
||||||
|
Änderungen in dieser Version (* = geändert, + = neu, - = entfernt)
|
||||||
|
|
||||||
|
+3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget
|
||||||
|
failed (Permission denied)?
|
||||||
|
|
||||||
|
Diese Datei ist ungefähr wie folgt unterteilt:
|
||||||
|
|
||||||
|
1.*) PostgreSQL kompilieren
|
||||||
|
2.*) Hilfs- und Zusatzprogramme kompilieren
|
||||||
|
3.*) Laufzeit Probleme
|
||||||
|
|
||||||
|
Beantwortete Fragen:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PostgreSQL kompilieren
|
||||||
|
|
||||||
|
1.1) Welche Anpassungen müssen in src/Makefile.global oder
|
||||||
|
src/Makefile.custom gemacht werden und gibt es weitere notwendige
|
||||||
|
Änderungen?
|
||||||
|
1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline?
|
||||||
|
1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek
|
||||||
|
libdl und der fehlenden dlfcn.h?
|
||||||
|
1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden
|
||||||
|
Bibliothek libdl und der fehlenden dlfcn.h?
|
||||||
|
1.5) Die Kompilierung des Backends schlägt mit der Meldung fehl, daß
|
||||||
|
die Include-Datei dlfcn.h fehlen würde.
|
||||||
|
1.6) GCC meldet, daß er die Option -fpic ignorieren würde.
|
||||||
|
1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer
|
||||||
|
of different size
|
||||||
|
1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap?
|
||||||
|
1.9) Warum bekomme ich Probleme mit ld.so?
|
||||||
|
1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler?
|
||||||
|
1.11) Wie kompiliere ich PostgreSQL auf einem a.out System?
|
||||||
|
1.12) Warum scheitert make mit der Meldung:
|
||||||
|
yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make:
|
||||||
|
/usr/bin/make: cannot execute binary file
|
||||||
|
1.13) Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und
|
||||||
|
libnsl in der Datei src/Makefile.global?
|
||||||
|
1.14) [DEBIAN] Wo ist die Bibliothek libtermcap?
|
||||||
|
1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen?
|
||||||
|
1.16) Während ich versuche eine Entwickler-Version unter Linux zu
|
||||||
|
kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab:
|
||||||
|
In file included from /usr/include/sys/sem.h:8,
|
||||||
|
from ipc.c:37:
|
||||||
|
/usr/include/asm/bitops.h:32: warning: no previous prototype for
|
||||||
|
Set_bit'
|
||||||
|
....
|
||||||
|
make: *** [ipc.o] Error 1
|
||||||
|
1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal
|
||||||
|
11 Meldung ab.
|
||||||
|
1.18) Kann ich Version 6.1.1 unter MkLinux installieren?
|
||||||
|
1.19) Warum stoppt make oder bricht sonstwie ab?
|
||||||
|
1.20) Wie kann ich für die Prozessoren 486 oder Pentium optimieren?
|
||||||
|
1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten
|
||||||
|
(z.B. beim Regressionstest 'timespan')?
|
||||||
|
1.22) Warum bekomme ich keine shared libraries für libpq, wenn ich
|
||||||
|
Version 6.3.2 kompiliere?
|
||||||
|
1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, daß
|
||||||
|
F_BOOLIN, F_BOOLOUT und F_BYTEAIN nicht deklariert seien?
|
||||||
|
|
||||||
|
|
||||||
|
Hilfs- und Zusatzprogramme kompilieren
|
||||||
|
|
||||||
|
2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh
|
||||||
|
kompiliert werden soll.
|
||||||
|
|
||||||
|
|
||||||
|
Laufzeit Probleme
|
||||||
|
|
||||||
|
3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined,
|
||||||
|
wenn Skripts wie createuser laufen.
|
||||||
|
3.2) Nachdem ich postmaster starte, meldet das System Bad system call
|
||||||
|
(Core dumped)
|
||||||
|
3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine
|
||||||
|
Fehlermeldung wie:
|
||||||
|
Failed Assertion("!(file != 0):(null)", File:
|
||||||
|
"/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
|
||||||
|
!(file != 0) (0)
|
||||||
|
initdb: could not create template database
|
||||||
|
initdb: cleaning up.
|
||||||
|
3.4) Warum funktioniert createuser nicht?
|
||||||
|
3.5) Wieso bekomme ich einen Fehler, wie:
|
||||||
|
IpcMemoryCreate: memKey=155356396 , size=760632 ,
|
||||||
|
permission=384IpcMemoryCreate: shmget(..., create, ...)
|
||||||
|
failed: Invalid argument
|
||||||
|
3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library
|
||||||
|
'libpq.so.1
|
||||||
|
3.7) Andere seltsame Verhaltensweisen
|
||||||
|
3.8) Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart
|
||||||
|
jedesmal einen Filesystemcheck (fsck) durch
|
||||||
|
3.9) Warum dauert Query 32 in den RegressionsTests so lange?
|
||||||
|
3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen
|
||||||
|
Datums/Zeit-Berechnungen, wie:
|
||||||
|
select '4 hours'::timespan;
|
||||||
|
liefert '3 hours 59 minutes 60 seconds'?
|
||||||
|
+3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget
|
||||||
|
failed (Permission denied)?
|
||||||
|
|
||||||
|
Abschnitt 1: PostgreSQL kompilieren
|
||||||
|
|
||||||
|
1.1) Welche Anpassungen müssen in src/Makefile.global oder
|
||||||
|
src/Makefile.custom gemacht werden und gibt es weitere notwendige
|
||||||
|
Änderungen?
|
||||||
|
|
||||||
|
Änderungen an den Makefiles werden am einfachsten dadurch gemacht,
|
||||||
|
indem das customize shellscript im src-Verzeichnis aufgerufen wird,
|
||||||
|
das ein Makefile.custom erzeugt.
|
||||||
|
|
||||||
|
Die einzige andere Änderung, die evtl. zu machen wäre, ist Flex zu
|
||||||
|
ersetzen, wenn Du die Version 2.5.3 hast. Diese Version hat einen
|
||||||
|
Fehler, der sich durch das Scheitern des createuser-Programms äußert.
|
||||||
|
(siehe dazu auch Frage 3.4).
|
||||||
|
|
||||||
|
Falls Du die Makefiles manuell änderst, musst Du die folgende Variable
|
||||||
|
setzen:
|
||||||
|
PORTNAME= linux
|
||||||
|
|
||||||
|
Du musst auch die folgende Variable ändern, damit sie auf Deine
|
||||||
|
Installation passt:
|
||||||
|
POSTGRESDIR
|
||||||
|
|
||||||
|
Falls Du die USE_TCL-Option aktivierst, musst Du folgende Variablen
|
||||||
|
setzen:
|
||||||
|
TCL_INCDIR=
|
||||||
|
TCL_LIBDIR=
|
||||||
|
TCL_LIB=
|
||||||
|
TK_INCDIR=
|
||||||
|
TK_LIBDIR=
|
||||||
|
TK_LIB=
|
||||||
|
X11_INCDIR=
|
||||||
|
X11_LIBDIR=
|
||||||
|
X11_LIB=
|
||||||
|
|
||||||
|
Auf meinem Slackware 3.0 System sind das:
|
||||||
|
TCL_INCDIR= /usr/include/tcl
|
||||||
|
TCL_LIBDIR= /usr/lib
|
||||||
|
TCL_LIB= -ltcl
|
||||||
|
TK_INCDIR= /usr/include/tcl
|
||||||
|
TK_LIBDIR= /usr/lib
|
||||||
|
TK_LIB= -ltk
|
||||||
|
X11_INCDIR= /usr/include/X11
|
||||||
|
X11_LIBDIR= /usr/X386/lib
|
||||||
|
X11_LIB= -lX11
|
||||||
|
|
||||||
|
Du solltest auch alle weiteren Änderungen durchführen, die in der
|
||||||
|
Datei INSTALL und in Makefile.global dokumentiert sind.
|
||||||
|
|
||||||
|
1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline?
|
||||||
|
|
||||||
|
Linux Systeme kommen in der Regel nicht mit einer installierten GNU
|
||||||
|
readline Bibliothek. Stelle entweder sicher, daß Du die
|
||||||
|
readline-Optionen in src/Makefile.global oder src/Makefile.custom
|
||||||
|
nicht aktivierst oder installiere die GNU readline Bibliothek.
|
||||||
|
Hinweis: Debian Linux (wie FreeBSD) kommt mit einer installierten GNU
|
||||||
|
readline Bibliothek.
|
||||||
|
|
||||||
|
1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek libdl
|
||||||
|
und der fehlenden dlfcn.h?
|
||||||
|
|
||||||
|
Das Problem erscheint dadurch, daß in der letzten Phase des
|
||||||
|
Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht
|
||||||
|
gelinkt werden können.
|
||||||
|
|
||||||
|
Die libdl Bibliothek wird zum dynamischen Linken von
|
||||||
|
Benutzerfunktionen zur Laufzeit benutzt. Aus irgendwelchen Gründen
|
||||||
|
wurde diese Bibliothek mit der RedHat-Distribution nicht ausgeliefert.
|
||||||
|
Anscheinend ist dies in der letzten RedHat 4.0 (Colgate) geändert
|
||||||
|
worden.
|
||||||
|
|
||||||
|
RedHat hat nun ein neues ld.so RPM-Archiv auf ihrem ftp-Server. Hole
|
||||||
|
Dir einfach:
|
||||||
|
|
||||||
|
ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.
|
||||||
|
i386.rpm
|
||||||
|
|
||||||
|
Installiere das RPM-Archiv wie üblich und gut ist!
|
||||||
|
|
||||||
|
Hinweis: Du mußt configure und make clean nach der Installation der
|
||||||
|
Bibliothek und vor dem erneuten Kompilieren laufen lassen.
|
||||||
|
|
||||||
|
Es gab einen Bericht über ein zerstörtes System, weil Programme auf
|
||||||
|
diese Bibliothek während des Updates zugegriffen haben (alles in allem
|
||||||
|
nicht weiter überraschend). Konsequenterweise ist es eine gute Idee,
|
||||||
|
das System vor der Installation zu rebooten, um so wenige Programme
|
||||||
|
wie möglich während des Updates laufen zu haben. In den
|
||||||
|
Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee!
|
||||||
|
|
||||||
|
Wenn Du lieber den harten Weg gehen willst, kannst Du die Bibliothek
|
||||||
|
und die Header-Dateien von:
|
||||||
|
|
||||||
|
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz
|
||||||
|
|
||||||
|
holen. Alternativ findest Du vorkompilierte Binaries in
|
||||||
|
distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb auf dem
|
||||||
|
gleichen ftp-Server oder folge den Instruktionen bei Frage 1.2, die
|
||||||
|
den gleichen Fehler für Slackware 3.1 behandelt.
|
||||||
|
|
||||||
|
Mache es aber nur auf diese Weise, wenn Du weißt, was Du tust!
|
||||||
|
|
||||||
|
1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden Bibliothek
|
||||||
|
libdl und der fehlenden dlfcn.h?
|
||||||
|
|
||||||
|
Das Problem erscheint dadurch, daß in der letzten Phase des
|
||||||
|
Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht
|
||||||
|
gelinkt werden können.
|
||||||
|
|
||||||
|
Siehe die Antwort zu Frage 1.3.
|
||||||
|
|
||||||
|
Slackware bis Version 3.0 war mit dieser Bibliothek und der
|
||||||
|
Include-Datei ausgestattet und ab späten 3.1er-Versionen scheinen sie
|
||||||
|
auch wieder da zu sein. Aber in frühen 3.1er-Versionen (vor dem
|
||||||
|
09.09.96) fehlten sie und es wurden viele CD-ROMs von diesen ersten
|
||||||
|
3.1.er-Versionen gepresst.
|
||||||
|
|
||||||
|
Es gab einen Bericht über ein zerstörtes System, weil Programme auf
|
||||||
|
diese Bibliothek während des Updates zugegriffen haben (alles in allem
|
||||||
|
nicht weiter überraschend). Konsequenterweise ist es eine gute Idee,
|
||||||
|
das System vor der Installation zu rebooten, um so wenige Programme
|
||||||
|
wie möglich während des Updates laufen zu haben. In den
|
||||||
|
Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee!
|
||||||
|
|
||||||
|
Der einfachste Weg, den Fehler zu beseitigen ist, die Datei ldso.tgz
|
||||||
|
von der a4-Diskette einer aktuelleren Slackware zu nehmen, diese Datei
|
||||||
|
im Wurzelverzeichnis (/) zu entpacken und dann ein
|
||||||
|
sh install/doinst.sh
|
||||||
|
|
||||||
|
durchzuführen. Danach ein
|
||||||
|
ldconfig
|
||||||
|
|
||||||
|
durchführen.
|
||||||
|
|
||||||
|
Hinweis: Du mußt configure und make clean nach der Installation der
|
||||||
|
Bibliothek und vor dem erneuten Kompilieren laufen lassen.
|
||||||
|
|
||||||
|
Falls Du manuell installieren möchtest, installiere zuerst die Datei
|
||||||
|
dlfcn.h in /usr/include. Dann die libdl.so.1.7.14 (oder was immer die
|
||||||
|
letzte Version ist) in /lib. Dann führe folgende Befehle aus:
|
||||||
|
cd /lib
|
||||||
|
ln -sf libdl.so.1.7.14 libdl.so.1
|
||||||
|
ln -sf libdl.so.1 libdl.so
|
||||||
|
|
||||||
|
Auf manchen Systemen (je nach Deiner gcc-Konfiguration) können noch
|
||||||
|
folgende Befehle notwendig sein:
|
||||||
|
cd /usr/lib
|
||||||
|
ln -sf /lib/libdl.so .
|
||||||
|
|
||||||
|
Und zum Schluß noch ein
|
||||||
|
ldconfig
|
||||||
|
|
||||||
|
Hinweis: Du mußt configure und make clean nach der Installation der
|
||||||
|
Bibliothek und vor dem erneuten Kompilieren laufen lassen.
|
||||||
|
|
||||||
|
1.5) Die Kompilierung des Backends schlägt mit der Meldung fehl, daß die
|
||||||
|
Include-Datei dlfcn.h fehlen würde.
|
||||||
|
|
||||||
|
Siehe die Antworten zu den Fragen 1.3 und 1.4. Und vergiss nicht,
|
||||||
|
falls Du ein a.out-System benutzt, daß Du das dld-Paket installiert
|
||||||
|
haben muß (welches bei den meisten a.out-Systemen nicht dabei ist), um
|
||||||
|
dlfcn.h zu haben. Siehe Frage 1.11.
|
||||||
|
|
||||||
|
1.6) GCC meldet, daß er die Option -fpic ignorieren würde.
|
||||||
|
|
||||||
|
Frühere Versionen des gcc nahmen entweder -fpic oder -fPIC an. Es
|
||||||
|
scheint, daß neuere Versionen (V2.7.2?) -fPIC erfordern. Falls Du ein
|
||||||
|
ELF-System benutzt, kannst das alles ignoriert werden, da -fPIC als
|
||||||
|
Standardvorgabe voreingestellt ist. Du kannst diese Angabe
|
||||||
|
korrigieren, indem Du CFLAGS_SL in der Datei src/Makefile.global
|
||||||
|
änderst.
|
||||||
|
|
||||||
|
1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer of
|
||||||
|
different size
|
||||||
|
|
||||||
|
Diese Warnungen wurden in früheren Versionen von Postgres95 gesichtet
|
||||||
|
und können ignoriert werden. PostgreSQL V6.0 sollte ohne Warnungen
|
||||||
|
kompiliert werden, außer jenen, die sich auf System-Header-Dateien
|
||||||
|
beziehen (welche auch ignoriert werden können).
|
||||||
|
|
||||||
|
1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap?
|
||||||
|
|
||||||
|
SuSE-Linux 4.2 hat ncurses, nicht curses. Version 4.4 scheint beide
|
||||||
|
Bibliotheken zu haben. Bei SuSE-Linux ist außerdem die
|
||||||
|
termcap-Bibliothek in /usr/lib/termcap/ und nicht in /usr/lib.
|
||||||
|
|
||||||
|
PostgreSQL (bis Version V6.0)
|
||||||
|
|
||||||
|
Setze den Wert für CURSES_LIB in src/Makefile.custom auf -lncurses
|
||||||
|
(oder erledige das durch das customize script. Füge folgende Zeile zur
|
||||||
|
Datei src/Makefile.custom hinzu:
|
||||||
|
LDADD_BE+= -L/usr/lib/termcap
|
||||||
|
|
||||||
|
Möglicherweise mußt Du in der Datei src/bin/psql/Makefile folgende
|
||||||
|
Änderung durchführen:
|
||||||
|
ifeq ($(PORTNAME), linux)
|
||||||
|
LD_ADD+=
|
||||||
|
|
||||||
|
ändern in:
|
||||||
|
ifeq ($(PORTNAME), linux)
|
||||||
|
LD_ADD+= -ltermcap
|
||||||
|
|
||||||
|
PostgreSQL (V6.1)
|
||||||
|
|
||||||
|
Das Konfigurationsscript weiß nicht, daß es auch in /usr/lib/termcap
|
||||||
|
nach der termcap-Bibliothek schauen soll. Du solltest dieses
|
||||||
|
Verzeichnis angeben, wenn es nach zusätzlichen Such-Verzeichnissen
|
||||||
|
fragt.
|
||||||
|
|
||||||
|
Falls das nicht funkitoniert (Ich habe SuSE nicht, um das zu testen),
|
||||||
|
dann solltest Du nach dem ./configure-Lauf die Datei
|
||||||
|
src/Makefile.global ändern und in die LDFLAGS-Zeile den Eintrag
|
||||||
|
-ltermcap (nach -lreadline) hinzufügen. (Alternativ kannst Du auch die
|
||||||
|
Datei src/Makefile.custom ändern, bevor Du ./configure aufrufst.)
|
||||||
|
|
||||||
|
Einige SuSE-Versionen liefern nur ncurses, deshalb kann es sein, daß
|
||||||
|
Du die Benutzung von ncurses statt curses erzwingen mußt, indem Du
|
||||||
|
-lcurses in -lncurses änderst. (bestätigt für SuSE 5.1)
|
||||||
|
|
||||||
|
PostgreSQL (V6.4)
|
||||||
|
|
||||||
|
In PostgreSQL V6.4 überprüft configure sowohl das Vorhandensein von
|
||||||
|
curses, als auch das von ncurses. In der Zwischenzeit kannst Du den
|
||||||
|
patch von Karl Eichwalder (ke@suse.de) anwenden:
|
||||||
|
|
||||||
|
http://www.PostgreSQL.ORG/mhonarc/pgsql-patches/msg00407.html
|
||||||
|
oder (mit deutschen Bemerkungen):
|
||||||
|
http://www.suse.de/Support/sdb/ke_postgresql-632.html
|
||||||
|
|
||||||
|
Es gab außerdem einen Bericht, daß beim Update von SuSE 5.0 auf SuSE
|
||||||
|
5.2 der Link von libtermcap.so.2.0.8 auf libtermcap.so nicht gesetzt
|
||||||
|
wurde:
|
||||||
|
cd /usr/lib
|
||||||
|
ln -s libtermcap.so.2.0.8 libtermcap.so
|
||||||
|
|
||||||
|
1.9) Warum bekomme ich Probleme mit ld.so?
|
||||||
|
|
||||||
|
Falls Du Probleme mit ld.so bekommst - eine andere Bibliothek, die im
|
||||||
|
ELF-System für dynamisches Laden benötigt wird - dann hast Du Deine
|
||||||
|
Systeminstallation oder wahrscheinlicher ein Linux-Update
|
||||||
|
durcheinandergebracht Siehe die Fragen 1.3/1.4. Möglicherweise mußt Du
|
||||||
|
ld.so.x.y.z in /lib installieren und ldconfig laufen lassen. Die
|
||||||
|
aktuellste Version des ld-Packages ist 1.7.14. Zum Zeitpunkt des
|
||||||
|
Schreibens dieser FAQ ist die Version 1.8 noch experimental.
|
||||||
|
|
||||||
|
1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler?
|
||||||
|
|
||||||
|
Das ist nicht wirklich Linux-spezifisch, aber es tritt häufiger auf
|
||||||
|
alten Linux-Systemen auf. Du brauchst eine aktuelle Version von flex
|
||||||
|
(2.5.2. oder neuer), um PostgreSQL zu kompilieren. Beachte, daß flex
|
||||||
|
2.5.3. einen Bug hat, siehe auch Frage 3.4.
|
||||||
|
|
||||||
|
1.11) Wie kompiliere ich PostgreSQL auf einem a.out System?
|
||||||
|
|
||||||
|
Als erstes mußt Du die dld-Bibliothek installieren. Diese gibt es auf
|
||||||
|
Sunsite unter Linux/libs/dld.3.2.7.tar.gz
|
||||||
|
(ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz).
|
||||||
|
|
||||||
|
Dann füge folgende Zeile in src/Makefile.custom hinzu:
|
||||||
|
LINUX_ELF=
|
||||||
|
|
||||||
|
oder benutze das customize Skript
|
||||||
|
|
||||||
|
1.12) Warum scheitert make mit der Meldung:
|
||||||
|
yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make: /usr/bin/make:
|
||||||
|
cannot execute binary file
|
||||||
|
|
||||||
|
Das war ein Problem in frühreren Versionen von Postgres95.
|
||||||
|
Standardmäßig benutzt PostgreSQL bison -y anstatt yacc.
|
||||||
|
|
||||||
|
yacc ist normalerweise als Skript implementiert, das bison -y aufruft.
|
||||||
|
Aus verschiedenen Gründen ist make nicht in der Lage, das Skript
|
||||||
|
auszuführen (verschiedene Versionen von make? Verschiedene Versionen
|
||||||
|
der bash?)
|
||||||
|
|
||||||
|
Um das zu beheben, ändere einfach die Datei
|
||||||
|
src/mk/port/postgres.mk.linux am Ende. Die Zeile:
|
||||||
|
# YACC = bison -y
|
||||||
|
|
||||||
|
wird zu:
|
||||||
|
YACC = bison -y
|
||||||
|
|
||||||
|
1.13) Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und libnsl
|
||||||
|
in der Datei src/Makefile.global?
|
||||||
|
|
||||||
|
Das war ein Problem in Version 1.08 (Sun Solaris spezifisch). Sie sind
|
||||||
|
behoben in 1.09 und 6.0
|
||||||
|
|
||||||
|
1.14) [DEBIAN] Wo ist die Bibliothek libtermcap?
|
||||||
|
|
||||||
|
Debian Linux kommt ohne die termcap-Bibliothek und benutzt ncurses
|
||||||
|
(welche terminfo benutzt). Es gibt keinen Grund, die
|
||||||
|
CURSES_LIB-Variable in src/bin/psql/Makefile zu ändern, da Debian
|
||||||
|
einen Link von libncurses auf libcurses bereitstellt (im Gegensatz zu
|
||||||
|
SuSE, siehe Frage 1.8)
|
||||||
|
|
||||||
|
Du kannst die Datei src/bin/psql/Makefile wie folgt ändern:
|
||||||
|
ifeq ($(PORTNAME), linux)
|
||||||
|
LD_ADD+= -ltermcap
|
||||||
|
|
||||||
|
in
|
||||||
|
ifeq ($(PORTNAME), linux)
|
||||||
|
LD_ADD+=
|
||||||
|
|
||||||
|
|
||||||
|
1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen?
|
||||||
|
|
||||||
|
Ja! Michal Mosiewicz (http://www.pdi.lodz.pl/~mimo) hat ein RPM für
|
||||||
|
PostgreSQL V6.0 auf Intel Architekturen zusammengestellt, welches er
|
||||||
|
nach ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm
|
||||||
|
hochgeladen hat.
|
||||||
|
|
||||||
|
Das ist eine vorkompilierte Version, das Quelltext-RPM stammt vom
|
||||||
|
03.02.1997.
|
||||||
|
|
||||||
|
1.16) Während ich versuche eine Entwickler-Version unter Linux zu
|
||||||
|
kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab:
|
||||||
|
In file included from /usr/include/sys/sem.h:8,
|
||||||
|
from ipc.c:37:
|
||||||
|
/usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
|
||||||
|
....
|
||||||
|
make: *** [ipc.o] Error 1
|
||||||
|
|
||||||
|
Das Problem ist, daß Linux keine Prototypen für diese
|
||||||
|
Inline-Funktionen bereithält. Die Lösung liegt darin, das Makefile in
|
||||||
|
.../src/backend/storage/ipc/ zu ändern: Ändere die Zeile:
|
||||||
|
CFLAGS+=$(INCLUDE_OPT)
|
||||||
|
|
||||||
|
in
|
||||||
|
CFLAGS+=$(INCLUDE_OPT) -Wno-error
|
||||||
|
|
||||||
|
Mache dasselbe dann im ../src/backend/storage/lmgr Verzeichnis.
|
||||||
|
|
||||||
|
1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal 11
|
||||||
|
Meldung ab.
|
||||||
|
|
||||||
|
Oder genauer: gcc: Internal compiler error: program cc1 got fatal
|
||||||
|
signal 11
|
||||||
|
|
||||||
|
Das können Hardware/Speicherprobleme sein. PostgreSQL ist ein großes
|
||||||
|
Programm und große gcc-Kompilierungsläfe (wie eben PostgreSQL oder
|
||||||
|
eine Kernel-Kompilierung) beanspruchen den Hauptspeicher wie wenig
|
||||||
|
andere Programme. Dadurch können Fehler auftreten, die in normalen
|
||||||
|
Situationen nicht erscheinen. Niedrigere Betriebssysteme beanspruchen
|
||||||
|
die Hardware ebenfalls nicht in diesem Maße, deshalb kann es sein, daß
|
||||||
|
Du niemals Probleme unter DOS/Windows siehst.
|
||||||
|
|
||||||
|
Mehr Information zu diesem Problem gibt es unter
|
||||||
|
http://www.BitWizard.nl/sig11/ und in deutsch unter
|
||||||
|
http://www.suse.de/sdb/de/html/kfr_58.html.
|
||||||
|
|
||||||
|
Laut dieser Sig11-FAQ scheint es ein spezielles Problem mit dem RedHat
|
||||||
|
5.0 gcc auf einem Cyrix-Prozessor zu geben. Siehe bitte dort nach den
|
||||||
|
Details nach.
|
||||||
|
|
||||||
|
1.18) Kann ich Version 6.1.1 unter MkLinux installieren?
|
||||||
|
|
||||||
|
Tatsuo Ishii hat das unter MkLinux DR2.1 update2 geschafft, nachdem
|
||||||
|
der kleine Patch von
|
||||||
|
ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz
|
||||||
|
eingespielt wurde.
|
||||||
|
|
||||||
|
1.19) Warum stoppt make oder bricht sonstwie ab?
|
||||||
|
|
||||||
|
Es gibt eine Reihe von Reports darüber, daß gmake zu früh aussteigt
|
||||||
|
oder mit einem Segmentation Fault aussteigt. Das letzte Problem wurde
|
||||||
|
von gmake 3.74 berichtet. Ein Update auf 3.76.1 löste dieses Problem.
|
||||||
|
Wie auch immer, 3.74 arbeitet bei vielen Leuten zur vollsten
|
||||||
|
Zufriedenheit. Kurz gesagt, upgrade Deinen gmake auf die aktuellste
|
||||||
|
Version, bevor Du dieses Problem meldest.
|
||||||
|
|
||||||
|
1.20) Wie kann ich für die Prozessoren 486 oder Pentium optimieren?
|
||||||
|
|
||||||
|
Die Standard-Compilerflags führen keine Optimierung für den 486er oder
|
||||||
|
den Pentium-Prozessor durch. Um diese Optimierung zu aktivieren, füge
|
||||||
|
wahlweise eine der folgenden Zeilen der Datei Makefile.custom hinzu:
|
||||||
|
CFLAGS+= -m486
|
||||||
|
|
||||||
|
oder
|
||||||
|
CFLAGS+= -mpentium
|
||||||
|
|
||||||
|
oder
|
||||||
|
CFLAGS+= -mpentiumpro
|
||||||
|
|
||||||
|
1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten (z.B.
|
||||||
|
beim Regressionstest 'timespan')?
|
||||||
|
|
||||||
|
Die Zeit erscheint z.B. als: "4 hours 59 mins 60.00 secs" und nicht
|
||||||
|
als "5 hours"
|
||||||
|
|
||||||
|
Das ist ein Problem mit der glibc2-Bibliothek, die mit RedHat 5.0
|
||||||
|
ausgeliefert wird. Update Deine glibc auf die aktuellste
|
||||||
|
RedHat-Version für v5.0/Hurricane. Alle Versionen vor glibc-2.9.7
|
||||||
|
scheinen dieses Problem zu haben.
|
||||||
|
|
||||||
|
1.22) Warum bekomme ich keine shared libraries für libpq, wenn ich Version
|
||||||
|
6.3.2 kompiliere?
|
||||||
|
|
||||||
|
Es gab eine Last-Minute-Änderung der Linux-Konfiguration für Version
|
||||||
|
6.3.2. Siehe für einige Fehlerbehebungen und einen Linux-ELF-Patch in
|
||||||
|
ftp://postgresql.org/pub/patches/ nach.
|
||||||
|
|
||||||
|
1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, daß F_BOOLIN,
|
||||||
|
F_BOOLOUT und F_BYTEAIN nicht deklariert seien?
|
||||||
|
|
||||||
|
Die komplette Meldung sieht ungefähr so aus:
|
||||||
|
-I/usr/include/readline -O2 -Wall -Wmissing-prototypes -I..
|
||||||
|
-Wno-error -c bootstrap.c -o bootstrap.o
|
||||||
|
bootstrap.c:160: `F_BOOLIN' undeclared here (not in a function)
|
||||||
|
bootstrap.c:160: initializer element for `Procid[0].inproc' is not
|
||||||
|
constant
|
||||||
|
bootstrap.c:160: `F_BOOLOUT' undeclared here (not in a function)
|
||||||
|
bootstrap.c:160: initializer element for `Procid[0].outproc' is not
|
||||||
|
constant
|
||||||
|
bootstrap.c:161: `F_BYTEAIN' undeclared here (not in a function)
|
||||||
|
bootstrap.c:161: initializer element for `Procid[1].inproc' is not
|
||||||
|
constant
|
||||||
|
|
||||||
|
Solange Du nicht weißt, warum das passiert, ist dieses Problem
|
||||||
|
ziemlich kniffelig, da diese Konstanten anscheinend nirgendwo
|
||||||
|
definiert werden.
|
||||||
|
|
||||||
|
Die Lösung ist dafür zu sorgen, daß der cpp in Deinem Pfad erreichbar
|
||||||
|
ist, bevor make gestartet wird.
|
||||||
|
|
||||||
|
Auf Redhat 5.1, ist cpp in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3
|
||||||
|
|
||||||
|
Abschnitt 2: Hilfs- und Zusatzprogramme kompilieren
|
||||||
|
|
||||||
|
2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh kompiliert
|
||||||
|
werden soll.
|
||||||
|
|
||||||
|
Füge folgende Zeile in src/Makefile.custom hinzu:
|
||||||
|
X11_LIBDIR = /usr/X11R6/lib
|
||||||
|
|
||||||
|
Abschnitt 3: Laufzeit Probleme
|
||||||
|
|
||||||
|
3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined, wenn
|
||||||
|
Skripts wie createuser laufen.
|
||||||
|
|
||||||
|
Das ist ein Fehler in Versionen 1.06-1.07 und ist ab Version 1.08 und
|
||||||
|
höher behoben.
|
||||||
|
|
||||||
|
3.2) Nachdem ich postmaster starte, meldet das System Bad system call (Core
|
||||||
|
dumped)
|
||||||
|
|
||||||
|
Diese Fehlermeldung deutet an, daß Du keinen Shared-Memory-Support in
|
||||||
|
den Kernel einkompiliert hast. Der Kernel muß mit dieser Option neu
|
||||||
|
kompiliert werden, um diese Eigenschaft hinzuzufügen.
|
||||||
|
|
||||||
|
3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine
|
||||||
|
Fehlermeldung wie:
|
||||||
|
Failed Assertion("!(file != 0):(null)", File:
|
||||||
|
"/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
|
||||||
|
!(file != 0) (0)
|
||||||
|
initdb: could not create template database
|
||||||
|
initdb: cleaning up.
|
||||||
|
|
||||||
|
Deine Berechtigungen für die Datei /dev/null sind falsch gesetzt. ein
|
||||||
|
ls -l /dev/null sollte folgende Ausgabe zeigen:
|
||||||
|
crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null
|
||||||
|
|
||||||
|
Korrigiere die Berechtigungen mit:
|
||||||
|
chmod a+rw /dev/null
|
||||||
|
|
||||||
|
3.4) Warum funktioniert createuser nicht?
|
||||||
|
|
||||||
|
Es gibt ein Problem mit Version 2.5.3 des GNU flex und createuser. Die
|
||||||
|
Möglichkeiten, diesen Fehler zu beheben sind: Entweder auf die
|
||||||
|
flex-Version 2.5.3 zu gehen, auf Version 2.5.4 zu gehen, oder den
|
||||||
|
Patch nach doc/README.flex einzuspielen.
|
||||||
|
|
||||||
|
Die Version 2.5.4. gibt es unter
|
||||||
|
ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz.
|
||||||
|
|
||||||
|
3.5) Wieso bekomme ich einen Fehler, wie:
|
||||||
|
IpcMemoryCreate: memKey=155356396 , size=760632 ,
|
||||||
|
permission=384IpcMemoryCreate: shmget(..., create, ...)
|
||||||
|
failed: Invalid argument
|
||||||
|
|
||||||
|
Du hast keine IPC-Unterstützung in Deinen Linux-Kernel einkompiliert.
|
||||||
|
Der Kernel muß mit dieser Option neu kompiliert werden, um diese
|
||||||
|
Eigenschaft hinzuzufügen.
|
||||||
|
|
||||||
|
3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library
|
||||||
|
'libpq.so.1
|
||||||
|
|
||||||
|
Psql wurde mit dynamischen Zugriff auf die libpq-bibliothek
|
||||||
|
kompiliert. Um dieses Problem zu lösen, solltest Du Dich als root
|
||||||
|
anmelden und die Datei /etc/ld.so.conf editieren. Füge eine Zeile am
|
||||||
|
Ende hinzu, die den Namen des PostgreSQL-Bibliotheken-Verzeichnis
|
||||||
|
enthält (das lib-Verzeichnis im PostgreSQL-Installationsverzeichnis)
|
||||||
|
und rufe den Befehl /sbin/ldconfig -v auf. Alternativ (und falls Du
|
||||||
|
keinen root-Zugriff hast) kannst Du die LD_LIBRARY_PATH-Variable
|
||||||
|
benutzen. Die LD_LIBRARY_PATH-Variable enthält eine durch Doppelpunkt
|
||||||
|
getrennte Liste mit Suchpfaden für Shared-Bibliotheken. Diese Liste
|
||||||
|
wird durchsucht, bevor auf die Informationen von ldconfig zugegriffen
|
||||||
|
wird. Unter der bash sieht das ganze so aus:
|
||||||
|
export LD_LIBRARY_PATH='PathToPGSQL'/lib
|
||||||
|
|
||||||
|
unter der tcsh so:
|
||||||
|
setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib
|
||||||
|
|
||||||
|
wobei 'PathToPGSQL' das Installationsverzeichnis von PostgreSQL ist.
|
||||||
|
Hinweis: der ldd-Befehl dient dazu, sich die dynamischen Bibliotheken
|
||||||
|
für eine bestimmte ausführbare Datei anzeigen zu lassen.
|
||||||
|
|
||||||
|
3.7) Andere seltsame Verhaltensweisen
|
||||||
|
|
||||||
|
Ich bin mir nicht sicher, welche Symptome alle auftreten können, außer
|
||||||
|
daß gar nichts richtig funktioniert, aber es stellte sich heraus, daß
|
||||||
|
man sorgsam darauf achten sollte, daß die richtige Version der
|
||||||
|
libpq-Bibliothek geladen wird. Falls Du alte Versionen in Deinem
|
||||||
|
Bibliothekspfad hast (z.B. in /usr/lib) können diese statt der neueren
|
||||||
|
Version geladen werden. Schaffe diese alten Versionen beiseite und
|
||||||
|
siehe im übrigen Frage 3.6 für weitere Details bezüglich dem Laden von
|
||||||
|
Bibliotheken.
|
||||||
|
|
||||||
|
3.8) Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart
|
||||||
|
jedesmal einen Filesystemcheck (fsck) durch
|
||||||
|
|
||||||
|
Es gab darüber einige Berichte und es scheint, daß dies passiert, wenn
|
||||||
|
PostgreSQL von der /etc/inittab gestartet wird, wie im
|
||||||
|
INSTALL-Dokument beschrieben.
|
||||||
|
|
||||||
|
Deshalb wird Dir empfohlen, den postmaster von einem rc-Skript aus zu
|
||||||
|
starten. Unter einem Slackware-artigem System würdest Du
|
||||||
|
/etc/rc.d/rc.local modifizieren, um den postmaster zu starten.
|
||||||
|
|
||||||
|
Unter RedHat-artigen Systemen würdest Du ein SysV-artiges Skript in
|
||||||
|
/etc/rc.d/rc3.d basierend auf der /etc/rc.d/init.d Schablonen-Datei
|
||||||
|
erstellen.
|
||||||
|
|
||||||
|
Es gibt eine Beispieldatei unter dem Verzeichnis
|
||||||
|
contrib/linux/postgres.init.
|
||||||
|
|
||||||
|
Hier ist noch ein anderes Beispiel von John Robinson welches Du
|
||||||
|
entsprechend anpassen kannst.
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# postgreSQL.init This shell script takes care of starting and stopping
|
||||||
|
# the PostgreSQL postmaster.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Source function library.
|
||||||
|
. /etc/rc.d/init.d/functions
|
||||||
|
|
||||||
|
# Source networking configuration.
|
||||||
|
. /etc/sysconfig/network
|
||||||
|
|
||||||
|
# Check that networking is up.
|
||||||
|
[ ${NETWORKING} = "no" ] && exit 0
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
# Start daemons.
|
||||||
|
echo -n "Starting postgres Postmaster daemon:"
|
||||||
|
if [ -z "`pidofproc postmaster`" ]
|
||||||
|
then
|
||||||
|
su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgr
|
||||||
|
eSQL/data -p 5432 &"
|
||||||
|
echo -n " postmaster"
|
||||||
|
else
|
||||||
|
echo -n " (already running)"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
touch /var/lock/subsys/postgres
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
# Stop daemons.
|
||||||
|
echo -n "Shutting down postgres Postmaster daemon: "
|
||||||
|
killall -TERM postmaster 2>/dev/null
|
||||||
|
killall -TERM postgres 2>/dev/null
|
||||||
|
echo
|
||||||
|
rm -f /var/lock/subsys/postgres
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: postgres {start|stop}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
3.9) Warum dauert Query 32 in den RegressionsTests so lange?
|
||||||
|
|
||||||
|
Das passiert wegen eines Fehlers in den Regressions-Skripten auf
|
||||||
|
Linux-Kisten. Es gibt - soweit ich weiß - zwei Möglichkeiten, diese
|
||||||
|
Fehler zu umgehen (die Information stammt von Tatsuo Ishii):
|
||||||
|
|
||||||
|
1. ändere folgende Zeile in regress.sh:
|
||||||
|
time postgres -texecutor -tplanner -Q bench < bench.sql
|
||||||
|
|
||||||
|
in
|
||||||
|
postgres -texecutor -tplanner -Q bench < bench.sql
|
||||||
|
|
||||||
|
2. nachdem der Test gelaufen ist, entferne eine Zeile ganz am Ende der
|
||||||
|
Datei bench.out, die ungefähr so aussieht:
|
||||||
|
85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k
|
||||||
|
|
||||||
|
dann gib folgendes auf der Befehlszeile ein:
|
||||||
|
sh ./perquery < bench.out > & bench.out.perquery
|
||||||
|
|
||||||
|
3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen
|
||||||
|
Datums/Zeit-Berechnungen, wie:
|
||||||
|
select '4 hours'::timespan;
|
||||||
|
liefert '3 hours 59 minutes 60 seconds'?
|
||||||
|
|
||||||
|
Du benutzt neue glibc2-Bibliotheken in einer Version kleiner als
|
||||||
|
2.0.7. Das ist ein mathematisches Rundungsproblem. Aktualisiere Deine
|
||||||
|
Bibliothek.
|
||||||
|
|
||||||
|
3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget failed
|
||||||
|
(Permission denied)?
|
||||||
|
|
||||||
|
Im Detail erscheint der Fehler mit dieser Meldung:
|
||||||
|
In detail, a message like this may appear:
|
||||||
|
IpcMemoryCreate: shmget failed (Permission denied)
|
||||||
|
key=5432010, size=120, permission=700
|
||||||
|
IpcMemoryAttach: shmat failed (Permission denied) id=0
|
||||||
|
FATAL 1: AttachSLockMemory: could not attach segment
|
||||||
|
|
||||||
|
Dieser Fehler wird durch nicht gelöschte Segmente im shared memory
|
||||||
|
verursacht. (Du kannst sie mit dem Programm ipcs sehen. Benutze das
|
||||||
|
Programm ipcrm, um sie zu löschen.
|
||||||
|
_________________________________________________________________
|
||||||
|
|
||||||
|
Author of the english version
|
||||||
|
Dr. Andrew C.R. Martin University College London
|
||||||
|
EMAIL: (Work) martin@biochem.ucl.ac.uk (Home)
|
||||||
|
andrew@stagleys.demon.co.uk
|
||||||
|
URL: http://www.biochem.ucl.ac.uk/~martin
|
||||||
|
Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775
|
||||||
|
|
||||||
|
Translator of the german version
|
||||||
|
Karsten Schulz Linux Systemhaus Schulz
|
||||||
|
EMAIL: (Work) schulz@Linux-Systemhaus.de (Home) kaschu@t800.ping.de
|
||||||
|
URL: http://www.Linux-Systemhaus.de/
|
||||||
|
Tel: (Work) +49 231 3944432 (Fax) +49 231 3944435
|
0
doc/FAQ_Linux_Italian
Normal file
0
doc/FAQ_Linux_Italian
Normal file
@ -1,172 +0,0 @@
|
|||||||
<PRE>
|
|
||||||
=======================================================
|
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL V6.4
|
|
||||||
HP-UX Specific
|
|
||||||
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
|
||||||
=======================================================
|
|
||||||
last updated: Sat Nov 28 16:21:25 EST 1998
|
|
||||||
|
|
||||||
current maintainer: Tom Lane (tgl@sss.pgh.pa.us)
|
|
||||||
original author: Tom Lane (tgl@sss.pgh.pa.us)
|
|
||||||
|
|
||||||
|
|
||||||
Questions covered here:
|
|
||||||
1.1) What do I need to install PostgreSQL on HP-UX?
|
|
||||||
1.2) Anything special about the build/install procedure?
|
|
||||||
1.3) yacc dies trying to process src/backend/parser/gram.y.
|
|
||||||
1.4) Linking the main postgres executable fails, complaining that
|
|
||||||
there's no "alloca" function.
|
|
||||||
1.5) OK, it seemed to build and install, but the regression test fails.
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 1: Installing PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
1.1) What do I need to install PostgreSQL on HP-UX?
|
|
||||||
|
|
||||||
PostgreSQL 6.4 is known to build and pass regression test on HPUX 9.03,
|
|
||||||
9.05, and 10.20, given appropriate system patch levels and build tools.
|
|
||||||
It should work on other HPUX 9.* and 10.* releases for Series 700/800
|
|
||||||
machines, too. (No one has reported trying it with HPUX 11 yet.)
|
|
||||||
Since this is a new FAQ, I don't yet have a lot of information about the
|
|
||||||
exact prerequisites, but I'd appreciate hearing from anyone who fails to
|
|
||||||
build a working copy, so that we can add more info about exactly what is
|
|
||||||
needed.
|
|
||||||
|
|
||||||
Aside from PostgreSQL 6.4 or later sources, you will need GNU make
|
|
||||||
(HP's make will not do), and either GNU gcc or HP's full ANSI C compiler.
|
|
||||||
You must also get flex (GNU lex) 2.5.4 or later --- all versions of
|
|
||||||
HP's lex fail on the Postgres lexer files.
|
|
||||||
|
|
||||||
I'd also recommend making sure you are fairly up-to-date on HP patches,
|
|
||||||
particularly if you are using HPUX 9. At a minimum, if you are on HPUX 9,
|
|
||||||
you *must* have PHSS_4630 (libm update) or a successor patch; otherwise
|
|
||||||
Postgres' date/time functions will misbehave. On general principles you
|
|
||||||
should be current on libc and ld/dld patches, as well as compiler
|
|
||||||
patches if you are using HP's C compiler (but I don't currently know of
|
|
||||||
any specific failures due to not having recent patches for these files).
|
|
||||||
See HP's support websites, such as http://us-support.external.hp.com/,
|
|
||||||
for free copies of their latest patches.
|
|
||||||
|
|
||||||
PostgreSQL 6.3.2 and earlier required quite a few small tweaks to
|
|
||||||
install on HPUX, so I recommend you not bother with anything older
|
|
||||||
than 6.4.
|
|
||||||
|
|
||||||
|
|
||||||
1.2) Anything special about the build/install procedure?
|
|
||||||
|
|
||||||
When you run configure, you will want to explicitly select either the
|
|
||||||
hpux_cc or hpux_gcc template depending on which compiler you plan to
|
|
||||||
use:
|
|
||||||
./configure --with-template=hpux_cc
|
|
||||||
for HP's C compiler, or
|
|
||||||
./configure --with-template=hpux_gcc
|
|
||||||
for GNU gcc. (If you omit --with-template, configure may either
|
|
||||||
default to hpux_cc or give up entirely, depending on which HPUX and
|
|
||||||
PostgreSQL releases you have.)
|
|
||||||
|
|
||||||
You may want to tweak the CFLAGS setting in template/hpux_[g]cc before
|
|
||||||
you configure; the distributed files contain neither -O nor -g switches,
|
|
||||||
which is hardly optimal for any situation. I've seen no problems using
|
|
||||||
-O with gcc 2.7.2.*.
|
|
||||||
|
|
||||||
The default install target location is /usr/local/pgsql, which
|
|
||||||
(particularly on HPUX 10) you might want to change to something under
|
|
||||||
/opt. If so, use the --prefix switch to configure.
|
|
||||||
|
|
||||||
If you have both HP and GNU C++ compilers in your PATH, keep an eye on
|
|
||||||
whether configure picks the right one --- you want the HP c++ if you are
|
|
||||||
using HP C, or g++ if you are using gcc. Mixing HP and GNU compilers
|
|
||||||
won't work. You may need to provide a --with-CXX=compiler switch to
|
|
||||||
force configure to pick the matching C++ compiler, or even say
|
|
||||||
--without-CXX if you have a C++ compiler but it doesn't match the C
|
|
||||||
compiler you want to use.
|
|
||||||
|
|
||||||
Otherwise the standard build/install procedure described in the
|
|
||||||
PostgreSQL documentation works fine.
|
|
||||||
|
|
||||||
|
|
||||||
1.3) yacc dies trying to process src/backend/parser/gram.y.
|
|
||||||
|
|
||||||
HP's yacc doesn't create its tables large enough to handle the Postgres
|
|
||||||
grammar (a lot of other vendors' yaccs have this problem too). There
|
|
||||||
are three possible workarounds:
|
|
||||||
|
|
||||||
1. The quickest answer is just to "touch" src/backend/parser/gram.c
|
|
||||||
and src/backend/parser/parse.h and repeat the build. Any PostgreSQL
|
|
||||||
distribution file should have up-to-date copies of those files included,
|
|
||||||
so you shouldn't need to run yacc on gram.y at all ... but sometimes
|
|
||||||
gram.y mistakenly has a newer timestamp in the distribution than the
|
|
||||||
derived files do.
|
|
||||||
|
|
||||||
2. Install "bison" (GNU yacc) and reconfigure. Bison doesn't have a
|
|
||||||
problem with large grammars. Note this is not the right choice if you
|
|
||||||
are using HP's cc on HPUX 9 --- see next item.
|
|
||||||
|
|
||||||
3. Increase yacc's table sizes enough to cope. With a pre-6.4
|
|
||||||
PostgreSQL grammar, I was able to get HPUX 9's yacc to work by
|
|
||||||
setting YFLAGS to
|
|
||||||
-d -Np2000 -Ns3000 -Nm100000 -Nl2000 -Na30000 -Nc10000
|
|
||||||
(You can edit YFLAGS either in the template file before running
|
|
||||||
configure, or in src/Makefile.global afterwards.) Future PostgreSQL
|
|
||||||
releases might require even larger tables, but this should do for
|
|
||||||
a starting point.
|
|
||||||
|
|
||||||
|
|
||||||
1.4) Linking the main postgres executable fails, complaining that
|
|
||||||
there's no "alloca" function.
|
|
||||||
|
|
||||||
If you're using HP's cc on HPUX 9, it's right: there's no alloca
|
|
||||||
function. The only place in PostgreSQL that uses alloca is the parser
|
|
||||||
(gram.c), and that does so only if it was generated with GNU bison.
|
|
||||||
Unfortunately the distribution copy of gram.c is made with bison.
|
|
||||||
There are several possible answers:
|
|
||||||
|
|
||||||
1. Remake gram.c with HP's yacc (see above item for switch settings).
|
|
||||||
You might also need to remake src/backend/bootstrap/bootparse.c.
|
|
||||||
|
|
||||||
2. Build with gcc, which treats alloca as a compiled-in-line function.
|
|
||||||
|
|
||||||
3. Install HPUX 10, which has alloca. You're gonna have to do that
|
|
||||||
before Y2K anyway...
|
|
||||||
|
|
||||||
|
|
||||||
1.5) OK, it seemed to build and install, but the regression test fails.
|
|
||||||
|
|
||||||
There are several "expected failures" due to differences between HPUX
|
|
||||||
and the regression test reference platform used by the PostgreSQL group.
|
|
||||||
A look at the textual differences between the expected and actual
|
|
||||||
outputs will usually reveal that the differences are minor. You should
|
|
||||||
expect these differences:
|
|
||||||
|
|
||||||
TEST(S) COMMENTS
|
|
||||||
|
|
||||||
int2, int4: pg_atoi generates a differently worded error
|
|
||||||
message for integer overflow.
|
|
||||||
|
|
||||||
float8: In 6.4, float8 shows some differences due to
|
|
||||||
different handling of overflow/underflow errors in
|
|
||||||
exp() and pow(). This should be fixed in 6.4.1
|
|
||||||
and later.
|
|
||||||
|
|
||||||
float8, geometry: Lots of differences in the last digit or two
|
|
||||||
because of different roundoff errors in floating
|
|
||||||
arithmetic. Also, HPUX does not distinguish
|
|
||||||
-0 from 0 during printout, but the reference
|
|
||||||
platform does.
|
|
||||||
|
|
||||||
horology: HPUX time library does not know about daylight
|
|
||||||
savings time before 1970, so there are some
|
|
||||||
places in horology where a time will be shown
|
|
||||||
in PST instead of PDT.
|
|
||||||
|
|
||||||
In addition, the int8 regression test will fail massively on HPUX 9,
|
|
||||||
because int8 doesn't actually work on this platform (sprintf/sscanf
|
|
||||||
don't cope with long long int). Either upgrade to HPUX 10, or don't
|
|
||||||
use int8 data.
|
|
||||||
|
|
||||||
Any other error is cause for suspicion. In particular, if you see
|
|
||||||
failures in the datetime test on HPUX 9, you probably forgot to
|
|
||||||
install the libm patch PHSS_4630 --- see item 1.1 above.
|
|
||||||
</PRE>
|
|
@ -1,492 +0,0 @@
|
|||||||
<PRE>
|
|
||||||
======================================================
|
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL >=V6.1
|
|
||||||
IRIX Specific
|
|
||||||
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
|
||||||
======================================================
|
|
||||||
last updated: Mon Mar 05 17:00:00 GMT 1998
|
|
||||||
|
|
||||||
current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
|
|
||||||
original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
|
|
||||||
|
|
||||||
|
|
||||||
Changes in this version (* = modified, + = new, - = removed):
|
|
||||||
*1.5) Can I install PostgreSQL (<V6.3) under Irix 6.x?
|
|
||||||
+1.10) How do I install PostgreSQL V6.3 under Irix 6.x?
|
|
||||||
|
|
||||||
This file is divided approximately as follows:
|
|
||||||
1.*) Installing PostgreSQL
|
|
||||||
2.*) Uninstalling PostgreSQL
|
|
||||||
3.*) Extending PostgreSQL
|
|
||||||
|
|
||||||
|
|
||||||
Questions answered:
|
|
||||||
1.1) What extra items do I need to install PostgreSQL under Irix?
|
|
||||||
1.2) What changes do I need to make to src/Makefile.global?
|
|
||||||
1.3) What are the references in X11_LIB to libsocket and libnsl in
|
|
||||||
src/Makefile.global?
|
|
||||||
1.4) Are there any other changes I should make?
|
|
||||||
1.5) Can I install PostgreSQL (<V6.3) under Irix 6.x?
|
|
||||||
1.6) The make fails with the following message:
|
|
||||||
ld32: ERROR 4: Conflicting flag setting: -call_shared
|
|
||||||
1.7) Why won't it link? (Problems with lorder)
|
|
||||||
1.8) I have major problems with IRIX 6!
|
|
||||||
1.9) Why does lex fail with PostgreSQL 6.2.1?
|
|
||||||
1.10) How do I install PostgreSQL V6.3 under Irix 6.x?
|
|
||||||
2.1) Why can't I move the executable files?
|
|
||||||
3.1) How do I compile a C program to create a function for extending
|
|
||||||
PostgreSQL
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 1: Installing PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
1.1) What extra items do I need to install PostgreSQL under Irix?
|
|
||||||
|
|
||||||
You *must* have the following installed:
|
|
||||||
a) Gnu make (installed as gmake)
|
|
||||||
|
|
||||||
You are recommended to install the following:
|
|
||||||
a) GNU install (installed as ginstall)
|
|
||||||
(This is part of the GNU fileutils package)
|
|
||||||
|
|
||||||
You may choose to install the following:
|
|
||||||
a) GNU readline library (if you wish psql to have readline
|
|
||||||
support).
|
|
||||||
b) tcl/tk (if you wish to compile pgtclsh)
|
|
||||||
|
|
||||||
1.2) What changes do I need to make to src/Makefile.global or
|
|
||||||
src/Makefile.custom?
|
|
||||||
|
|
||||||
The easiest way to do this is to use the customize script in
|
|
||||||
the src directory.
|
|
||||||
|
|
||||||
You *must* set the following variables:
|
|
||||||
PORTNAME= irix5
|
|
||||||
|
|
||||||
You will also need to change the following to match your own
|
|
||||||
installation:
|
|
||||||
POSTGRESDIR
|
|
||||||
|
|
||||||
If you switch on the USE_TCL option, you will need to set these:
|
|
||||||
TCL_INCDIR=
|
|
||||||
TCL_LIBDIR=
|
|
||||||
TCL_LIB =
|
|
||||||
TK_INCDIR=
|
|
||||||
TK_LIBDIR=
|
|
||||||
TK_LIB =
|
|
||||||
|
|
||||||
You may also make any other changes you need as documented in
|
|
||||||
the INSTALL file and in Makefile.global
|
|
||||||
|
|
||||||
1.3) What are the references in X11_LIB to libsocket and libnsl in
|
|
||||||
src/Makefile.global?
|
|
||||||
|
|
||||||
This was a problem in 1.08 (they are Sun Solaris specific).
|
|
||||||
It is fixed in 1.09 and above.
|
|
||||||
|
|
||||||
1.4) Are there any other changes I should make?
|
|
||||||
|
|
||||||
If you have installed the GNU install program (ginstall), you
|
|
||||||
should add the following line to src/Makefile.custom:
|
|
||||||
CUSTOM_INSTALL=ginstall
|
|
||||||
|
|
||||||
For an explanation as to why this is a good idea, see Question 2.1
|
|
||||||
Ginstall is part of the GNU fileutils package.
|
|
||||||
|
|
||||||
|
|
||||||
1.5) Can I install PostgreSQL (<V6.3) under Irix 6.x?
|
|
||||||
|
|
||||||
Instructions for PostgreSQL V6.3 are answered in Question 1.10!
|
|
||||||
|
|
||||||
Irix 6.2-6.4 has a bug in ld which mishandles the addresses of
|
|
||||||
static procedures when object files are assembled into
|
|
||||||
larger object files using 'ld -r'. This bug has been reported
|
|
||||||
to Silicon Graphics.
|
|
||||||
|
|
||||||
One option is to use the Gnu version of ld. Alternatively,
|
|
||||||
the following patch should be applied as a workaround.
|
|
||||||
(Supplied by Bob Bruccoleri <bruc@bms.com>)
|
|
||||||
|
|
||||||
*** ./backend/Makefile.orig Thu May 22 00:00:15 1997
|
|
||||||
--- ./backend/Makefile Thu Jun 5 16:47:27 1997
|
|
||||||
***************
|
|
||||||
*** 54,60 ****
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
--- 54,64 ----
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
! -rm -f *.o
|
|
||||||
! find . -name "*.o" -exec cp \{\} . \;
|
|
||||||
! rm -f SUBSYS.o
|
|
||||||
! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.6) The make fails with the following message:
|
|
||||||
ld32: ERROR 4: Conflicting flag setting: -call_shared
|
|
||||||
|
|
||||||
If gmake fails in .../src/backend while building obj/ACCESS.o
|
|
||||||
with a message from ld32, you can work around this by using
|
|
||||||
ld for the LD environment variable rather than cc.
|
|
||||||
|
|
||||||
The problem has been observed under Irix 5.3 when compiling both
|
|
||||||
Postgres95-1.09 and PostgreSQL-6.2Beta6, but on some systems
|
|
||||||
these appear to compile with no such problems.
|
|
||||||
|
|
||||||
Fix supplied by Brian Sanders (bsanders@netcom.com,
|
|
||||||
brian@fresnelsoft.com)
|
|
||||||
|
|
||||||
|
|
||||||
1.7) Why won't it link? (Problems with lorder)
|
|
||||||
|
|
||||||
According to the IRIX man pages, lorder is useless, but harmless
|
|
||||||
under IRIX. However, it has caused problems for some people
|
|
||||||
using both IRIX 6.2.
|
|
||||||
|
|
||||||
The solution is to add the following line to
|
|
||||||
.../src/makefiles/Makefile.irix5
|
|
||||||
|
|
||||||
MK_NO_LORDER=true
|
|
||||||
|
|
||||||
|
|
||||||
1.8) I have major problems with IRIX 6!
|
|
||||||
|
|
||||||
The following is quoted directly from Bob Bruccoleri <bruc@bms.com>
|
|
||||||
|
|
||||||
There is a really nasty loader bug in the compiler system (7.1)
|
|
||||||
on Irix 6.x, and the error that Lasse Petersen is the result of it.
|
|
||||||
Here is the original message. I don't know if all the changes have been
|
|
||||||
folded into the current release.
|
|
||||||
|
|
||||||
Date: Fri, 06 Jun 1997 17:12:20 -0400 (EDT)
|
|
||||||
From: bruc@bms.com (Robert Bruccoleri)
|
|
||||||
Subject: [PORTS] Patches for Irix 6.4
|
|
||||||
|
|
||||||
I have worked out how to compile PostgreSQL on Irix 6.4 using the -n32 compiler
|
|
||||||
mode and version 7.1 of the C compiler. (The n32 compiler use 32 bits addressing,
|
|
||||||
but allows access to all the instructions in the MIPS4 instruction set.)
|
|
||||||
There were several problems:
|
|
||||||
|
|
||||||
1) The ld command is not referenced as a macro in all the Makefiles. On
|
|
||||||
this platform, you have to include -n32 on all the ld commands. Makefiles
|
|
||||||
were changed as needed.
|
|
||||||
|
|
||||||
2) There is a bug in "ld" which mishandles the addresses of static procedures
|
|
||||||
when object files are assembled into larger object files using "ld -r".
|
|
||||||
Because of this, I put a hack into src/backend/Makefile to avoid all the
|
|
||||||
SUBSYS.o files and just link all the objects. I have contacted SGI about the
|
|
||||||
problem, and hopefully, it will be fixed in the near future.
|
|
||||||
|
|
||||||
3) Lots of warnings are generated from the compiler. Since the regression
|
|
||||||
tests worked OK, I didn't attempt to fix them. If anyone wants the compilation
|
|
||||||
log, please let me know, and I'll email it to you.
|
|
||||||
|
|
||||||
The version of postgresql was 970602. Here is Makefile.custom:
|
|
||||||
|
|
||||||
CUSTOM_COPT = -O2 -n32
|
|
||||||
MK_NO_LORDER = 1
|
|
||||||
LD = ld -n32
|
|
||||||
CC += -n32
|
|
||||||
|
|
||||||
Here are the patches:
|
|
||||||
|
|
||||||
*** ./backend/access/Makefile.orig Sun Nov 10 00:00:15 1996
|
|
||||||
- --- ./backend/access/Makefile Tue Jun 3 10:22:32 1997
|
|
||||||
***************
|
|
||||||
*** 8,13 ****
|
|
||||||
- --- 8,16 ----
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
|
|
||||||
+ SRCDIR = ../..
|
|
||||||
+ include ../../Makefile.global
|
|
||||||
+
|
|
||||||
OBJS = common/SUBSYS.o gist/SUBSYS.o hash/SUBSYS.o heap/SUBSYS.o \
|
|
||||||
index/SUBSYS.o rtree/SUBSYS.o nbtree/SUBSYS.o transam/SUBSYS.o
|
|
||||||
|
|
||||||
|
|
||||||
*** ./backend/bootstrap/Makefile.orig Fri Apr 18 06:00:23 1997
|
|
||||||
- --- ./backend/bootstrap/Makefile Tue Jun 3 10:23:59 1997
|
|
||||||
***************
|
|
||||||
*** 38,44 ****
|
|
||||||
all: SUBSYS.o
|
|
||||||
|
|
||||||
SUBSYS.o: $(OBJS)
|
|
||||||
! ld -r -o SUBSYS.o $(OBJS)
|
|
||||||
|
|
||||||
# bootstrap.o's dependency on bootstrap_tokens.h is computed by the
|
|
||||||
# make depend, but we state it here explicitly anyway because
|
|
||||||
- --- 38,44 ----
|
|
||||||
all: SUBSYS.o
|
|
||||||
|
|
||||||
SUBSYS.o: $(OBJS)
|
|
||||||
! $(LD) -r -o SUBSYS.o $(OBJS)
|
|
||||||
|
|
||||||
# bootstrap.o's dependency on bootstrap_tokens.h is computed by the
|
|
||||||
# make depend, but we state it here explicitly anyway because
|
|
||||||
|
|
||||||
*** ./backend/Makefile.orig Thu May 22 00:00:15 1997
|
|
||||||
- --- ./backend/Makefile Thu Jun 5 16:47:27 1997
|
|
||||||
***************
|
|
||||||
*** 54,60 ****
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
- --- 54,64 ----
|
|
||||||
all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
! -rm -f *.o
|
|
||||||
! find . -name "*.o" -exec cp \{\} . \;
|
|
||||||
! rm -f SUBSYS.o
|
|
||||||
! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
***************
|
|
||||||
*** 116,122 ****
|
|
||||||
install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\
|
|
||||||
global1.bki.source local1_template1.bki.source \
|
|
||||||
libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample
|
|
||||||
!
|
|
||||||
$(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres
|
|
||||||
ifeq ($(MAKE_EXPORTS), true)
|
|
||||||
$(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP)
|
|
||||||
- --- 120,126 ----
|
|
||||||
install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\
|
|
||||||
global1.bki.source local1_template1.bki.source \
|
|
||||||
libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample
|
|
||||||
!
|
|
||||||
$(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres
|
|
||||||
ifeq ($(MAKE_EXPORTS), true)
|
|
||||||
$(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP)
|
|
||||||
|
|
||||||
*** ./backend/optimizer/Makefile.orig Wed Feb 19 12:00:34 1997
|
|
||||||
- --- ./backend/optimizer/Makefile Tue Jun 3 10:39:47 1997
|
|
||||||
***************
|
|
||||||
*** 8,13 ****
|
|
||||||
- --- 8,16 ----
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
|
|
||||||
+ SRCDIR= ../..
|
|
||||||
+ include ../../Makefile.global
|
|
||||||
+
|
|
||||||
all: submake SUBSYS.o
|
|
||||||
|
|
||||||
OBJS = path/SUBSYS.o plan/SUBSYS.o prep/SUBSYS.o util/SUBSYS.o geqo/SUBSYS.o
|
|
||||||
|
|
||||||
*** ./backend/libpq/pqcomprim.c.orig Mon May 26 00:00:23 1997
|
|
||||||
- --- ./backend/libpq/pqcomprim.c Fri Jun 6 16:02:24 1997
|
|
||||||
***************
|
|
||||||
*** 32,40 ****
|
|
||||||
# define hton_l(n) (ntoh_l(n))
|
|
||||||
# else /* BYTE_ORDER != BIG_ENDIAN */
|
|
||||||
# if BYTE_ORDER == PDP_ENDIAN
|
|
||||||
! # #error PDP_ENDIAN macros not written yet
|
|
||||||
# else /* BYTE_ORDER != anything known */
|
|
||||||
! # #error BYTE_ORDER not defined as anything understood
|
|
||||||
# endif /* BYTE_ORDER == PDP_ENDIAN */
|
|
||||||
# endif /* BYTE_ORDER == BIG_ENDIAN */
|
|
||||||
#endif /* BYTE_ORDER == LITTLE_ENDIAN */
|
|
||||||
- --- 32,40 ----
|
|
||||||
# define hton_l(n) (ntoh_l(n))
|
|
||||||
# else /* BYTE_ORDER != BIG_ENDIAN */
|
|
||||||
# if BYTE_ORDER == PDP_ENDIAN
|
|
||||||
! # error PDP_ENDIAN macros not written yet
|
|
||||||
# else /* BYTE_ORDER != anything known */
|
|
||||||
! # error BYTE_ORDER not defined as anything understood
|
|
||||||
# endif /* BYTE_ORDER == PDP_ENDIAN */
|
|
||||||
# endif /* BYTE_ORDER == BIG_ENDIAN */
|
|
||||||
#endif /* BYTE_ORDER == LITTLE_ENDIAN */
|
|
||||||
|
|
||||||
*** ./backend/storage/Makefile.orig Sun Nov 10 00:01:06 1996
|
|
||||||
- --- ./backend/storage/Makefile Tue Jun 3 10:41:29 1997
|
|
||||||
***************
|
|
||||||
*** 8,13 ****
|
|
||||||
- --- 8,16 ----
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
|
|
||||||
+ SRCDIR= ../..
|
|
||||||
+ include ../../Makefile.global
|
|
||||||
+
|
|
||||||
all: submake SUBSYS.o
|
|
||||||
|
|
||||||
OBJS = buffer/SUBSYS.o file/SUBSYS.o ipc/SUBSYS.o large_object/SUBSYS.o \
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.9) Why does lex fail with PostgreSQL 6.2.1?
|
|
||||||
|
|
||||||
IRIX 5.3 lex has been reported to fail in
|
|
||||||
postgresql-6.2.1/src/backend/parser with the error:
|
|
||||||
|
|
||||||
lex scan.l
|
|
||||||
"scan.l":line 86: Error: Invalid request %x xc
|
|
||||||
gmake[2]: *** [scan.c] Error 1
|
|
||||||
|
|
||||||
The answer is to use GNU flex 2.5.4 or later. Use the command
|
|
||||||
flex --version
|
|
||||||
to check you have a new enough version of flex
|
|
||||||
|
|
||||||
|
|
||||||
1.10) How do I install PostgreSQL V6.3 under Irix 6.x?
|
|
||||||
|
|
||||||
Irix 6.2-6.4 has a bug in ld which mishandles the addresses of
|
|
||||||
static procedures when object files are assembled into
|
|
||||||
larger object files using 'ld -r'. This bug has been reported
|
|
||||||
to Silicon Graphics.
|
|
||||||
|
|
||||||
Depending on your Irix installation you may also encounter
|
|
||||||
2 other problems detailed below: Conflict in C standards,
|
|
||||||
Conflict in library functions.
|
|
||||||
|
|
||||||
a) Solving the ld bug
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
One option is to use the Gnu version of ld. Alternatively,
|
|
||||||
the following patch should be applied as a workaround.
|
|
||||||
(Supplied by Bob Bruccoleri <bruc@bms.com> and modified for
|
|
||||||
PostgreSQL V6.3 by Lasse Hiller Petersen <lassehp@imv.aau.dk>)
|
|
||||||
|
|
||||||
Apply the following patch:
|
|
||||||
|
|
||||||
*** ./backend/Makefile.orig Tue Mar 3 15:33:58 1998
|
|
||||||
--- ./backend/Makefile Tue Mar 3 15:39:27 1998
|
|
||||||
***************
|
|
||||||
*** 63,69 ****
|
|
||||||
global1.description
|
|
||||||
local1_template1.description
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
--- 63,73 ----
|
|
||||||
global1.description
|
|
||||||
local1_template1.description
|
|
||||||
|
|
||||||
postgres: $(OBJS) ../utils/version.o
|
|
||||||
! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
|
|
||||||
! -rm -f *.o
|
|
||||||
! find . -name "*.o" -exec cp \{\} . \;
|
|
||||||
! rm -f SUBSYS.o
|
|
||||||
! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS)
|
|
||||||
|
|
||||||
$(OBJS): $(DIRS:%=%.dir)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Lasse configured with ./configure --enable-locale
|
|
||||||
and modified Makefile.custom to contain:
|
|
||||||
CC = cc -n32
|
|
||||||
LD = ld -n32
|
|
||||||
|
|
||||||
He reports that the installation without -n32 works fine too,
|
|
||||||
but the -n32 was required for compatibility with his Perl
|
|
||||||
installation. His system was an Origin200 running IRIX64 v6.4.
|
|
||||||
|
|
||||||
|
|
||||||
b) Conflict in C standards
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
I have found that the following patch is also necessary in order
|
|
||||||
to prevent a duplicate definition of a Union used for semaphores.
|
|
||||||
Apply the following patch to:
|
|
||||||
.../src/makefile/Makefile.irix5:
|
|
||||||
|
|
||||||
*** src/makefiles/Makefile.irix5.orig Thu Mar 5 16:59:58 1998
|
|
||||||
--- src/makefiles/Makefile.irix5 Thu Mar 5 17:01:13 1998
|
|
||||||
***************
|
|
||||||
*** 6,9 ****
|
|
||||||
%.so: %.o
|
|
||||||
$(LD) -G -Bdynamic -shared -o $@ $<
|
|
||||||
|
|
||||||
!
|
|
||||||
--- 6,9 ----
|
|
||||||
%.so: %.o
|
|
||||||
$(LD) -G -Bdynamic -shared -o $@ $<
|
|
||||||
|
|
||||||
! CFLAGS+= -U_NO_XOPEN4
|
|
||||||
|
|
||||||
i.e. the addition of the line:
|
|
||||||
CFLAGS+= -U_NO_XOPEN4
|
|
||||||
|
|
||||||
This is needed to stop the semun union being redefined in
|
|
||||||
/usr/include/sys/sem.h
|
|
||||||
|
|
||||||
c) Conflict in library functions
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
In addition, if you have the nsl and crypt libraries these will
|
|
||||||
conflict with the required definitions. I think that libnsl.a
|
|
||||||
may be the Netware socket library (or something similar). In
|
|
||||||
any case, if you have these libraries, they will be added to
|
|
||||||
Makefile.global and you will need to remove them.
|
|
||||||
|
|
||||||
Thus, you should edit .../src/Makefile.global. Goto (approximately)
|
|
||||||
line 217 where LDFLAGS= is set and remove -lnsl and -lcrypt
|
|
||||||
from this line.
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 2: Deinstalling PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
2.1) Why can't I move the executable files?
|
|
||||||
|
|
||||||
By default, the IRIX port uses the BSD compatible version of
|
|
||||||
install from /usr/bin/X11. If you read the man page for this
|
|
||||||
version of install, you will see that it is not meant for
|
|
||||||
end-user use; it has the interesting side-effect of chowning
|
|
||||||
files it installs to root.
|
|
||||||
|
|
||||||
You should still be able to delete the files as you (the
|
|
||||||
postgres user) will own the directory in which they are
|
|
||||||
stored.
|
|
||||||
|
|
||||||
The normal IRIX install program cannot be used easily as it
|
|
||||||
takes its arguments in the reverse order. It is therefore
|
|
||||||
recommended to use the GNU version of install (ginstall).
|
|
||||||
See Question 1.4
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 3: Extending PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
3.1) How do I compile a C program to create a function for extending
|
|
||||||
PostgreSQL
|
|
||||||
|
|
||||||
Here is a sample command line:
|
|
||||||
|
|
||||||
cc -I/usr/local/PostgreSQL/include/ -I/usr/local/PostgreSQL/src/backend
|
|
||||||
-shared -o funcs.so funcs.c
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------
|
|
||||||
Dr. Andrew C.R. Martin University College London
|
|
||||||
EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) andrew@stagleys.demon.co.uk
|
|
||||||
URL: http://www.biochem.ucl.ac.uk/~martin
|
|
||||||
Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775
|
|
||||||
</PRE>
|
|
@ -1,704 +0,0 @@
|
|||||||
<PRE>
|
|
||||||
=======================================================
|
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1
|
|
||||||
Linux Specific
|
|
||||||
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
|
||||||
=======================================================
|
|
||||||
last updated: Fri Jun 19 13:35:00 BST 1998
|
|
||||||
|
|
||||||
current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
|
|
||||||
original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
|
|
||||||
|
|
||||||
|
|
||||||
Changes in this version (* = modified, + = new, - = removed):
|
|
||||||
|
|
||||||
+1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
|
|
||||||
and F_BYTEAIN being undeclared?
|
|
||||||
|
|
||||||
This file is divided approximately as follows:
|
|
||||||
1.*) Installing PostgreSQL
|
|
||||||
2.*) Compiling accessory programs
|
|
||||||
3.*) Runtime Problems
|
|
||||||
|
|
||||||
|
|
||||||
Questions answered:
|
|
||||||
1.1) What changes do I need to make to src/Makefile.global or
|
|
||||||
src/Makefile.custom and are there any other changes needed?
|
|
||||||
1.2) Why do I get problems with missing libreadline?
|
|
||||||
1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h?
|
|
||||||
1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h?
|
|
||||||
1.5) My compile of the backend dies complaining about the include file
|
|
||||||
dlfcn.h missing
|
|
||||||
1.6) GCC complains about an ignored option -fpic
|
|
||||||
1.7) I get warnings of the form
|
|
||||||
warning: cast from pointer to integer of different size
|
|
||||||
1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap?
|
|
||||||
1.9) Why do I get problems with ld.so?
|
|
||||||
1.10) Why do I get `yy_flush_buffer undefined' errors?
|
|
||||||
1.11) How do I compile PostgreSQL on an a.out system?
|
|
||||||
1.12) Why does make fail with:
|
|
||||||
yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
|
|
||||||
make: /usr/bin/make: cannot execute binary file
|
|
||||||
1.13) What are the references in X11_LIB to libsocket and libnsl in
|
|
||||||
src/Makefile.global?
|
|
||||||
1.14) [DEBIAN] Where is libtermcap?
|
|
||||||
1.15) [REDHAT] Can I get PostgreSQL as an RPM?
|
|
||||||
1.16) While trying to compile a development version under Linux, compilation
|
|
||||||
fails with a message like:
|
|
||||||
In file included from /usr/include/sys/sem.h:8,
|
|
||||||
from ipc.c:37:
|
|
||||||
/usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
|
|
||||||
....
|
|
||||||
make: *** [ipc.o] Error 1
|
|
||||||
1.17) When compiling postgres, gcc reports signal 11 and aborts.
|
|
||||||
1.18) Can I install 6.1.1 under MkLinux?
|
|
||||||
1.19) Why does make exit or crash?
|
|
||||||
1.20) How can I optimise for 486 or pentium processors
|
|
||||||
1.21) Why do I get strange results with printing times (for example
|
|
||||||
in the regression test 'timespan')?
|
|
||||||
1.22) Why don't I get any shared libraries for libpq when I compile
|
|
||||||
6.3.2?
|
|
||||||
1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
|
|
||||||
and F_BYTEAIN being undeclared?
|
|
||||||
2.1) The linker fails to find libX11 when compiling pgtclsh
|
|
||||||
3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
|
|
||||||
running scripts like createuser
|
|
||||||
3.2) I run postmaster and after that system says 'Bad system call(Core
|
|
||||||
dumped)'
|
|
||||||
3.3) When I try to start the Postmaster, why do I get an error of the form
|
|
||||||
Failed Assertion("!(file != 0):(null)", File:
|
|
||||||
"/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
|
|
||||||
!(file != 0) (0)
|
|
||||||
initdb: could not create template database
|
|
||||||
initdb: cleaning up.
|
|
||||||
3.4) Why doesn't createuser work?
|
|
||||||
3.5) Why do I get an error like:
|
|
||||||
IpcMemoryCreate: memKey=155356396 , size=760632 ,
|
|
||||||
permission=384IpcMemoryCreate: shmget(..., create, ...)
|
|
||||||
failed: Invalid argument
|
|
||||||
3.6) Why does psql fail with:
|
|
||||||
psql: can't load library 'libpq.so.1'
|
|
||||||
3.7) Other strange behaviour
|
|
||||||
3.8) When PostgreSQL is running when the system is shutdown, Linux
|
|
||||||
always fsck's the disk when rebooted.
|
|
||||||
3.9) Why does Query 32 in the regression tests take so long?
|
|
||||||
3.10) Why do I get funny rounding results in some date/time arithmetic,
|
|
||||||
such as
|
|
||||||
select '4 hours'::timespan;
|
|
||||||
returning '3 hours 59 minutes 60 seconds'?
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 1: Compiling PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
1.1) What changes do I need to make to src/Makefile.global or
|
|
||||||
src/Makefile.custom and are there any other changes needed?
|
|
||||||
|
|
||||||
Changes to the makefiles are most easily made by running the
|
|
||||||
customize shell script in the src directory which will write a
|
|
||||||
Makefile.custom for you.
|
|
||||||
|
|
||||||
The only other change you may have to make is to replace
|
|
||||||
Flex if you have version 2.5.3 which has a bug which generally
|
|
||||||
manifests itself as createuser failing (See Question 3.4)
|
|
||||||
|
|
||||||
If you modify the makefiles by hand, you *must* set the
|
|
||||||
following variable:
|
|
||||||
PORTNAME= linux
|
|
||||||
|
|
||||||
You will also need to change the following to match your own
|
|
||||||
installation:
|
|
||||||
POSTGRESDIR
|
|
||||||
|
|
||||||
If you switch on the USE_TCL option, you will need to set these:
|
|
||||||
TCL_INCDIR=
|
|
||||||
TCL_LIBDIR=
|
|
||||||
TCL_LIB=
|
|
||||||
TK_INCDIR=
|
|
||||||
TK_LIBDIR=
|
|
||||||
TK_LIB=
|
|
||||||
X11_INCDIR=
|
|
||||||
X11_LIBDIR=
|
|
||||||
X11_LIB=
|
|
||||||
|
|
||||||
On my Slackware3.0 system, these are:
|
|
||||||
TCL_INCDIR= /usr/include/tcl
|
|
||||||
TCL_LIBDIR= /usr/lib
|
|
||||||
TCL_LIB= -ltcl
|
|
||||||
TK_INCDIR= /usr/include/tcl
|
|
||||||
TK_LIBDIR= /usr/lib
|
|
||||||
TK_LIB= -ltk
|
|
||||||
X11_INCDIR= /usr/include/X11
|
|
||||||
X11_LIBDIR= /usr/X386/lib
|
|
||||||
X11_LIB= -lX11
|
|
||||||
|
|
||||||
You may also make any other changes you need as documented in
|
|
||||||
the INSTALL file and in Makefile.global
|
|
||||||
|
|
||||||
|
|
||||||
1.2) Why do I get problems with missing libreadline?
|
|
||||||
|
|
||||||
Linux systems generally don't come with the GNU readline library
|
|
||||||
installed. Either ensure you do not activate the readline options
|
|
||||||
in src/Makefile.global or src/Makefile.custom or install the GNU
|
|
||||||
readline library.
|
|
||||||
|
|
||||||
Note that Debian Linux (like FreeBSD) does come with readline
|
|
||||||
installed.
|
|
||||||
|
|
||||||
1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h?
|
|
||||||
|
|
||||||
This manifests itself as being unable to link with functions
|
|
||||||
such as dlopen(), dlclose(), etc. during the last phase of the
|
|
||||||
compilation.
|
|
||||||
|
|
||||||
The libdl library is used for dynamic linking of user-supplied
|
|
||||||
functions at run-time. For some reason this library was missed out
|
|
||||||
from the Redhat distribution. It seems that the latest Redhat 4.0
|
|
||||||
(Colgate) fixes this.
|
|
||||||
|
|
||||||
RedHat now have a new ld.so RPM package on their FTP site.
|
|
||||||
Simply grab:
|
|
||||||
|
|
||||||
ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.i386.rpm
|
|
||||||
|
|
||||||
Install the RPM file in the usual way and off you go!
|
|
||||||
|
|
||||||
NOTE! You will have to re-run configure and do a make clean
|
|
||||||
after installing the library and before recompiling.
|
|
||||||
|
|
||||||
There has been one report of a corrupted system resulting from
|
|
||||||
programs accessing these libraries while updating them (not
|
|
||||||
altogether surprising). Consequently it is a good idea to reboot
|
|
||||||
the system before installing the new libraries and to
|
|
||||||
have as little running as possible during this upgrade. Going
|
|
||||||
into single-user mode is probably a good idea!
|
|
||||||
|
|
||||||
If you want to do it the hard way, you can obtain the library and the
|
|
||||||
header file from:
|
|
||||||
|
|
||||||
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz
|
|
||||||
|
|
||||||
Alternatively, you may find precompiled binaries in
|
|
||||||
distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb
|
|
||||||
on the same site, or follow the instructions given for question 1.2 for
|
|
||||||
correcting the same error with early releases of Slackware 3.1.
|
|
||||||
Don't use this method unless you know what you are doing!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h?
|
|
||||||
|
|
||||||
This manifests itself as being unable to link with functions
|
|
||||||
such as dlopen(), dlclose(), etc. during the last phase of the
|
|
||||||
compilation.
|
|
||||||
|
|
||||||
See the answer to question 1.3. Slackware up to version 3.0 was
|
|
||||||
supplied with this library and include file and they seem to be
|
|
||||||
back in again in the latest versions of 3.1, but the early 3.1
|
|
||||||
releases (before 9th September 1996) had them missing and many
|
|
||||||
CD-ROM versions will have been pressed from the first 3.1 releases.
|
|
||||||
|
|
||||||
There has been one report of a corrupted system resulting from
|
|
||||||
programs accessing these libraries while updating them (not
|
|
||||||
altogether surprising). Consequently it is a good idea to reboot
|
|
||||||
the system before installing the new libraries and to
|
|
||||||
have as little running as possible during this upgrade. Going
|
|
||||||
into single-user mode is probably a good idea!
|
|
||||||
|
|
||||||
The easiest fix is to obtain the file ldso.tgz from the a4 disk of
|
|
||||||
a more recent Slackware distribution and unpack this file
|
|
||||||
from the root (/) directory, then do
|
|
||||||
|
|
||||||
sh install/doinst.sh
|
|
||||||
|
|
||||||
to complete the installation. Follow this with
|
|
||||||
|
|
||||||
ldconfig
|
|
||||||
|
|
||||||
NOTE! You will have to re-run configure and do a make clean
|
|
||||||
after installing the library and before recompiling.
|
|
||||||
|
|
||||||
If you want to install manually, you must first install the file
|
|
||||||
dlfcn.h in /usr/include.
|
|
||||||
|
|
||||||
Second, install the file libdl.so.1.7.14 (or whatever the latest
|
|
||||||
release is) in /lib, then do:
|
|
||||||
|
|
||||||
cd /lib
|
|
||||||
ln -sf libdl.so.1.7.14 libdl.so.1
|
|
||||||
ln -sf libdl.so.1 libdl.so
|
|
||||||
|
|
||||||
On some systems (depending on your GCC configuration) it may be
|
|
||||||
necessary to do:
|
|
||||||
|
|
||||||
cd /usr/lib
|
|
||||||
ln -sf /lib/libdl.so .
|
|
||||||
|
|
||||||
Finally
|
|
||||||
|
|
||||||
ldconfig
|
|
||||||
|
|
||||||
NOTE! You will have to re-run configure and do a make clean
|
|
||||||
after installing the library and before recompiling.
|
|
||||||
|
|
||||||
|
|
||||||
1.5) My compile of the backend dies complaining about the include file
|
|
||||||
dlfcn.h missing
|
|
||||||
|
|
||||||
See the answer to question 1.3/1.4. Don't forget that if you are using
|
|
||||||
an a.out system you must first have installed the dld package
|
|
||||||
(which is not supplied with most a.out systems) to have dlfcn.h
|
|
||||||
at all. See Question 1.11.
|
|
||||||
|
|
||||||
|
|
||||||
1.6) GCC complains about an ignored option -fpic
|
|
||||||
|
|
||||||
Earlier versions of GCC accepted either -fpic or -fPIC.
|
|
||||||
It appears that more recent versions (V2.7.2?) require -fPIC.
|
|
||||||
If you are using an ELF version of Linux, this can safely be
|
|
||||||
ignored as -fPIC is the default.
|
|
||||||
|
|
||||||
You can correct this by editing src/Makefile.global and
|
|
||||||
changing CFLAGS_SL
|
|
||||||
|
|
||||||
|
|
||||||
1.7) I get warnings of the form
|
|
||||||
warning: cast from pointer to integer of different size
|
|
||||||
|
|
||||||
These were seen in earlier versions of Postgres95 and could
|
|
||||||
safely be ignored. PostgreSQL V6.0 should compile with no warnings
|
|
||||||
except those related to system header files (which can also
|
|
||||||
be safely ignored).
|
|
||||||
|
|
||||||
1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap?
|
|
||||||
|
|
||||||
SuSE-Linux 4.2 has ncurses but not curses. 4.4 appears to have both.
|
|
||||||
SuSE-Linux also has the termcap library is in /usr/lib/termcap
|
|
||||||
instead of in /usr/lib.
|
|
||||||
|
|
||||||
PostgreSQL (up to V6.0)
|
|
||||||
-----------------------
|
|
||||||
Set the value of CURSES_LIB in src/Makefile.custom to -lncurses
|
|
||||||
(or do this through the customize script).
|
|
||||||
Add the following line to src/Makefile.custom:
|
|
||||||
|
|
||||||
LDADD_BE+= -L/usr/lib/termcap
|
|
||||||
|
|
||||||
You may need to edit src/bin/psql/Makefile and change:
|
|
||||||
ifeq ($(PORTNAME), linux)
|
|
||||||
LD_ADD+=
|
|
||||||
to:
|
|
||||||
ifeq ($(PORTNAME), linux)
|
|
||||||
LD_ADD+= -ltermcap
|
|
||||||
|
|
||||||
PostgreSQL (V6.1)
|
|
||||||
-----------------
|
|
||||||
The configure script doesn't know to look in /usr/lib/termcap for
|
|
||||||
the termcap library, so you should specify this as one of the
|
|
||||||
library directories when asked for additional directories to
|
|
||||||
search.
|
|
||||||
|
|
||||||
If this doesn't work (I don't have SuSE to verify that it does)
|
|
||||||
then after running configure, you need to edit
|
|
||||||
src/Makefile.global and add -ltermcap to the LDFLAGS line
|
|
||||||
(after -lreadline). (Alternatively, you can modify
|
|
||||||
src/Makefile.custom before running configure.)
|
|
||||||
|
|
||||||
Some versions of SuSE provide only ncurses, so you may need
|
|
||||||
to force use of ncurses rather than curses by changing
|
|
||||||
-lcurses to -lncurses. (Reported true for SuSE 5.1)
|
|
||||||
|
|
||||||
|
|
||||||
1.9) Why do I get problems with ld.so?
|
|
||||||
|
|
||||||
If you get problems with ld.so, another library required under
|
|
||||||
ELF for dynamic loading, then you have messed up your installation
|
|
||||||
or (more likely) upgrade of Linux.
|
|
||||||
|
|
||||||
See the answers to Question 1.3/1.4. You may need to install
|
|
||||||
ld.so.x.y.z in /lib and run ldconfig.
|
|
||||||
|
|
||||||
The most recent stable release of the ld package is 1.7.14
|
|
||||||
At the time of writing, 1.8.x versions of ld are experimental.
|
|
||||||
|
|
||||||
1.10) Why do I get `yy_flush_buffer undefined' errors?
|
|
||||||
|
|
||||||
This isn't really Linux specific, but is common on older Linux
|
|
||||||
installations. You must have a recent version of flex (2.5.2 or later)
|
|
||||||
to compile PostgreSQL. Note that flex 2.5.3 has a bug: see
|
|
||||||
Question 3.4.
|
|
||||||
|
|
||||||
1.11) How do I compile PostgreSQL on an a.out system?
|
|
||||||
|
|
||||||
First, you must install the dld library. This may be obtained
|
|
||||||
from Sunsite as:
|
|
||||||
Linux/libs/dld.3.2.7.tar.gz
|
|
||||||
(ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz)
|
|
||||||
|
|
||||||
Second, add the following line to src/Makefile.custom:
|
|
||||||
LINUX_ELF=
|
|
||||||
(or use the customize script)
|
|
||||||
|
|
||||||
1.12) Why does make fail with:
|
|
||||||
yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
|
|
||||||
make: /usr/bin/make: cannot execute binary file
|
|
||||||
|
|
||||||
This was a problem in earlier versions of Postgres95. The default
|
|
||||||
for PostgreSQL is to use bison -y rather than yacc.
|
|
||||||
|
|
||||||
yacc is generally implemented as a script which invokes bison -y
|
|
||||||
For some reason (certain versions of make? certain versions of
|
|
||||||
bash?) make is unable to execute this script file.
|
|
||||||
|
|
||||||
To correct this, simply edit src/mk/port/postgres.mk.linux
|
|
||||||
and, at the end of the file, change:
|
|
||||||
# YACC = bison -y
|
|
||||||
to
|
|
||||||
YACC = bison -y
|
|
||||||
|
|
||||||
1.13) What are the references in X11_LIB to libsocket and libnsl in
|
|
||||||
src/Makefile.global?
|
|
||||||
|
|
||||||
This was a problem in 1.08 (they are Sun Solaris specific).
|
|
||||||
It is fixed in 1.09 and 6.0
|
|
||||||
|
|
||||||
1.14) [DEBIAN] Where is libtermcap?
|
|
||||||
|
|
||||||
Debian Linux comes without the termcap library and uses ncurses
|
|
||||||
(which uses terminfo instead). There is no need to change the
|
|
||||||
CURSES_LIB variable in src/bin/psql/Makefile since Debian provides
|
|
||||||
a link from libncurses to libcurses (unlike SuSE-Linux --- see
|
|
||||||
Question 1.8).
|
|
||||||
|
|
||||||
You may need to edit src/bin/psql/Makefile and comment out the
|
|
||||||
change:
|
|
||||||
ifeq ($(PORTNAME), linux)
|
|
||||||
LD_ADD+= -ltermcap
|
|
||||||
to:
|
|
||||||
ifeq ($(PORTNAME), linux)
|
|
||||||
LD_ADD+=
|
|
||||||
|
|
||||||
|
|
||||||
1.15) [REDHAT] Can I get PostgreSQL as an RPM?
|
|
||||||
|
|
||||||
Yes! Michal Mosiewicz <mimo@lodz.pdi.net>
|
|
||||||
(http://www.pdi.lodz.pl/~mimo) has kindly put together an RPM
|
|
||||||
for PostgreSQL V6.0 on Intel architectures which he has uploaded to
|
|
||||||
ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm
|
|
||||||
|
|
||||||
This is a pre-compiled version, the source RPM is on its
|
|
||||||
was as I write (3rd Feb 1997).
|
|
||||||
|
|
||||||
1.16) While trying to compile a development version under Linux, compilation
|
|
||||||
fails with a message like:
|
|
||||||
In file included from /usr/include/sys/sem.h:8,
|
|
||||||
from ipc.c:37:
|
|
||||||
/usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
|
|
||||||
....
|
|
||||||
make: *** [ipc.o] Error 1
|
|
||||||
|
|
||||||
The problem is that Linux provides no prototypes for these
|
|
||||||
inline functions. The solution is to go into the
|
|
||||||
.../src/backend/storage/ipc directory and edit the Makefile.
|
|
||||||
Change the line
|
|
||||||
CFLAGS+=$(INCLUDE_OPT)
|
|
||||||
to
|
|
||||||
CFLAGS+=$(INCLUDE_OPT) -Wno-error
|
|
||||||
|
|
||||||
Do the same in the ../src/backend/storage/lmgr directory.
|
|
||||||
|
|
||||||
1.17) When compiling postgres, gcc reports signal 11 and aborts.
|
|
||||||
More specifically:
|
|
||||||
gcc: Internal compiler error: program cc1 got fatal
|
|
||||||
signal 11
|
|
||||||
|
|
||||||
This may be a hardware/memory problem. PortgreSQL is a big
|
|
||||||
program, and large gcc compilations (such as building
|
|
||||||
PostgreSQL or bebuilding the kernel) stress memory like
|
|
||||||
few other programs, resulting in errors that do not occur
|
|
||||||
in normal operation. Lesser operating systems are also
|
|
||||||
unlikely to stress the hardware to this degree so you
|
|
||||||
may never see any problems under DOS/Windows.
|
|
||||||
|
|
||||||
More information on this problem at:
|
|
||||||
http://www.bitwizard.nl/sig11
|
|
||||||
|
|
||||||
From this Sig11 FAQ, there appears to be a specific problem
|
|
||||||
with Redhat 5.0 gcc running on Cyrix processors. See the
|
|
||||||
URL above for more details!
|
|
||||||
|
|
||||||
1.18) Can I install 6.1.1 under MkLinux?
|
|
||||||
|
|
||||||
Tatsuo Ishii <t-ishii@sra.co.jp> has done this under
|
|
||||||
MkLinux DR2.1 update2 after a small patch available from:
|
|
||||||
ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz
|
|
||||||
|
|
||||||
1.19) Why does make exit or crash?
|
|
||||||
|
|
||||||
There have been a couple of reports of gmake either just
|
|
||||||
exiting early or seg faulting. The latter problem was reported
|
|
||||||
with gmake 3.74 - upgrading to 3.76.1 solved the problem.
|
|
||||||
However, 3.74 is known to work fine in other people's setups.
|
|
||||||
In short, try upgrading gmake to the latest version you can
|
|
||||||
find before reporting this as a problem
|
|
||||||
|
|
||||||
1.20) How can I optimise for 486 or pentium processors
|
|
||||||
|
|
||||||
The default compiler flags perform no optimisation for 486
|
|
||||||
or Pentium processors. To add such optimisation, edit
|
|
||||||
Makefile.custom and add:
|
|
||||||
|
|
||||||
CFLAGS+= -m486
|
|
||||||
|
|
||||||
or (for the new compilers that most people are not yet running)
|
|
||||||
|
|
||||||
CFLAGS+= -mpentium
|
|
||||||
or
|
|
||||||
CFLAGS+= -mpentiumpro
|
|
||||||
|
|
||||||
1.21) Why do I get strange results with printing times (for example
|
|
||||||
in the regression test 'timespan')?
|
|
||||||
The times are appearing as: '4 hours 59 mins 60.00 secs'
|
|
||||||
instead of '5 hours'
|
|
||||||
|
|
||||||
This is a problem with the glibc2 library which comes with
|
|
||||||
Redhat 5.0. Update your glibc to the latest RedHat version
|
|
||||||
for v5.0/hurricane. Anything prior to glibc-2.0.7 is likely
|
|
||||||
to have the problem.
|
|
||||||
|
|
||||||
1.22) Why don't I get any shared libraries for libpq when I compile
|
|
||||||
6.3.2?
|
|
||||||
|
|
||||||
There was some last minute breakage of the Linux configuration for
|
|
||||||
v6.3.2. Look in ftp://postgresql.org/pub/patches/ for a few fix-ups,
|
|
||||||
including a linux_elf patch.
|
|
||||||
|
|
||||||
1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
|
|
||||||
and F_BYTEAIN being undeclared?
|
|
||||||
|
|
||||||
The actual messages are something like:
|
|
||||||
|
|
||||||
-I/usr/include/readline -O2 -Wall -Wmissing-prototypes -I..
|
|
||||||
-Wno-error -c bootstrap.c -o bootstrap.o
|
|
||||||
bootstrap.c:160: `F_BOOLIN' undeclared here (not in a function)
|
|
||||||
bootstrap.c:160: initializer element for `Procid[0].inproc' is not
|
|
||||||
constant
|
|
||||||
bootstrap.c:160: `F_BOOLOUT' undeclared here (not in a function)
|
|
||||||
bootstrap.c:160: initializer element for `Procid[0].outproc' is not
|
|
||||||
constant
|
|
||||||
bootstrap.c:161: `F_BYTEAIN' undeclared here (not in a function)
|
|
||||||
bootstrap.c:161: initializer element for `Procid[1].inproc' is not
|
|
||||||
constant
|
|
||||||
|
|
||||||
This is tricky unless you know why it happens, as these constants
|
|
||||||
don't seem to be defined anywhere.
|
|
||||||
|
|
||||||
The solution is to make sure that cpp is included in your path
|
|
||||||
before you start the make.
|
|
||||||
|
|
||||||
On Redhat 5.1, cpp is in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 2: Compiling accessory programs
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
2.1) The linker fails to find libX11 when compiling pgtclsh
|
|
||||||
|
|
||||||
Add the following to src/Makefile.custom
|
|
||||||
X11_LIBDIR = /usr/X11R6/lib
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 3: Runtime Problems
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
|
|
||||||
running scripts like createuser
|
|
||||||
|
|
||||||
This is a bug in V1.06-V1.07 of Postgres and is fixed in V1.08
|
|
||||||
and above.
|
|
||||||
|
|
||||||
3.2) I run postmaster and after that system says 'Bad system call(Core
|
|
||||||
dumped)'
|
|
||||||
|
|
||||||
This indicates that you have not compiled shared memory support
|
|
||||||
into your kernel. You need to recompile the Linux kernel to add this
|
|
||||||
feature.
|
|
||||||
|
|
||||||
|
|
||||||
3.3) When I try to start the Postmaster, why do I get an error of the form
|
|
||||||
Failed Assertion("!(file != 0):(null)", File:
|
|
||||||
"/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
|
|
||||||
!(file != 0) (0)
|
|
||||||
initdb: could not create template database
|
|
||||||
initdb: cleaning up.
|
|
||||||
|
|
||||||
Your permissions on the file /dev/null are wrong.
|
|
||||||
|
|
||||||
ls -l /dev/null should give you something like:
|
|
||||||
|
|
||||||
crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null
|
|
||||||
|
|
||||||
Correct the permissions using:
|
|
||||||
|
|
||||||
chmod a+rw /dev/null
|
|
||||||
|
|
||||||
3.4) Why doesn't createuser work?
|
|
||||||
|
|
||||||
There is a problem with Version 2.5.3 of GNU flex and createuser.
|
|
||||||
Your options are to downgrade flex to V2.5.2, upgrade to V2.5.4
|
|
||||||
or apply a patch to V2.5.3 which is supplied in doc/README.flex
|
|
||||||
You may obtain V2.5.4 from
|
|
||||||
ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz
|
|
||||||
|
|
||||||
3.5) Why do I get an error like:
|
|
||||||
IpcMemoryCreate: memKey=155356396 , size=760632 ,
|
|
||||||
permission=384IpcMemoryCreate: shmget(..., create, ...)
|
|
||||||
failed: Invalid argument
|
|
||||||
|
|
||||||
You haven't build IPC support into your Linux kernel. You
|
|
||||||
will have to rebuild the kernel and switch on this option.
|
|
||||||
|
|
||||||
3.6) Why does psql fail with:
|
|
||||||
psql: can't load library 'libpq.so.1'
|
|
||||||
|
|
||||||
Psql has been compiled to link dynamically with the libpq
|
|
||||||
library.
|
|
||||||
|
|
||||||
To solve this, you should log in as root and edit the file
|
|
||||||
/etc/ld.so.conf
|
|
||||||
Add a single line at the end which gives the name of the
|
|
||||||
PostgreSQL library directory (the lib subdirectory of your
|
|
||||||
PostgreSQL installation) and run
|
|
||||||
/sbin/ldconfig -v
|
|
||||||
|
|
||||||
Alternatively, (and if you don't have root access), you may
|
|
||||||
use the LD_LIBRARY_PATH environment variable.
|
|
||||||
|
|
||||||
The LD_LIBRARY_PATH variable contains a colon separated list of
|
|
||||||
paths to be searched for shared libraries. This list is
|
|
||||||
searched before the libraries specified by ldconfig.
|
|
||||||
|
|
||||||
Therefore under Bash, you would do something like:
|
|
||||||
export LD_LIBRARY_PATH='PathToPGSQL'/lib
|
|
||||||
or, using tcsh
|
|
||||||
setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib
|
|
||||||
replacing 'PathToPGSQL' with the appropriate path to your top level
|
|
||||||
PostgreSQL directory
|
|
||||||
|
|
||||||
Note that the ldd command can be used on a dynamically linked
|
|
||||||
executable to list the paths to all the shared libraries upon
|
|
||||||
which the executable depends.
|
|
||||||
|
|
||||||
|
|
||||||
3.7) Other strange behaviour
|
|
||||||
|
|
||||||
I'm not sure what the symptoms might be except for nothing
|
|
||||||
working properly, but it has been pointed out that one needs
|
|
||||||
to be careful that the dynamic loader loads the correct version
|
|
||||||
of the libpq library. If you have old versions lying around
|
|
||||||
in your library path (for example in /usr/lib) these may get
|
|
||||||
loaded instead of the new version you intended to load. Make
|
|
||||||
sure you get them out of the way and look at Q3.6 for
|
|
||||||
details of loading libraries.
|
|
||||||
|
|
||||||
3.8) When PostgreSQL is running when the system is shutdown, Linux
|
|
||||||
always fsck's the disk when rebooted.
|
|
||||||
|
|
||||||
There have been some reports of this happening and it seems
|
|
||||||
to be a result of running PostgreSQL from /etc/inittab as
|
|
||||||
suggested in the INSTALL document.
|
|
||||||
|
|
||||||
You are therefore recommended to start the postmaster from an
|
|
||||||
rc script. Under a Slackware-like release, you would modify
|
|
||||||
/etc/rc.d/rc.local to start the postmaster. Under a RedHat-like
|
|
||||||
release you should create a SysV style script in
|
|
||||||
/etc/rc.d/rc3.d based on the /etc/rc.d/init.d skeleton file.
|
|
||||||
|
|
||||||
There's a sample file in contrib/linux/postgres.init
|
|
||||||
|
|
||||||
Here's another sample file supplied by John Robinson
|
|
||||||
<john@intelligent.co.uk> which you should modify as needed:
|
|
||||||
|
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# postgreSQL.init This shell script takes care of starting and stopping
|
|
||||||
# the PostgreSQL postmaster.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Source function library.
|
|
||||||
. /etc/rc.d/init.d/functions
|
|
||||||
|
|
||||||
# Source networking configuration.
|
|
||||||
. /etc/sysconfig/network
|
|
||||||
|
|
||||||
# Check that networking is up.
|
|
||||||
[ ${NETWORKING} = "no" ] && exit 0
|
|
||||||
|
|
||||||
# See how we were called.
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
# Start daemons.
|
|
||||||
echo -n "Starting postgres Postmaster daemon:"
|
|
||||||
if [ -z "`pidofproc postmaster`" ]
|
|
||||||
then
|
|
||||||
su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgreSQL/data -p 5432 &"
|
|
||||||
echo -n " postmaster"
|
|
||||||
else
|
|
||||||
echo -n " (already running)"
|
|
||||||
fi
|
|
||||||
echo
|
|
||||||
touch /var/lock/subsys/postgres
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
# Stop daemons.
|
|
||||||
echo -n "Shutting down postgres Postmaster daemon: "
|
|
||||||
killall -TERM postmaster 2>/dev/null
|
|
||||||
killall -TERM postgres 2>/dev/null
|
|
||||||
echo
|
|
||||||
rm -f /var/lock/subsys/postgres
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: postgres {start|stop}"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3.9) Why does Query 32 in the regression tests take so long?
|
|
||||||
|
|
||||||
This is due to a bug in regression scripts which only happens
|
|
||||||
on linux boxes. There are two workarounds as far as I know
|
|
||||||
(information from Tatsuo Ishii <t-ishii@sra.co.jp>):
|
|
||||||
|
|
||||||
1. change following in regress.sh:
|
|
||||||
time postgres -texecutor -tplanner -Q bench < bench.sql
|
|
||||||
to:
|
|
||||||
postgres -texecutor -tplanner -Q bench < bench.sql
|
|
||||||
|
|
||||||
2. after running the test, remove a line at the very end of
|
|
||||||
bench.out something like:
|
|
||||||
85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k
|
|
||||||
then type:
|
|
||||||
sh ./perquery < bench.out > & bench.out.perquery
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3.10) Why do I get funny rounding results in some date/time arithmetic,
|
|
||||||
such as
|
|
||||||
select '4 hours'::timespan;
|
|
||||||
returning '3 hours 59 minutes 60 seconds'?
|
|
||||||
|
|
||||||
You are running the new glibc2 libraries and have a version earlier than
|
|
||||||
2.0.7. It is a math rounding problem in the library. Upgrade your library.
|
|
||||||
----------------------------------------------------------------------------
|
|
||||||
Dr. Andrew C.R. Martin University College London
|
|
||||||
EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) andrew@stagleys.demon.co.uk
|
|
||||||
URL: http://www.biochem.ucl.ac.uk/~martin
|
|
||||||
Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775
|
|
||||||
</PRE>
|
|
@ -1,168 +0,0 @@
|
|||||||
<PRE>
|
|
||||||
=======================================================
|
|
||||||
Frequently Asked Questions (FAQ) for PostgreSQL V6.5
|
|
||||||
Sun Solaris Specific
|
|
||||||
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
|
||||||
=======================================================
|
|
||||||
last updated: Thu Sep 21 9:30:00 CET 1999
|
|
||||||
|
|
||||||
current maintainer: Marc Liyanage (liyanage@access.ch)
|
|
||||||
original author: Marc Liyanage (liyanage@access.ch)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Contents:
|
|
||||||
|
|
||||||
1.1) What tools do I need to build and install PostgreSQL on Solaris?
|
|
||||||
1.2) What else do I have to do before building PostgreSQL?
|
|
||||||
1.3) Why am I getting "IpcMemoryCreate" errors when I try
|
|
||||||
to run postmaster?
|
|
||||||
1.4) Why am I getting "Can't tell what username to use" errors
|
|
||||||
when I try to run initdb?
|
|
||||||
|
|
||||||
A) Contributors
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
|
|
||||||
- The commands given here are for the bash shell. If you use
|
|
||||||
a different shell, you'll have to change the commands accordingly,
|
|
||||||
especially these regarding environment variables.
|
|
||||||
|
|
||||||
- These instructions are written for Solaris 2.6
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section 1: Building and Installing PostgreSQL
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
1.1) What tools do I need to build and install PostgreSQL on Solaris?
|
|
||||||
|
|
||||||
You will need
|
|
||||||
|
|
||||||
- GNU flex 2.5.4 or better (the lex included in Solaris 2.6 won't work)
|
|
||||||
- GNU bison (the yacc included in Solaris 2.6 won't work)
|
|
||||||
- GNU zip (gzip and especially zcat for installing the docs)
|
|
||||||
- GNU make
|
|
||||||
- GNU readline library
|
|
||||||
|
|
||||||
We also used
|
|
||||||
|
|
||||||
- GNU cc (gcc 2.8.1)
|
|
||||||
|
|
||||||
If you like Solaris packages, you can find these tools here:
|
|
||||||
http://www.sunfreeware.com
|
|
||||||
|
|
||||||
If you prefer sources, look here:
|
|
||||||
http://www.gnu.org/order/ftp.html
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.2) What else do I have to do before building PostgreSQL?
|
|
||||||
|
|
||||||
Shared libraries
|
|
||||||
----------------
|
|
||||||
|
|
||||||
The default installation procedure puts the shared libraries
|
|
||||||
into "/usr/local/pgsql/lib", but the dynamic loader won't
|
|
||||||
find them there at runtime unless you use some hack like
|
|
||||||
symlinking the libraries in /usr/lib or setting LD_LIBRARY_PATH
|
|
||||||
for every user that will use the DB system.
|
|
||||||
|
|
||||||
The first time you'll encounter this problem is usually when
|
|
||||||
running "initdb". It will fail with something like
|
|
||||||
|
|
||||||
ld.so.1: pg_id: fatal: libpq.so: open failed: No such file or directory
|
|
||||||
|
|
||||||
We recommend that you store the path of the directory containing
|
|
||||||
the libraries in the environment variable LD_RUN_PATH *before*
|
|
||||||
starting the build. This will cause the linker to store this
|
|
||||||
path in the binaries.
|
|
||||||
|
|
||||||
Do this:
|
|
||||||
|
|
||||||
# export LD_RUN_PATH=/usr/local/pgsql/lib
|
|
||||||
|
|
||||||
(or wherever you choose to put the libraries)
|
|
||||||
|
|
||||||
There is some good information about this here:
|
|
||||||
http://www.visi.com/~barr/ldpath.html
|
|
||||||
|
|
||||||
|
|
||||||
zcat
|
|
||||||
----
|
|
||||||
|
|
||||||
If
|
|
||||||
|
|
||||||
- both the original solaris zcat as well as the recommended
|
|
||||||
GNU zcat are installed on the system (e.g. the former in /usr/bin and
|
|
||||||
the latter in /usr/local/bin) and
|
|
||||||
- configure (or "which zcat") finds the wrong one
|
|
||||||
|
|
||||||
then configure needs to be told where GNU zcat can be found.
|
|
||||||
|
|
||||||
Failure to do so will cause configure to select the wrong one
|
|
||||||
and the "gmake install" command in the "doc" subdirectory
|
|
||||||
(step 12 in the INSTALL file) will fail because Solaris
|
|
||||||
zcat cannot handle the .gz compressed documentation files.
|
|
||||||
|
|
||||||
To fix this, type
|
|
||||||
|
|
||||||
# export GZCAT=/usr/local/bin/zcat
|
|
||||||
|
|
||||||
(or wherever your GNU zcat lives)
|
|
||||||
|
|
||||||
before running configure.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.3) Why am I getting "IpcMemoryCreate" errors when I try
|
|
||||||
to run the postmaster?
|
|
||||||
|
|
||||||
(See also 3.4 in the main FAQ file)
|
|
||||||
|
|
||||||
Under Solaris 2.6 and probably others, the default shared memory
|
|
||||||
maximum segment size kernel parameter is set too low. The solution
|
|
||||||
is to put something like the following line into /etc/system and
|
|
||||||
reboot the system.
|
|
||||||
|
|
||||||
set shmsys:shminfo_shmmax=0x7fffffff
|
|
||||||
|
|
||||||
Excellent info regarding shared memory under Solaris can be found here:
|
|
||||||
http://www.sunworld.com/swol-09-1997/swol-09-insidesolaris.html
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.4) Why am I getting "Can't tell what username to use" errors
|
|
||||||
when I try to run initdb?
|
|
||||||
|
|
||||||
Put something like this into the .bash_profile startup script
|
|
||||||
of the postgres user (see also step 17 in the INSTALL file):
|
|
||||||
|
|
||||||
export USER=postgres
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
Section A: Contributors
|
|
||||||
----------------------------------------------------------------------
|
|
||||||
|
|
||||||
- Jose Luis Rodriguez Garcia
|
|
||||||
Suggested to change the shmmax parameter in 1.3 from 0xffffffff to 0x7fffffff
|
|
||||||
because the value is a signed integer in Solaris versions prior to 2.6.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</PRE>
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user