mirror of https://github.com/postgres/postgres
parent
264d4259b9
commit
7e2c430b1e
File diff suppressed because it is too large
Load Diff
@ -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,0 +1,695 @@ |
||||
|
||||
======================================================= |
||||
Frequently Asked Questions (FAQ) per PostgreSQL >= V6.1 |
||||
Specifiche per Linux Os |
||||
DA LEGGERE IN CONGIUNZIONE CON LE NORMALI FAQ |
||||
======================================================= |
||||
Ultimo aggiornamento: Lunedi' 18 Maggio 11:17:00 GMT 1998 |
||||
|
||||
Curatore corrente: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) |
||||
Autore originale: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) |
||||
Traduzione FAQ in italiano: Daniele Medri 'MaDriD' (madrid@darshan.org) |
||||
|
||||
Cambiamenti in questa versione (* = modificato, + = nuovo, - = rimosso): |
||||
|
||||
+1.21) Perche' ricevo strani risultati con i tempi di stampa (per esempio |
||||
nel test di regressione 'timespan'? |
||||
Questo file è diviso approsimativamente nel sequente modo: |
||||
1.*) Istallare PostgreSQL |
||||
2.*) Compilare programmi accessori |
||||
3.*) Problemi di esecuzione |
||||
|
||||
|
||||
Domande risposte: |
||||
1.1) Quali cambiamenti devo fare a src/Makefile.global o a src/Makefile.cust |
||||
om |
||||
e ci sono altri cambiamenti necessari? |
||||
1.2) Perche' ricevo problemi con missing libreadline? |
||||
1.3) [REDHAT] Perche' ricevo problemi di libdl e dlfcn.h perse? |
||||
1.4) [SLACKWARE 3.1] Perche' ricevo problemi di libdl e dlfcn.h perse? |
||||
1.5) La mia compilazione si arresta segnalando la mancanza dell'include file |
||||
dlfcn.h perso. |
||||
1.6) GCC reclama una ignorata opzione -fpic |
||||
1.7) Ricevo messaggi di warning (errore) del tipo |
||||
warning: cast from pointer to integer of different size |
||||
1.8) [SuSE-Linux 4.2-4.4] Dove sono curses e termcap? |
||||
1.9) Perche' ho problemi con ld.so? |
||||
1.10) Perche' ricevo errori del tipo `yy_flush_buffer undefined'? |
||||
1.11) Come posso compilare PostgreSQL su un sistema a.out? |
||||
1.12) Che cosa fallisce con: |
||||
yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y |
||||
make: /usr/bin/make: cannot execute binary file |
||||
1.13) Quali sono i riferimenti in X11_LIB a libsocket e libnsl in |
||||
src/Makefile.global? |
||||
1.14) [DEBIAN] Dov'e' libtermcap? |
||||
1.15) [REDHAT] Posso trovare PostgreSQL come RPM? |
||||
1.16) Quando tento di compilare una versione in sviluppo sotto Linux, la |
||||
compilazione fallisce con il seguente messaggio: |
||||
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_bi |
||||
t' |
||||
.... |
||||
make: *** [ipc.o] Error 1 |
||||
1.17) Quando sto' compilando postgres, gcc riporta un signal 11 e si interrom |
||||
pe. |
||||
1.18) Posso installare 6.1.1 su MkLinux? |
||||
1.19) Perche' esce o va in crash? |
||||
1.20) Come posso ottimizzarlo per un 486 o un processore pentium |
||||
1.21) Perche' ricevo strani risultati con i tempi di stampa (per esempio |
||||
nel test di regressione 'timespan'? |
||||
2.1) Il linker non trova libX11 quando sta' compilando pgtclsh |
||||
3.1) Ricevo un messaggio tipo _fUnKy_POSTPORT_sTuFf_ non definito quando |
||||
lancio uno script come createuser |
||||
3.2) Lancio postmaster e dopo il sistema dice 'Bad system call(Core |
||||
dumped)' |
||||
3.3) Quando tento di lanciare Postmaster, perche' ricevo un errore del tipo |
||||
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) Perche' createuser non funziona? |
||||
3.5) Perche' ricevo un errore del tipo: |
||||
IpcMemoryCreate: memKey=155356396 , size=760632 , |
||||
permission=384IpcMemoryCreate: shmget(..., create, ...) |
||||
failed: Invalid argument |
||||
3.6) Perche' psql fallisce con: |
||||
psql: can't load library 'libpq.so.1' |
||||
3.7) Altri comportamenti strani |
||||
3.8) Quando PostgreSQL e' attivo allo shutdown di sistema, Linux |
||||
esegue al reboot un fsck al disco. |
||||
3.9) Perche' la Query 32 nel test di regressione pretende molto tempo? |
||||
3.10) Perche' ricevo dei risultati arrotondati su date/time aritmetici, |
||||
come |
||||
select '4 hours'::timespan; |
||||
returning '3 hours 59 minutes 60 seconds'? |
||||
|
||||
---------------------------------------------------------------------- |
||||
Sezione 1: Compilare PostgreSQL |
||||
---------------------------------------------------------------------- |
||||
|
||||
1.1) Quali cambiamenti devo fare a src/Makefile.global o a |
||||
src/Makefile.custom e ci sono altri cambiamenti necessari? |
||||
|
||||
I cambiamenti ai makefiles sono piu'facilmente fatti usando |
||||
lo script di shell per la personalizzazione che si trova nella |
||||
directory src che scrive un file Makefile.custom appropriato. |
||||
|
||||
I soli altri cambiamenti che tu devi fare e rimpiazzare Flex se tu |
||||
hai una versione 2.5.3, la quale ha dei bug che si manifestano al |
||||
fallimento di createuser (Vedi domanda 3.4) |
||||
|
||||
Se tu modifichi i makefiles a mano, tu *devi* settare le seguenti |
||||
variabili: |
||||
PORTNAME= linux |
||||
|
||||
Tu devi anche cambiare quello che segue per settare la tua propria |
||||
installazione: |
||||
POSTGRESDIR |
||||
|
||||
Se tu cambi sull'opzione USE_TCL, devi settare questo: |
||||
TCL_INCDIR= |
||||
TCL_LIBDIR= |
||||
TCL_LIB= |
||||
TK_INCDIR= |
||||
TK_LIBDIR= |
||||
TK_LIB= |
||||
X11_INCDIR= |
||||
X11_LIBDIR= |
||||
X11_LIB= |
||||
|
||||
Sul mio sistema Slackware3.0 esse sono: |
||||
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 |
||||
|
||||
Devi fare ogni altro cambiamento necessario come documentato nel |
||||
file INSTALL e in Makefile.global |
||||
|
||||
|
||||
1.2) Perche' ricevo problemi con missing libreadline? |
||||
|
||||
I sistemi Linux in genere non vengono distribuiti con la libreria |
||||
Gnu readline installata. Si può in ogni caso o disattivare l'opzione |
||||
di readline in src/Makefile.global o src/Makefile.custom, oppure |
||||
installare la libreria GNU stessa (readline). |
||||
|
||||
Nota che Linux Debian (come FreeBSD) esce con le readline installate. |
||||
|
||||
1.3) [REDHAT] Perche' ricevo problemi di libdl e dlfcn.h perse?? |
||||
|
||||
Questa manifestazione avvisa che non c'e' la capacita' di linkare |
||||
funzioni come dlopen(), dlclose(), etc. durante l'ultima fase di compil |
||||
azione. |
||||
|
||||
La libreria libdl e' usata per linkare in maniera dinamica le funzioni |
||||
e rendere flessibile l'avvio dell'applicativo. Per alcune ragioni quest |
||||
a |
||||
non era presente nella distribuzione Red Hat. La versione Redhat 4.0 |
||||
(Colgate) a colmato a questa mancanza. |
||||
|
||||
RedHat ha ora una nuova versione di ld.so in formato RPM nei propri sit |
||||
i FTP. |
||||
Scaricate: |
||||
|
||||
ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7. |
||||
14-4.i386.rpm |
||||
|
||||
Installa il file RPM nella maniera usuale e andra'! |
||||
|
||||
ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un |
||||
make clean dopo aver installato la libreria e prima di ricompilare. |
||||
|
||||
C'e' stata una sola notizia di sistema corrotto da programmi che |
||||
accedevano a queste librerie mentre venivano aggiornate (nessun altra |
||||
sorpresa.) Conseguentemente e' una buona idea quella di fare un reboot |
||||
del sistema prima di installare le nuove librerie e avere pochi |
||||
processi attivi durante questo upgrade. Lanciare il sistema in |
||||
modalita' utente singolo (single-user) e' probabilmente una buona idea! |
||||
|
||||
Se tu vuoi fare la strada piu' dura, puoi ottenere la libreria e |
||||
l'header file da: |
||||
|
||||
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz |
||||
|
||||
Alternativamente puoi trovare i file binari precompilati in |
||||
distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb |
||||
nel medesimo sito, o seguire le istruzioni date alla domanda 1.2 per |
||||
correggere lo stesso errore con le aggiornate versioni di Slackware 3.1 |
||||
. |
||||
Non scegliere questo metodo se non sai quello che stai facendo! |
||||
|
||||
|
||||
|
||||
1.4) [SLACKWARE 3.1] Perche' ricevo problemi di libdl e dlfcn.h perse?? |
||||
|
||||
Questa manifestazione avvisa che non c'e' la capacita' di linkare |
||||
funzioni come dlopen(), dlclose(), etc. durante l'ultima fase di compil |
||||
azione. |
||||
Guarda la risposta alla domanda 1.3. Slackware fino alla versione 3.0 |
||||
era provvista di questa libreria e degli include file e ritornarono nel |
||||
l'ultima |
||||
versione 3.1, ma la prima versione della 3.1 (prima del 9 settembre 199 |
||||
6) |
||||
non aveva queste e molte versioni su CD-ROM erano state stampate |
||||
con la prima edizione. |
||||
|
||||
C'e' stata una sola notizia di sistema corrotto da programmi che |
||||
accedevano a queste librerie mentre venivano aggiornate (nessun altra |
||||
sorpresa.) Conseguentemente e' una buona idea quella di fare un reboot |
||||
del sistema prima di installare le nuove librerie e avere pochi |
||||
processi attivi durante questo upgrade. Lanciare il sistema in |
||||
modalita' utente singolo (single-user) e' probabilmente una buona idea! |
||||
|
||||
Per fissare facilmente questo basta ottenere il file ldso.tgz dal quart |
||||
o |
||||
dischetto della piu' recente distribuzione Slackware e scompattarlo da |
||||
dalla directory di root (/) e poi lanciare |
||||
|
||||
sh install/doinst.sh |
||||
|
||||
per completare l'installazione. Successivamente lanciare |
||||
|
||||
ldconfig |
||||
|
||||
ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un |
||||
make clean dopo aver installato la libreria e prima di ricompilare. |
||||
|
||||
Se vuoi installarla manualmente bisogna installare prima il file |
||||
dlfcn.h in /usr/include. |
||||
|
||||
Secondo, installa il file libdl.so.1.7.14 (o qualsiasi altra versione) |
||||
in /lib, e poi fai: |
||||
|
||||
cd /lib |
||||
ln -sf libdl.so.1.7.14 libdl.so.1 |
||||
ln -sf libdl.so.1 libdl.so |
||||
|
||||
Su certi sistemi (a seconda della personale configurazione di GCC) |
||||
e' necessario fare: |
||||
|
||||
cd /usr/lib |
||||
ln -sf /lib/libdl.so . |
||||
|
||||
Finalmente |
||||
|
||||
ldconfig |
||||
|
||||
ATTENZIONE! Devi rilanciare nuovamente il file configure e fare un |
||||
make clean dopo aver installato la libreria e prima di ricompilare. |
||||
|
||||
|
||||
1.5) La mia compilazione si arresta segnalando la mancanza dell'include file |
||||
dlfcn.h perso. |
||||
|
||||
Guarda la risposta 1.3/1.4. Non dimenticare che se stai usando un siste |
||||
ma |
||||
a.out devi prima avere installato il pacchetto dld (il quale non viene |
||||
fornito con molti sistemi a.out) per avere dlfcn.h e gli altri. |
||||
Guarda la domanda 1.11. |
||||
|
||||
|
||||
1.6) GCC reclama una ignorata opzione -fpic |
||||
|
||||
Le prime versioni di GCC accettavano entrambe -fpic o -£PIC. |
||||
Nelle piu' recenti versioni (V2.7.2?) richiede -£PIC. |
||||
Se tu stai usando una versione ELF di Linux, questa puo' per sicurezza |
||||
essere ignorata perche' -£PIC e' di default. |
||||
|
||||
Puoi correggere questa editando il file src/Makefile.global e cambiare |
||||
CFLAGS_SL |
||||
|
||||
|
||||
1.7) Ricevo messaggi di warning (errore) del tipo |
||||
warning: cast from pointer to integer of different size |
||||
|
||||
Questi appararivano nelle prime versione di Postgres95 e posso per sicu |
||||
rezza |
||||
essere ignorate. PostgreSQL V6.0 dovrebbe compilare senza warnings |
||||
ad eccezione di quelli relativi agli header file di sistema (i quali po |
||||
ssono |
||||
essere ignorati per sicurezza). |
||||
|
||||
1.8) [SuSE-Linux 4.2-4.4] Dove sono curses e termcap? |
||||
|
||||
SuSE-Linux 4.2 ha le ncurses ma non le curses. 4.4 ha entrambe. |
||||
SuSE-Linux ha anche le librerie termcap in /usr/lib/termcap |
||||
invece di essere in /usr/lib. |
||||
|
||||
PostgreSQL (fino alla V6.0) |
||||
----------------------- |
||||
Setta il valore delle CURSES_LIB in src/Makefile.custom a -lncurses |
||||
(o fai questo attraverso lo script di personalizzazione). |
||||
Aggiundi la seguente riga al file src/Makefile.custom: |
||||
|
||||
LDADD_BE+= -L/usr/lib/termcap |
||||
|
||||
Devi editare il file src/bin/psql/Makefile e cambiare: |
||||
ifeq ($(PORTNAME), linux) |
||||
LD_ADD+= |
||||
con: |
||||
ifeq ($(PORTNAME), linux) |
||||
LD_ADD+= -ltermcap |
||||
|
||||
PostgreSQL (V6.1) |
||||
----------------- |
||||
Lo script di configurazone non sa' di cercare nella directory |
||||
/usr/lib/termcap per le librerie termcap, percio' tu devi specificare |
||||
questo come una delle directory delle librerie dove cercare. |
||||
|
||||
Se non funziona (non ho SuSE per verificare che vada) |
||||
allora lancia configure, edita src/Makefile.global e aggiungi |
||||
-ltermcap alla linea LDFLAGS |
||||
(dopo -lreadline). (Alternativamente poi configurare |
||||
src/Makefile.custom prima di lanciare configure.) |
||||
|
||||
Alcune versioni di SuSE forniscono solo ncurses, percio' tu devi |
||||
forzare l'uso delle ncurses piuttosto che le curses cambiando |
||||
-lcurses con -lncurses. (dimostrato per SuSE 5.1) |
||||
|
||||
|
||||
1.9) Perche' ho problemi con ld.so? |
||||
|
||||
Se tu hai problemi con ld.so, un altra libreria richiesta sotto ELF |
||||
per il caricamento dinamico, allora hai creato disordine con la tua |
||||
installazione o fatto un upgrade di Linux. |
||||
|
||||
Guarda le risposte alle domande 1.3/1.4. Devi installare ld.so.x.y.z in |
||||
/lib e lanciare ldconfig. |
||||
|
||||
La piu' recente vesione stabile del pacchetto ld eì 1.7.14 |
||||
Mentre scrivo, la versione 1.8.x di ld e' sperimentale. |
||||
|
||||
1.10) Perche' ricevo errori del tipo `yy_flush_buffer undefined'? |
||||
|
||||
Questo non e' specifico per Linux, ma e' comune nelle vecchie istallazi |
||||
one |
||||
di Linux. Devi avere una versione recente di Flex (2.5.2 o superiore) |
||||
per compilare PostgreSQL. Nota che Flex 2.5.3 ha dei bug: guarda la |
||||
domanda 3.4. |
||||
|
||||
1.11) Come posso compilare PostgreSQL su un sistema a.out? |
||||
|
||||
Prima, devi installare la libreria dld. Puoi ottenere questa da Sunsite |
||||
come: |
||||
Linux/libs/dld.3.2.7.tar.gz |
||||
(ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz) |
||||
|
||||
Secondo, aggiungi la seguente linea al file src/Makefile.custom: |
||||
LINUX_ELF= |
||||
(o usa lo script di configurazione) |
||||
|
||||
1.12) Che cosa fallisce con: |
||||
yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y |
||||
make: /usr/bin/make: cannot execute binary file |
||||
|
||||
Questo e' un problema delle prime versioni di Postgres95. Il default |
||||
per PostgreSQL e' di usare bison -y piuttosto che yacc. |
||||
|
||||
yacc e' generalmente implementato come script che invoca bison -y |
||||
Per alcune ragioni (certe versioni di make? certe versioni di bash?) |
||||
make non puo' eseguire questo file di script. |
||||
|
||||
Per correggere questo, edita semplicemente src/mk/port/postgres.mk.linu |
||||
x |
||||
e alla fine del file cambia: |
||||
# YACC = bison -y |
||||
con |
||||
YACC = bison -y |
||||
|
||||
1.13) Quali sono i riferimenti in X11_LIB a libsocket e libnsl in |
||||
src/Makefile.global? |
||||
|
||||
Questo era un problema nella versione 1.08 (specifica per Sun Solaris) |
||||
E' stata fissata nella 1.09 e 6.0 |
||||
|
||||
1.14) [DEBIAN] Dov'e' libtermcap? |
||||
|
||||
Debian Linux viene distribuita senza librerie termcap e usa ncurses |
||||
(le quali usano terminfo all'interno). Non c'e' bisogno di cambiare la |
||||
variabile CURSES_LIB in src/bin/psql/Makefile peche' Debian provvede |
||||
con un link da libncurses a libcurses (diversamente da SuSE-Linux -- |
||||
Vedi domanda 1.8). |
||||
|
||||
Devi editare src/bin/psql/Makefile e commentare i cambiamenti: |
||||
ifeq ($(PORTNAME), linux) |
||||
LD_ADD+= -ltermcap |
||||
con: |
||||
ifeq ($(PORTNAME), linux) |
||||
LD_ADD+= |
||||
|
||||
|
||||
1.15) [REDHAT] Posso trovare PostgreSQL come RPM? |
||||
|
||||
Si! Michal Mosiewicz |
||||
(http://www.pdi.lodz.pl/~mimo) ha creato un RPM |
||||
per PostgreSQL V6.0 per architettura Intel uplodata a |
||||
ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm |
||||
|
||||
Questa e' una precompilata versione, le sorgenti RPM erano come |
||||
io ho scritto (3 Febbraio 1997). |
||||
|
||||
1.16) Quando tento di compilare una versione in sviluppo sotto Linux, la |
||||
compilazione fallisce con il seguente messaggio: |
||||
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_bi |
||||
t' |
||||
.... |
||||
make: *** [ipc.o] Error 1 |
||||
|
||||
Il problema e' che Linux non prevede prototipi per queste funzioni inli |
||||
ne. |
||||
La soluzione e' di andare dentro la directory .../src/backend/storage/i |
||||
pc |
||||
ed editare Makefile. |
||||
Cambia la linea |
||||
CFLAGS+=$(INCLUDE_OPT) |
||||
con |
||||
CFLAGS+=$(INCLUDE_OPT) -Wno-error |
||||
|
||||
Fai lo stesso con la directory ../src/backend/storage/lmgr. |
||||
|
||||
1.17) Quando sto' compilando postgres, gcc riporta un signal 11 e si interrom |
||||
pe. |
||||
Piu' specificatamente: |
||||
gcc: Internal compiler error: program cc1 got fatal |
||||
signal 11 |
||||
|
||||
Questo e' un problema di hardware/memoria. PostgreSQL e' un grande |
||||
programma, e una larga compilazione con gcc (come la compilazione |
||||
di PostgreSQL o la compilazione del kernel) stressa la memoria come |
||||
molti altri programmi, mostrando errori che non appaiono nelle normali |
||||
operazioni. Sistemi operativi inferiori non riescono a stressare l'hard |
||||
ware |
||||
in questo modo, per questo non vedrai mai questi errori sotto DOS/Windo |
||||
ws. |
||||
|
||||
Maggiori informazioni in merito: |
||||
http://www.bitwizard.nl/sig11 |
||||
|
||||
Da questo Sig11 FAQ, sembra essere un errore specifico con Redhat 5.0 |
||||
lanciando su un processore Cyrix. Guarda il link superiore per i dettag |
||||
li! |
||||
|
||||
1.18) Posso installare 6.1.1 su MkLinux? |
||||
|
||||
Tatsuo Ishii ha fatto questo su MkLinux DR2.1 update2 dopo una piccola |
||||
patch disponibile presso: |
||||
ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz |
||||
|
||||
1.19) Perche' esce o va in crash?? |
||||
|
||||
Ci sono state diverse segnalazioni di gmake, dove in tutte si usciva |
||||
subito e c'era una seg faulting. Il problema piu' marcato e' stato |
||||
riportato con gmake 3.74 - upgradandolo alla 3.76.1 si e' risolto. |
||||
Comunque, la versione 3.74 e' funzionante per altri tipi di setup. |
||||
In breve, prova ad upgradare gmake all'ultima versione che puoi trovare |
||||
prima di riportarlo come un problema. |
||||
|
||||
1.20) Come posso ottimizzarlo per un 486 o un processore pentium |
||||
|
||||
Le flags di compilazione per default non permettono l'optimizzazione pe |
||||
r 486 |
||||
o per processori Pentium. Per aggiungerla come ottimizzazione, edita |
||||
Makefile.custom e aggiungi: |
||||
|
||||
CFLAGS+= -m486 |
||||
|
||||
o (per i nuovi compilatori che molte persone non stanno usando) |
||||
|
||||
CFLAGS+= -mpentium |
||||
o |
||||
CFLAGS+= -mpentiumpro |
||||
|
||||
1.21) Perche' ricevo strani risultati con i tempi di stampa (per esempio |
||||
nel test di regressione 'timespan'? |
||||
Le ore appaiono come: '4 hours 59 mins 60.00 secs' |
||||
invece di '5 hours' |
||||
|
||||
Questo e' un problema con le librerie glibc2 le quali appaiono con |
||||
RedHat 5.0. Aggiorna le tue glibc con le ultime versioni di RedHat per |
||||
v5.0/hurricane. Tutto quello che e' anteriore alle glibc-2.0.7 ha |
||||
questi problemi. |
||||
|
||||
---------------------------------------------------------------------- |
||||
Sezione 2: Compilare programmi accessori |
||||
---------------------------------------------------------------------- |
||||
|
||||
2.1) Il linker non trova libX11 quando sta' compilando pgtclsh |
||||
|
||||
Aggiungi la seguente riga al file src/Makefile.custom |
||||
X11_LIBDIR = /usr/X11R6/lib |
||||
|
||||
|
||||
---------------------------------------------------------------------- |
||||
Sezione 3: Problemi di esecuzione |
||||
---------------------------------------------------------------------- |
||||
|
||||
3.1) Ricevo un messaggio tipo _fUnKy_POSTPORT_sTuFf_ non definito quando |
||||
lancio uno script come createuser |
||||
|
||||
Questo e' un bug nella V.1.06-V1.07 di Postgres ed e' fissata con la ve |
||||
rsione |
||||
1.08 o superiore. |
||||
|
||||
3.2) Lancio postmaster e dopo il sistema dice 'Bad system call(Core |
||||
dumped)' |
||||
|
||||
Questo indica che non hai compilato il supporto per la memoria condivis |
||||
a nel |
||||
kernel. Devi ricompilare il kernel per aggiungere questa feature. |
||||
|
||||
3.3) Quando tento di lanciare Postmaster, perche' ricevo un errore del tipo |
||||
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. |
||||
|
||||
I permessi sul file /dev/null sono sbagliati. |
||||
|
||||
ls -l /dev/null should give you something like: |
||||
|
||||
crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null |
||||
|
||||
Correggi i permessi con: |
||||
|
||||
chmod a+rw /dev/null |
||||
|
||||
3.4) Perche' createuser non funziona? |
||||
|
||||
C'e' un problema con la versione 2.5.3 di GNU Flex e createuser. |
||||
Le tue opzioni devono recedere a Flex V2.5.2, aggiornale alla V2.5.4 o |
||||
applica una patch alla V2.5.3 la quale e' fornita in doc/README.flex |
||||
Puoi ottenere la V.2.5.4 da: |
||||
ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz |
||||
|
||||
3.5) Perche' ricevo un errore del tipo: |
||||
IpcMemoryCreate: memKey=155356396 , size=760632 , |
||||
permission=384IpcMemoryCreate: shmget(..., create, ...) |
||||
failed: Invalid argument |
||||
|
||||
Non hai compilato il supporto IPC nel kernel di Linux. |
||||
Devi ricompilare il kernel con questa opzione. |
||||
|
||||
3.6) Perche' psql fallisce con: |
||||
psql: can't load library 'libpq.so.1' |
||||
|
||||
Psql e' stata compilata per linkarsi dinamicamente con la libreria libp |
||||
q. |
||||
|
||||
Per risolvere questo, devi accedere come root ed editare il file |
||||
/etc/ld.so.conf |
||||
Aggiungi una linea singola alla fine, la quale prende il nome della dir |
||||
ectory |
||||
delle librerie di PostgreSQL (la sottodirectory delle librerie |
||||
dell'installazione diPostgreSQL) e lancia |
||||
/sbin/ldconfig -v |
||||
|
||||
Alternativamente, (e se tu non hai accesso come root), devi usare la |
||||
variabile di ambiente LD_LIBRARY_PATH. |
||||
|
||||
La variabile LD_LIBRARY_PATH contiene una lista di paths per ricercare |
||||
le librerie |
||||
condivise. Questa lista e' ricercata prima delle librerie specificate d |
||||
a ldconfig. |
||||
|
||||
Percio' sotto Bash, devi fare qualcosa del tipo: |
||||
export LD_LIBRARY_PATH='PathToPGSQL'/lib |
||||
o, usando tcsh |
||||
setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib |
||||
rimpiazzando 'PathToPGSQL' con l'appropriato path alla tua directory Po |
||||
stgreSQL |
||||
al top level. |
||||
Nota che il comando ldd puo' essere eseguito su un programma linkato di |
||||
namicamente |
||||
alla lista di paths a tutte le librerie condivise sopra, alle quali gli |
||||
eseguibili |
||||
dipendono. |
||||
|
||||
|
||||
3.7) Altri comportamenti strani |
||||
|
||||
Non sono sicuro quali siano i sintomi che non permettono la corretta es |
||||
ecuzione, |
||||
ma si puo' ipotizzare che le ragioni vadano oltre il regolare funzionam |
||||
ento del |
||||
loader dinamico nel caricare la corretta versione delle librerie libpq. |
||||
|
||||
Se hai una versione vecchia dai una occhiata al path delle librerie |
||||
(per esempio in /usr/lib) che dovrebbero caricare nelle nuove versioni |
||||
che intendi |
||||
far girare. Renditi sicuro di prendere queste nel percorso e guarda la |
||||
Domanda 3.6 |
||||
per i dettagli in merito al caricamento dinamico delle librerie. |
||||
|
||||
3.8) Quando PostgreSQL e' attivo allo shutdown di sistema, Linux |
||||
esegue al reboot un fsck al disco. |
||||
|
||||
Ci sono state alcune segnalazioni di questo e sembre essere il |
||||
risultato di lanciare PostgreSQL dal /etc/inittab come suggerito |
||||
nel file INSTALL. |
||||
|
||||
Si raccomanda percio' di lanciare il postmaster da un rc script. |
||||
Sotto una versione di tipo Slackware, devi modificare /etc/rc.d/rc.loca |
||||
l |
||||
per lanciare il postmaster. Sotto una versione in stile RedHat |
||||
devi creare uno script in stile SysV sotto /etc/rc.d/rc3.d basato |
||||
sul file /etc/rc.d/init.d. |
||||
|
||||
C'e' un esempio di file in contrib/linux/postgres.init |
||||
|
||||
Un altro file di esempio è proposto da John Robinson |
||||
il quale puo' essere modificato a seconda delle esigenze: |
||||
|
||||
#!/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) Perche' la Query 32 nel test di regressione pretende molto tempo? |
||||
|
||||
Questo e' un bug nello script di regressione presente su Linux Os. |
||||
Ci sono due raggiri per evitarli (informazione di Tatsuo Ishii ): |
||||
|
||||
1. cambia quello che segue in regress.sh: |
||||
time postgres -texecutor -tplanner -Q bench < bench.sql |
||||
a: |
||||
postgres -texecutor -tplanner -Q bench < bench.sql |
||||
|
||||
2. dopo aver lanciato il test, rimuovi la linea finale di |
||||
bench.out, qualcosa del tipo: |
||||
85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata |
||||
0maxresident)k |
||||
poi digita: |
||||
sh ./perquery < bench.out > & bench.out.perquery |
||||
|
||||
|
||||
|
||||
3.10) Perche' ricevo dei risultati arrotondati su date/time aritmetici, |
||||
come |
||||
select '4 hours'::timespan; |
||||
returning '3 hours 59 minutes 60 seconds'? |
||||
|
||||
Stai usando le nuove librerie glibc2 e hai una versione precedene alla |
||||
2.0.7. E' un problema di arrotondamento matematico nella libreria. |
||||
Aggiorna le tue librerie. |
||||
---------------------------------------------------------------------------- |
||||
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 |
||||
---------------------------------------------------------------------------- |
||||
Daniele Medri 'MaDriD' - e-mail: madrid@darshan.org web: www.darshan.org |
||||
---------------------------------------------------------------------------- |
||||
Loading…
Reference in new issue