diff --git a/doc/FAQ_linux_german b/doc/FAQ_linux_german deleted file mode 100644 index 5f95280d9b8f6288461c4a842617c71adb8dc8ed..0000000000000000000000000000000000000000 --- a/doc/FAQ_linux_german +++ /dev/null @@ -1,752 +0,0 @@ - - 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 diff --git a/doc/FAQ_linux_italian b/doc/FAQ_linux_italian deleted file mode 100644 index ed9cc60262e3a443cf51baa4334f1a111f2030f6..0000000000000000000000000000000000000000 --- a/doc/FAQ_linux_italian +++ /dev/null @@ -1,695 +0,0 @@ - -======================================================= -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 ----------------------------------------------------------------------------- diff --git a/doc/src/FAQ/FAQ_linux_german.html b/doc/src/FAQ/FAQ_linux_german.html deleted file mode 100644 index 4f32472430fffbf14ad39b2e003a3160fcf4a670..0000000000000000000000000000000000000000 --- a/doc/src/FAQ/FAQ_linux_german.html +++ /dev/null @@ -1,748 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Linux PostgreSQL FAQ (german)</TITLE> - <META NAME="Author" CONTENT="Karsten Schulz"> - <META NAME="GENERATOR" CONTENT="all pages hand-made by Karsten Schulz, using NEdit (Linux)"> - <META http-equiv="content-type" CONTENT="text/html;CHARSET=iso8859-1"> - <META NAME="robots" CONTENT="index"> - <META NAME="robots" CONTENT="follow"> - <META NAME="description" CONTENT="Die deutsche Übersetzung der Linux-spezifischen FAQ zum Datenbanksystem PostgreSQL"> - <META NAME="keywords" CONTENT="Linux, FAQ, DB, PostgreSQL, SQL, deutsch, german"> - <LINK REV=MADE HREF="mailto:schulz@Linux-Systemhaus.de" TITLE="Karsten Schulz"> -</HEAD> -<BODY BGCOLOR="#FFFFFF"> - -<CENTER><H1>Häufig gestellte Fragen (FAQ) zu PostgreSQL >= V6.1, Linux-spezifisch</H1> -<STRONG>Bitte Zusammen mit der normalen FAQ lesen!</STRONG></CENTER> - -<HR> -<TABLE BORDER=0> -<TR> - <TD>Letztes Update des Originals:</TD> - <TD>Tue Aug 10 11:15:00 BST 1999</TD> -</TR> -<TR> - <TD>Original-FAQ gepflegt durch:</TD> - <TD>Andrew C.R. Martin (<A HREF="mailto:martin@biochem.ucl.ac.uk">martin@biochem.ucl.ac.uk</A>)</TD> -</TR> -<TR> - <TD>Original Autor:</TD> - <TD>Andrew C.R. Martin (<A HREF="mailto:martin@biochem.ucl.ac.uk">martin@biochem.ucl.ac.uk</A>)</TD> -</TR> -<TR> - <TD COLSPAN=2> </TD> -</TR> -<TR> - <TD>Letztes Update der Übersetzung:</TD> - <TD>Mo, 23. August 1999, 10:00 CEST</TD> -</TR> -<TR> - <TD>Übersetzer:</TD> - <TD>Karsten Schulz (<A HREF="mailto:schulz@linux-systemhaus.de">schulz@linux-systemhaus.de</A>)</TD> -</TR> -</TABLE> -<HR> -<P> -Änderungen in dieser Version (* = geändert, + = neu, - = entfernt) -<P> - -<A HREF="#3.11">+3.11)</A> Wieso bekomme ich einen Fehler wie: <EM>IpcMemoryCreate: shmget failed (Permission denied)</EM>?<BR> - -<H2>Diese Datei ist ungefähr wie folgt unterteilt:</H2> - -<A HREF="#1.">1.*)</A> PostgreSQL kompilieren<BR> -<A HREF="#2.">2.*)</A> Hilfs- und Zusatzprogramme kompilieren<BR> -<A HREF="#3.">3.*)</A> Laufzeit Probleme<BR> -<P><BR> - - -<H2>Beantwortete Fragen:</H2> -<A NAME="1."> </A><H3><A HREF="#Sec1">PostgreSQL kompilieren</A></H3> - - -<A HREF="#1.1">1.1)</A> Welche Anpassungen müssen in src/Makefile.global oder src/Makefile.custom gemacht werden - und gibt es weitere notwendige Änderungen?<BR> -<A HREF="#1.2">1.2)</A> Warum habe ich Probleme mit der fehlenden Bibliothek libreadline?<BR> -<A HREF="#1.3">1.3)</A> [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek libdl und der fehlenden dlfcn.h?<BR> -<A HREF="#1.4">1.4)</A> [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden Bibliothek libdl und der fehlenden dlfcn.h?<BR> -<A HREF="#1.5">1.5)</A> Die Kompilierung des Backends schlägt mit der Meldung fehl, daß die Include-Datei dlfcn.h fehlen würde.<BR> -<A HREF="#1.6">1.6)</A> GCC meldet, daß er die Option -fpic ignorieren würde.<BR> -<A HREF="#1.7">1.7)</A> Ich bekomme Warnungen, wie: <EM>warning: cast from pointer to integer of different size</EM><BR> -<A HREF="#1.8">1.8)</A> [SuSE-Linux 4.2-5.3] Wo sind curses und termcap?<BR> -<A HREF="#1.9">1.9)</A> Warum bekomme ich Probleme mit ld.so?<BR> -<A HREF="#1.10">1.10)</A> Wieso bekomme ich <EM>yy_flush_buffer undefined</EM> Fehler?<BR> -<A HREF="#1.11">1.11)</A> Wie kompiliere ich PostgreSQL auf einem a.out System?<BR> -<A HREF="#1.12">1.12)</A> Warum scheitert make mit der Meldung:<BR><EM> - yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y - make: /usr/bin/make: cannot execute binary file</EM><BR> -<A HREF="#1.13">1.13)</A> Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und libnsl in der Datei src/Makefile.global?<BR> -<A HREF="#1.14">1.14)</A> [DEBIAN] Wo ist die Bibliothek libtermcap?<BR> -<A HREF="#1.15">1.15)</A> [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen?<BR> -<A HREF="#1.16">1.16)</A> Während ich versuche eine Entwickler-Version unter Linux zu kompilieren, bricht der Vorgang mit folgender - Fehlermeldung ab:<BR><EM> - In file included from /usr/include/sys/sem.h:8,<BR> - from ipc.c:37:<BR> - /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'<BR> - ....<BR> - make: *** [ipc.o] Error 1</EM><BR> -<A HREF="#1.17">1.17)</A> Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal 11 Meldung ab.<BR> -<A HREF="#1.18">1.18)</A> Kann ich Version 6.1.1 unter MkLinux installieren?<BR> -<A HREF="#1.19">1.19)</A> Warum stoppt make oder bricht sonstwie ab?<BR> -<A HREF="#1.20">1.20)</A> Wie kann ich für die Prozessoren 486 oder Pentium optimieren?<BR> -<A HREF="#1.21">1.21)</A> Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten (z.B. beim Regressionstest 'timespan')?<BR> -<A HREF="#1.22">1.22)</A> Warum bekomme ich keine shared libraries für libpq, wenn ich Version 6.3.2 kompiliere?<BR> -<A HREF="#1.23">1.23)</A> Warum scheitert der Kompilierungslauf mit Nachrichten, daß F_BOOLIN, F_BOOLOUT und F_BYTEAIN nicht deklariert seien?<BR> - -<P> - -<A NAME="2."> </A><H3><A HREF="#Sec2">Hilfs- und Zusatzprogramme kompilieren</A></H3> - -<A HREF="#2.1">2.1)</A> Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh kompiliert werden soll.<BR> - - -<A NAME="3."> </A><H3><A HREF="#Sec3">Laufzeit Probleme</A></H3> - -<A HREF="#3.1">3.1)</A> Ich bekomme die Fehlermeldung <EM>_fUnKy_POSTPORT_sTuFf_ undefined</EM>, wenn Skripts wie createuser laufen.<BR> -<A HREF="#3.2">3.2)</A> Nachdem ich postmaster starte, meldet das System <EM>Bad system call (Core dumped)</EM><BR> -<A HREF="#3.3">3.3)</A> Wenn ich versuche, den Postmaster zu starten, bekomme ich eine Fehlermeldung wie:<BR><EM> - Failed Assertion("!(file != 0):(null)", File:<BR> - "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)<BR> - !(file != 0) (0)<BR> - initdb: could not create template database<BR> - initdb: cleaning up.</EM><BR> -<A HREF="#3.4">3.4)</A> Warum funktioniert createuser nicht?<BR> -<A HREF="#3.5">3.5)</A> Wieso bekomme ich einen Fehler, wie:<BR><EM> - IpcMemoryCreate: memKey=155356396 , size=760632 ,<BR> - permission=384IpcMemoryCreate: shmget(..., create, ...)<BR> - failed: Invalid argument</EM><BR> -<A HREF="#3.6">3.6)</A> Wieso scheitert der Aufruf von psql mit: <EM>psql: can't load library 'libpq.so.1</EM><BR> -<A HREF="#3.7">3.7)</A> Andere seltsame Verhaltensweisen<BR> -<A HREF="#3.8">3.8)</A> Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart jedesmal einen Filesystemcheck (fsck) durch<BR> -<A HREF="#3.9">3.9)</A> Warum dauert Query 32 in den RegressionsTests so lange?<BR> -<A HREF="#3.10">3.10)</A> Warum bekomme ich lustige Rundungsergebnisse in einigen Datums/Zeit-Berechnungen, wie:<BR><EM> - select '4 hours'::timespan;<BR> - liefert '3 hours 59 minutes 60 seconds'</EM>?<BR> -<A HREF="#3.11">+3.11)</A> Wieso bekomme ich einen Fehler wie: <EM>IpcMemoryCreate: shmget failed (Permission denied)</EM>?<BR> - -<P> - -<H3><A NAME="Sec1">Abschnitt 1: PostgreSQL kompilieren</A></H3> - -<H4><A NAME="1.1">1.1)</A> Welche Anpassungen müssen in src/Makefile.global oder src/Makefile.custom gemacht werden - und gibt es weitere notwendige Änderungen?</H4> - -Änderungen an den Makefiles werden am einfachsten dadurch gemacht, indem das <EM>customize shellscript</EM> -im src-Verzeichnis aufgerufen wird, das ein Makefile.custom erzeugt. -<P> -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 <A HREF="#3.4">Frage 3.4</A>). -<P> -Falls Du die Makefiles manuell änderst, <STRONG>musst</STRONG> Du die -folgende Variable setzen:<BR><BR> -<PRE> -PORTNAME= linux -</PRE> - -Du musst auch die folgende Variable ändern, damit sie auf Deine -Installation passt: -<PRE> -POSTGRESDIR -</PRE> -Falls Du die <EM>USE_TCL</EM>-Option aktivierst, musst Du folgende Variablen setzen:<BR><BR> - -<PRE> -TCL_INCDIR= -TCL_LIBDIR= -TCL_LIB= -TK_INCDIR= -TK_LIBDIR= -TK_LIB= -X11_INCDIR= -X11_LIBDIR= -X11_LIB= -</PRE> - -Auf meinem Slackware 3.0 System sind das: -<PRE> -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 -</PRE> -<P> -Du solltest auch alle weiteren Änderungen durchführen, die in der -Datei INSTALL und in Makefile.global dokumentiert sind. - -<H4><A NAME="1.2">1.2)</A> Warum habe ich Probleme mit der fehlenden Bibliothek libreadline?</H4> -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.<BR> -Hinweis: Debian Linux (wie FreeBSD) kommt mit einer installierten GNU readline Bibliothek. - -<H4><A NAME="1.3">1.3)</A> [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek libdl und der fehlenden dlfcn.h?</H4> -Das Problem erscheint dadurch, daß in der letzten Phase des Kompilierungsvorgangs Funktionen wie -dlopen(), dlclose(), etc. nicht gelinkt werden können. -<P> -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. -<P> -RedHat hat nun ein neues ld.so RPM-Archiv auf ihrem ftp-Server. Hole Dir einfach: -<P> -<A HREF="ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/">ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.i386.rpm</A> -<P> -Installiere das RPM-Archiv wie üblich und gut ist! -<P> -Hinweis: Du mußt <EM>configure</EM> und <EM>make clean</EM> nach der Installation -der Bibliothek und vor dem erneuten Kompilieren laufen lassen. -<P> -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! -<P> -Wenn Du lieber den harten Weg gehen willst, kannst Du die Bibliothek und -die Header-Dateien von: -<P> -<A HREF="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/">ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz</A> -<P> -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 <A HREF="#1.2">Frage 1.2</A>, die den gleichen Fehler -für Slackware 3.1 behandelt. -<P> -Mache es aber nur auf diese Weise, wenn Du weißt, was Du tust! - - -<H4><A NAME="1.4">1.4)</A> [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden Bibliothek libdl und der fehlenden dlfcn.h?</H4> -Das Problem erscheint dadurch, daß in der letzten Phase des Kompilierungsvorgangs Funktionen wie -dlopen(), dlclose(), etc. nicht gelinkt werden können. -<P> -Siehe die Antwort zu <A HREF="#1.3">Frage 1.3</A>. -<P> -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. -<P> -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! -<P> -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 -<PRE>sh install/doinst.sh</PRE> -durchzuführen. Danach ein <PRE>ldconfig</PRE>durchführen. -<P> -Hinweis: Du mußt <EM>configure</EM> und <EM>make clean</EM> nach der Installation -der Bibliothek und vor dem erneuten Kompilieren laufen lassen. -<P> -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: -<PRE> -cd /lib -ln -sf libdl.so.1.7.14 libdl.so.1 -ln -sf libdl.so.1 libdl.so -</PRE> -Auf manchen Systemen (je nach Deiner gcc-Konfiguration) können noch folgende -Befehle notwendig sein: -<PRE> -cd /usr/lib -ln -sf /lib/libdl.so . -</PRE> -Und zum Schluß noch ein <PRE>ldconfig</PRE> -<P> -Hinweis: Du mußt <EM>configure</EM> und <EM>make clean</EM> nach der Installation -der Bibliothek und vor dem erneuten Kompilieren laufen lassen. - -<H4><A NAME="1.5">1.5)</A> Die Kompilierung des Backends schlägt mit der Meldung fehl, daß die Include-Datei dlfcn.h fehlen würde.</H4> -Siehe die Antworten zu den Fragen <A HREF="#1.3">1.3</A> und <A HREF="#1.4">1.4</A>. -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 <A HREF="#1.11">Frage 1.11</A>. - -<H4><A NAME="1.6">1.6)</A> GCC meldet, daß er die Option -fpic ignorieren würde.</H4> -Frühere Versionen des gcc nahmen entweder <CODE>-fpic</CODE> oder <CODE>-fPIC</CODE> an. -Es scheint, daß neuere Versionen (V2.7.2?) <CODE>-fPIC</CODE> erfordern. -Falls Du ein ELF-System benutzt, kannst das alles ignoriert werden, da <CODE>-fPIC</CODE> -als Standardvorgabe voreingestellt ist. - -Du kannst diese Angabe korrigieren, indem Du CFLAGS_SL in der Datei src/Makefile.global -änderst. - - -<H4><A NAME="1.7">1.7)</A> Ich bekomme Warnungen, wie: <EM>warning: cast from pointer to integer of different size</EM></H4> -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). - - -<H4><A NAME="1.8">1.8)</A> [SuSE-Linux 4.2-5.3] Wo sind curses und termcap?</H4> -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. - -<H5>PostgreSQL (bis Version V6.0)</H5> -Setze den Wert für CURSES_LIB in src/Makefile.custom auf -lncurses (oder erledige das durch das <EM>customize script</EM>. -Füge folgende Zeile zur Datei src/Makefile.custom hinzu: -<PRE> -LDADD_BE+= -L/usr/lib/termcap -</PRE> -Möglicherweise mußt Du in der Datei src/bin/psql/Makefile folgende Änderung durchführen: -<PRE> -ifeq ($(PORTNAME), linux) - LD_ADD+= -</PRE> -ändern in: -<PRE> -ifeq ($(PORTNAME), linux) - LD_ADD+= -ltermcap -</PRE> - -<H5>PostgreSQL (V6.1)</H5> -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. -<P> -Falls das nicht funkitoniert (Ich habe SuSE nicht, um das zu testen), dann solltest Du nach dem <EM>./configure</EM>-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 <EM>./configure</EM> aufrufst.) -<P> -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) -<P> -<H5>PostgreSQL (V6.4)</H5> -In PostgreSQL V6.4 überprüft <CODE>configure</CODE> sowohl das Vorhandensein von -curses, als auch das von ncurses. -In der Zwischenzeit kannst Du den patch von <A HREF="mailto:ke@suse.de">Karl Eichwalder (ke@suse.de)</A> -anwenden: -<P> -<A HREF="http://www.PostgreSQL.ORG/mhonarc/pgsql-patches/msg00407.html">http://www.PostgreSQL.ORG/mhonarc/pgsql-patches/msg00407.html</A><BR> -oder (mit deutschen Bemerkungen):<BR> -<A HREF="http://www.suse.de/Support/sdb/ke_postgresql-632.html">http://www.suse.de/Support/sdb/ke_postgresql-632.html</A> -<P> -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: -<PRE> -cd /usr/lib -ln -s libtermcap.so.2.0.8 libtermcap.so -</PRE> - -<H4><A NAME="1.9">1.9)</A> Warum bekomme ich Probleme mit ld.so?</H4> - -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 <A HREF="#1.3">1.3</A>/<A HREF="#1.4">1.4</A>. 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. - -<H4><A NAME="1.10">1.10)</A> Wieso bekomme ich <EM>yy_flush_buffer undefined</EM> Fehler?</H4> -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 <A HREF="3.4">Frage 3.4</A>. - -<H4><A NAME="1.11">1.11)</A> Wie kompiliere ich PostgreSQL auf einem a.out System?</H4> -Als erstes mußt Du die dld-Bibliothek installieren. Diese gibt es auf Sunsite unter -Linux/libs/dld.3.2.7.tar.gz (<A HREF="ftp://sunsite.unc.edu/pub/Linux/libs/">ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz</A>). -<P> -Dann füge folgende Zeile in src/Makefile.custom hinzu: -<PRE> -LINUX_ELF= -</PRE> -oder benutze das <EM>customize Skript</EM> - -<H4><A NAME="1.12">1.12)</A> Warum scheitert make mit der Meldung:<BR><EM> - yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y - make: /usr/bin/make: cannot execute binary file</EM></H4> - -Das war ein Problem in frühreren Versionen von Postgres95. Standardmäßig benutzt PostgreSQL <CODE>bison -y</CODE> -anstatt <CODE>yacc</CODE>. -<P> -yacc ist normalerweise als Skript implementiert, das <CODE>bison -y</CODE> aufruft. Aus verschiedenen Gründen ist -<EM>make</EM> nicht in der Lage, das Skript auszuführen (verschiedene Versionen von make? Verschiedene Versionen der bash?) -<P> -Um das zu beheben, ändere einfach die Datei src/mk/port/postgres.mk.linux am Ende. Die Zeile: -<PRE> -# YACC = bison -y -</PRE> -wird zu: -<PRE> -YACC = bison -y -</PRE> - - -<H4><A NAME="1.13">1.13)</A> Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und libnsl in der Datei src/Makefile.global?</H4> -Das war ein Problem in Version 1.08 (Sun Solaris spezifisch). Sie sind behoben in 1.09 und 6.0 - -<H4><A NAME="1.14">1.14)</A> [DEBIAN] Wo ist die Bibliothek libtermcap?</H4> -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 <A HREF="1.8">Frage 1.8</A>) -<P> -Du kannst die Datei src/bin/psql/Makefile wie folgt ändern: -<PRE> -ifeq ($(PORTNAME), linux) - LD_ADD+= -ltermcap -</PRE> -in -<PRE> -ifeq ($(PORTNAME), linux) - LD_ADD+= - </PRE> - - -<H4><A NAME="1.15">1.15)</A> [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen?</H4> -Ja! <A HREF="mailto:mimo@lodz.pdi.net">Michal Mosiewicz</A> (<A HREF="http://www.pdi.lodz.pl/~mimo">http://www.pdi.lodz.pl/~mimo</A>) -hat ein RPM für PostgreSQL V6.0 auf Intel Architekturen zusammengestellt, -welches er nach <A HREF="ftp://ftp.redhat.org/pub/Incoming/">ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm</A> -hochgeladen hat. -<P> -Das ist eine vorkompilierte Version, das Quelltext-RPM stammt vom 03.02.1997. - - - -<H4><A NAME="1.16">1.16)</A> Während ich versuche eine Entwickler-Version unter Linux zu kompilieren, bricht der Vorgang mit folgender - Fehlermeldung ab:<BR><EM> - In file included from /usr/include/sys/sem.h:8,<BR> - from ipc.c:37:<BR> - /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'<BR> - ....<BR> - make: *** [ipc.o] Error 1</EM></H4> - -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: -<PRE> -CFLAGS+=$(INCLUDE_OPT) -</PRE> -in -<PRE> -CFLAGS+=$(INCLUDE_OPT) -Wno-error -</PRE> -Mache dasselbe dann im ../src/backend/storage/lmgr Verzeichnis. - - -<H4><A NAME="1.17">1.17)</A> Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal 11 Meldung ab.</H4> -Oder genauer: <EM>gcc: Internal compiler error: program cc1 got fatal signal 11</EM> -<P> -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. -<P> -Mehr Information zu diesem Problem gibt es unter <A HREF="http://www.BitWizard.nl/sig11/">http://www.BitWizard.nl/sig11/</A> und -in deutsch unter <A HREF="http://www.suse.de/sdb/de/html/kfr_58.html">http://www.suse.de/sdb/de/html/kfr_58.html</A>. -<P>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. - -<H4><A NAME="1.18">1.18)</A> Kann ich Version 6.1.1 unter MkLinux installieren?</H4> -<A HREF="mailto:t-ishii@sra.co.jp">Tatsuo Ishii</A> hat das unter MkLinux DR2.1 update2 geschafft, nachdem der kleine Patch -von <A HREF="ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/">ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz</A> -eingespielt wurde. - - -<H4><A NAME="1.19">1.19)</A> Warum stoppt make oder bricht sonstwie ab?</H4> -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. - -<H4><A NAME="1.20">1.20)</A> Wie kann ich für die Prozessoren 486 oder Pentium optimieren?</H4> -Die Standard-Compilerflags führen keine Optimierung für den 486er oder den Pentium-Prozessor durch. -Um diese Optimierung zu aktivieren, füge wahlweise <U>eine</U> der folgenden Zeilen -der Datei Makefile.custom hinzu: -<PRE> -CFLAGS+= -m486 -</PRE> -oder -<PRE> -CFLAGS+= -mpentium -</PRE> -oder -<PRE> -CFLAGS+= -mpentiumpro -</PRE> - -<H4><A NAME="1.21">1.21)</A> Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten (z.B. beim Regressionstest 'timespan')?</H4> -Die Zeit erscheint z.B. als: "4 hours 59 mins 60.00 secs" und nicht als "5 hours" -<P> -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. - -<H4><A NAME="1.22">1.22)</A> Warum bekomme ich keine shared libraries für libpq, wenn ich Version 6.3.2 kompiliere?</H4> -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 <A HREF="ftp://postgresql.org/pub/patches/">ftp://postgresql.org/pub/patches/</A> nach. - -<H4><A NAME="1.23">1.23)</A> Warum scheitert der Kompilierungslauf mit Nachrichten, daß F_BOOLIN, F_BOOLOUT und F_BYTEAIN nicht deklariert seien?</H4> -Die komplette Meldung sieht ungefähr so aus: -<PRE> - -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 -</PRE> -Solange Du nicht weißt, warum das passiert, ist dieses Problem ziemlich kniffelig, da diese -Konstanten anscheinend nirgendwo definiert werden. -<P> -Die Lösung ist dafür zu sorgen, daß der cpp in Deinem Pfad erreichbar ist, bevor -make gestartet wird. -<P> -Auf Redhat 5.1, ist cpp in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3 - - - - -<H3><A NAME="Sec2">Abschnitt 2: Hilfs- und Zusatzprogramme kompilieren</A></H3> - -<H4><A NAME="2.1">2.1)</A> Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh kompiliert werden soll.</H4> -Füge folgende Zeile in src/Makefile.custom hinzu: -<PRE> -X11_LIBDIR = /usr/X11R6/lib -</PRE> - -<H3><A NAME="Sec3">Abschnitt 3: Laufzeit Probleme</A></H3> - -<H4><A NAME="3.1">3.1)</A> Ich bekomme die Fehlermeldung <EM>_fUnKy_POSTPORT_sTuFf_ undefined</EM>, wenn Skripts wie createuser laufen.</H4> -Das ist ein Fehler in Versionen 1.06-1.07 und ist ab Version 1.08 und höher behoben. - -<H4><A NAME="3.2">3.2)</A> Nachdem ich postmaster starte, meldet das System <EM>Bad system call (Core dumped)</EM></H4> -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. - -<H4><A NAME="3.3">3.3)</A> Wenn ich versuche, den Postmaster zu starten, bekomme ich eine Fehlermeldung wie:<BR><EM> - Failed Assertion("!(file != 0):(null)", File:<BR> - "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)<BR> - !(file != 0) (0)<BR> - initdb: could not create template database<BR> - initdb: cleaning up.</EM></H4> - -Deine Berechtigungen für die Datei /dev/null sind falsch gesetzt. -ein <CODE>ls -l /dev/null</CODE> sollte folgende Ausgabe zeigen: -<PRE> -crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null -</PRE> -Korrigiere die Berechtigungen mit: -<PRE> -chmod a+rw /dev/null -</PRE> - -<H4><A NAME="3.4">3.4)</A> Warum funktioniert createuser nicht?</H4> -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. -<P> -Die Version 2.5.4. gibt es unter <A HREF="ftp://prep.ai.mit.edu/pub/gnu/">ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz</A>. - - -<H4><A NAME="3.5">3.5)</A> Wieso bekomme ich einen Fehler, wie:<BR><EM> - IpcMemoryCreate: memKey=155356396 , size=760632 ,<BR> - permission=384IpcMemoryCreate: shmget(..., create, ...)<BR> - failed: Invalid argument</EM></H4> - -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. - -<H4><A NAME="3.6">3.6)</A> Wieso scheitert der Aufruf von psql mit: <EM>psql: can't load library 'libpq.so.1</EM></H4> -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 <CODE>/sbin/ldconfig -v</CODE> 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: -<PRE> -export LD_LIBRARY_PATH='PathToPGSQL'/lib -</PRE> -unter der tcsh so: -<PRE> -setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib -</PRE> -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. - - -<H4><A NAME="3.7">3.7)</A> Andere seltsame Verhaltensweisen</H4> -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 -<A HREF="3.6">Frage 3.6</A> für weitere Details bezüglich dem Laden von Bibliotheken. - -<H4><A NAME="3.8">3.8)</A> Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart jedesmal einen Filesystemcheck (fsck) durch</H4> -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. -<P> -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. -<P> -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. -<P> -Es gibt eine Beispieldatei unter dem Verzeichnis contrib/linux/postgres.init. -<P> -Hier ist noch ein anderes Beispiel von <A HREF="mailto:john@intelligent.co.uk">John Robinson</A> -welches Du entsprechend anpassen kannst. - -<PRE> -#!/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 -</PRE> - - -<H4><A NAME="3.9">3.9)</A> Warum dauert Query 32 in den RegressionsTests so lange?</H4> -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 <A HREF="mailto:t-ishii@sra.co.jp">Tatsuo Ishii</A>): -<P> -1. ändere folgende Zeile in regress.sh: -<PRE> -time postgres -texecutor -tplanner -Q bench < bench.sql -</PRE> -in -<PRE> -postgres -texecutor -tplanner -Q bench < bench.sql -</PRE> -2. nachdem der Test gelaufen ist, entferne eine Zeile ganz am Ende der Datei bench.out, -die ungefähr so aussieht: -<PRE> -85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k -</PRE> -dann gib folgendes auf der Befehlszeile ein: -<PRE> -sh ./perquery < bench.out > & bench.out.perquery -</PRE> - - - -<H4><A NAME="#3.10">3.10)</A> Warum bekomme ich lustige Rundungsergebnisse in einigen Datums/Zeit-Berechnungen, wie:<BR><EM> - select '4 hours'::timespan;<BR> - liefert '3 hours 59 minutes 60 seconds'</EM>?</H4> - -Du benutzt neue glibc2-Bibliotheken in einer Version kleiner als 2.0.7. Das ist ein mathematisches Rundungsproblem. -Aktualisiere Deine Bibliothek. - - -<H4><A NAME="3.11">3.11)</A> Wieso bekomme ich einen Fehler wie: <EM>IpcMemoryCreate: shmget failed (Permission denied)</EM>?</H4> -Im Detail erscheint der Fehler mit dieser Meldung:<BR> -<PRE> -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 -</PRE> -Dieser Fehler wird durch nicht gelöschte Segmente im <EM>shared memory</EM> verursacht. -(Du kannst sie mit dem Programm <EM>ipcs</EM> sehen. -Benutze das Programm <EM>ipcrm</EM>, um sie zu löschen. -<HR> -<P><BR> -<P><BR> -<CENTER> -<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=2> -<TR> - <TH COLSPAN=2>Author of the english version</TH> -</TR> -<TR> - <TD ALIGN=LEFT>Dr. Andrew C.R. Martin</TD> - <TD ALIGN=RIGHT>University College London</TD> -</TR> -<TR> - <TD ALIGN=LEFT>EMAIL: (Work) martin@biochem.ucl.ac.uk</TD> - <TD ALIGN=RIGHT>(Home) andrew@stagleys.demon.co.uk</TD> -</TR> -<TR> - <TD ALIGN=CENTER COLSPAN=2>URL: http://www.biochem.ucl.ac.uk/~martin</TD> -</TR> -<TR> - <TD ALIGN=LEFT>Tel: (Work) +44(0)171 419 3890</TD> - <TD ALIGN=RIGHT>(Home) +44(0)1372 275775</TD> -</TR> -</TABLE> -<P> -<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=2> -<TR> - <TH COLSPAN=2>Translator of the german version</TH> -</TR> -<TR> - <TD ALIGN=LEFT>Karsten Schulz</TD> - <TD ALIGN=RIGHT>Linux Systemhaus Schulz</TD> -</TR> -<TR> - <TD ALIGN=LEFT>EMAIL: (Work) schulz@Linux-Systemhaus.de</TD> - <TD ALIGN=RIGHT>(Home) kaschu@t800.ping.de</TD> -</TR> -<TR> - <TD ALIGN=CENTER COLSPAN=2>URL: http://www.Linux-Systemhaus.de/</TD> -</TR> -<TR> - <TD ALIGN=LEFT>Tel: (Work) +49 231 3944432</TD> - <TD ALIGN=RIGHT>(Fax) +49 231 3944435</TD> -</TR> -</TABLE> -</CENTER> -</BODY> -</HTML> diff --git a/doc/src/FAQ/FAQ_linux_italian.html b/doc/src/FAQ/FAQ_linux_italian.html deleted file mode 100644 index 71303d4d4f2d63b95f32af4189a5b7ac01484fa2..0000000000000000000000000000000000000000 --- a/doc/src/FAQ/FAQ_linux_italian.html +++ /dev/null @@ -1,666 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<HTML> -<HEAD> - <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> - <META NAME="GENERATOR" CONTENT="Mozilla/4.06 [en] (X11; I; Linux 2.1.105 i586) [Netscape]"> -</HEAD> -<BODY BGCOLOR="#FFFDEC"> - -<PRE>======================================================= -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'?</PRE> - -<PRE>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.custom - 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_bit' - .... - make: *** [ipc.o] Error 1 -1.17) Quando sto' compilando postgres, gcc riporta un signal 11 e si interrompe. -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 compilazione. - - La libreria libdl e' usata per linkare in maniera dinamica le funzioni - e rendere flessibile l'avvio dell'applicativo. Per alcune ragioni questa - 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 siti 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 compilazione.</PRE> - -<PRE> Guarda la risposta alla domanda 1.3. Slackware fino alla versione 3.0 - era provvista di questa libreria e degli include file e ritornarono nell'ultima - versione 3.1, ma la prima versione della 3.1 (prima del 9 settembre 1996) - 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 quarto - 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 sistema - 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 sicurezza - essere ignorate. PostgreSQL V6.0 dovrebbe compilare senza warnings - ad eccezione di quelli relativi agli header file di sistema (i quali possono - 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 istallazione - 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.linux - 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 <mimo@lodz.pdi.net> - (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_bit' - .... - make: *** [ipc.o] Error 1 - - Il problema e' che Linux non prevede prototipi per queste funzioni inline. - La soluzione e' di andare dentro la directory .../src/backend/storage/ipc - 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 interrompe. - 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'hardware - in questo modo, per questo non vedrai mai questi errori sotto DOS/Windows. - - 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 dettagli! - -1.18) Posso installare 6.1.1 su MkLinux? - - Tatsuo Ishii <t-ishii@sra.co.jp> 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 per 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 versione - 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 condivisa 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 libpq. - - 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 directory - 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 da 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 PostgreSQL - al top level. - Nota che il comando ldd puo' essere eseguito su un programma linkato dinamicamente - 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 esecuzione, - ma si puo' ipotizzare che le ragioni vadano oltre il regolare funzionamento 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.local - 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 - <john@intelligent.co.uk> 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/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) 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 <t-ishii@sra.co.jp>): - - 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.</PRE> - -<PRE> ----------------------------------------------------------------------------- -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 -----------------------------------------------------------------------------</PRE> - -</BODY> -</HTML>