diff options
Diffstat (limited to 'doc/FAQ_Linux_German')
-rw-r--r-- | doc/FAQ_Linux_German | 752 |
1 files changed, 752 insertions, 0 deletions
diff --git a/doc/FAQ_Linux_German b/doc/FAQ_Linux_German new file mode 100644 index 00000000000..5f95280d9b8 --- /dev/null +++ b/doc/FAQ_Linux_German @@ -0,0 +1,752 @@ + + H�ufig gestellte Fragen (FAQ) zu PostgreSQL >= V6.1, Linux-spezifisch + + Bitte Zusammen mit der normalen FAQ lesen! + _________________________________________________________________ + + Letztes Update des Originals: Tue Aug 10 11:15:00 BST 1999 + Original-FAQ gepflegt durch: Andrew C.R. Martin + (martin@biochem.ucl.ac.uk) + Original Autor: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) + + Letztes Update der �bersetzung: Mo, 23. August 1999, 10:00 CEST + �bersetzer: Karsten Schulz (schulz@linux-systemhaus.de) + _________________________________________________________________ + + �nderungen in dieser Version (* = ge�ndert, + = neu, - = entfernt) + + +3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget + failed (Permission denied)? + +Diese Datei ist ungef�hr wie folgt unterteilt: + + 1.*) PostgreSQL kompilieren + 2.*) Hilfs- und Zusatzprogramme kompilieren + 3.*) Laufzeit Probleme + +Beantwortete Fragen: + + + + PostgreSQL kompilieren + + 1.1) Welche Anpassungen m�ssen in src/Makefile.global oder + src/Makefile.custom gemacht werden und gibt es weitere notwendige + �nderungen? + 1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline? + 1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek + libdl und der fehlenden dlfcn.h? + 1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden + Bibliothek libdl und der fehlenden dlfcn.h? + 1.5) Die Kompilierung des Backends schl�gt mit der Meldung fehl, da� + die Include-Datei dlfcn.h fehlen w�rde. + 1.6) GCC meldet, da� er die Option -fpic ignorieren w�rde. + 1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer + of different size + 1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap? + 1.9) Warum bekomme ich Probleme mit ld.so? + 1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler? + 1.11) Wie kompiliere ich PostgreSQL auf einem a.out System? + 1.12) Warum scheitert make mit der Meldung: + yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make: + /usr/bin/make: cannot execute binary file + 1.13) Was sind die Bez�ge in der Bibliothek X11_LIB zu libsocket und + libnsl in der Datei src/Makefile.global? + 1.14) [DEBIAN] Wo ist die Bibliothek libtermcap? + 1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen? + 1.16) W�hrend ich versuche eine Entwickler-Version unter Linux zu + kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab: + In file included from /usr/include/sys/sem.h:8, + from ipc.c:37: + /usr/include/asm/bitops.h:32: warning: no previous prototype for + Set_bit' + .... + make: *** [ipc.o] Error 1 + 1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal + 11 Meldung ab. + 1.18) Kann ich Version 6.1.1 unter MkLinux installieren? + 1.19) Warum stoppt make oder bricht sonstwie ab? + 1.20) Wie kann ich f�r die Prozessoren 486 oder Pentium optimieren? + 1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten + (z.B. beim Regressionstest 'timespan')? + 1.22) Warum bekomme ich keine shared libraries f�r libpq, wenn ich + Version 6.3.2 kompiliere? + 1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, da� + F_BOOLIN, F_BOOLOUT und F_BYTEAIN nicht deklariert seien? + + + Hilfs- und Zusatzprogramme kompilieren + + 2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh + kompiliert werden soll. + + + Laufzeit Probleme + + 3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined, + wenn Skripts wie createuser laufen. + 3.2) Nachdem ich postmaster starte, meldet das System Bad system call + (Core dumped) + 3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine + Fehlermeldung wie: + Failed Assertion("!(file != 0):(null)", File: + "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257) + !(file != 0) (0) + initdb: could not create template database + initdb: cleaning up. + 3.4) Warum funktioniert createuser nicht? + 3.5) Wieso bekomme ich einen Fehler, wie: + IpcMemoryCreate: memKey=155356396 , size=760632 , + permission=384IpcMemoryCreate: shmget(..., create, ...) + failed: Invalid argument + 3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library + 'libpq.so.1 + 3.7) Andere seltsame Verhaltensweisen + 3.8) Wenn PostgreSQL beim Systemhalt lief, f�hrt Linux beim Neustart + jedesmal einen Filesystemcheck (fsck) durch + 3.9) Warum dauert Query 32 in den RegressionsTests so lange? + 3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen + Datums/Zeit-Berechnungen, wie: + select '4 hours'::timespan; + liefert '3 hours 59 minutes 60 seconds'? + +3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget + failed (Permission denied)? + + Abschnitt 1: PostgreSQL kompilieren + + 1.1) Welche Anpassungen m�ssen in src/Makefile.global oder + src/Makefile.custom gemacht werden und gibt es weitere notwendige + �nderungen? + + �nderungen an den Makefiles werden am einfachsten dadurch gemacht, + indem das customize shellscript im src-Verzeichnis aufgerufen wird, + das ein Makefile.custom erzeugt. + + Die einzige andere �nderung, die evtl. zu machen w�re, ist Flex zu + ersetzen, wenn Du die Version 2.5.3 hast. Diese Version hat einen + Fehler, der sich durch das Scheitern des createuser-Programms �u�ert. + (siehe dazu auch Frage 3.4). + + Falls Du die Makefiles manuell �nderst, musst Du die folgende Variable + setzen: +PORTNAME= linux + + Du musst auch die folgende Variable �ndern, damit sie auf Deine + Installation passt: +POSTGRESDIR + + Falls Du die USE_TCL-Option aktivierst, musst Du folgende Variablen + setzen: +TCL_INCDIR= +TCL_LIBDIR= +TCL_LIB= +TK_INCDIR= +TK_LIBDIR= +TK_LIB= +X11_INCDIR= +X11_LIBDIR= +X11_LIB= + + Auf meinem Slackware 3.0 System sind das: +TCL_INCDIR= /usr/include/tcl +TCL_LIBDIR= /usr/lib +TCL_LIB= -ltcl +TK_INCDIR= /usr/include/tcl +TK_LIBDIR= /usr/lib +TK_LIB= -ltk +X11_INCDIR= /usr/include/X11 +X11_LIBDIR= /usr/X386/lib +X11_LIB= -lX11 + + Du solltest auch alle weiteren �nderungen durchf�hren, die in der + Datei INSTALL und in Makefile.global dokumentiert sind. + + 1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline? + + Linux Systeme kommen in der Regel nicht mit einer installierten GNU + readline Bibliothek. Stelle entweder sicher, da� Du die + readline-Optionen in src/Makefile.global oder src/Makefile.custom + nicht aktivierst oder installiere die GNU readline Bibliothek. + Hinweis: Debian Linux (wie FreeBSD) kommt mit einer installierten GNU + readline Bibliothek. + + 1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek libdl + und der fehlenden dlfcn.h? + + Das Problem erscheint dadurch, da� in der letzten Phase des + Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht + gelinkt werden k�nnen. + + Die libdl Bibliothek wird zum dynamischen Linken von + Benutzerfunktionen zur Laufzeit benutzt. Aus irgendwelchen Gr�nden + wurde diese Bibliothek mit der RedHat-Distribution nicht ausgeliefert. + Anscheinend ist dies in der letzten RedHat 4.0 (Colgate) ge�ndert + worden. + + RedHat hat nun ein neues ld.so RPM-Archiv auf ihrem ftp-Server. Hole + Dir einfach: + + ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4. + i386.rpm + + Installiere das RPM-Archiv wie �blich und gut ist! + + Hinweis: Du mu�t configure und make clean nach der Installation der + Bibliothek und vor dem erneuten Kompilieren laufen lassen. + + Es gab einen Bericht �ber ein zerst�rtes System, weil Programme auf + diese Bibliothek w�hrend des Updates zugegriffen haben (alles in allem + nicht weiter �berraschend). Konsequenterweise ist es eine gute Idee, + das System vor der Installation zu rebooten, um so wenige Programme + wie m�glich w�hrend des Updates laufen zu haben. In den + Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee! + + Wenn Du lieber den harten Weg gehen willst, kannst Du die Bibliothek + und die Header-Dateien von: + + ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz + + holen. Alternativ findest Du vorkompilierte Binaries in + distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb auf dem + gleichen ftp-Server oder folge den Instruktionen bei Frage 1.2, die + den gleichen Fehler f�r Slackware 3.1 behandelt. + + Mache es aber nur auf diese Weise, wenn Du wei�t, was Du tust! + + 1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden Bibliothek + libdl und der fehlenden dlfcn.h? + + Das Problem erscheint dadurch, da� in der letzten Phase des + Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht + gelinkt werden k�nnen. + + Siehe die Antwort zu Frage 1.3. + + Slackware bis Version 3.0 war mit dieser Bibliothek und der + Include-Datei ausgestattet und ab sp�ten 3.1er-Versionen scheinen sie + auch wieder da zu sein. Aber in fr�hen 3.1er-Versionen (vor dem + 09.09.96) fehlten sie und es wurden viele CD-ROMs von diesen ersten + 3.1.er-Versionen gepresst. + + Es gab einen Bericht �ber ein zerst�rtes System, weil Programme auf + diese Bibliothek w�hrend des Updates zugegriffen haben (alles in allem + nicht weiter �berraschend). Konsequenterweise ist es eine gute Idee, + das System vor der Installation zu rebooten, um so wenige Programme + wie m�glich w�hrend des Updates laufen zu haben. In den + Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee! + + Der einfachste Weg, den Fehler zu beseitigen ist, die Datei ldso.tgz + von der a4-Diskette einer aktuelleren Slackware zu nehmen, diese Datei + im Wurzelverzeichnis (/) zu entpacken und dann ein +sh install/doinst.sh + + durchzuf�hren. Danach ein +ldconfig + + durchf�hren. + + Hinweis: Du mu�t configure und make clean nach der Installation der + Bibliothek und vor dem erneuten Kompilieren laufen lassen. + + Falls Du manuell installieren m�chtest, installiere zuerst die Datei + dlfcn.h in /usr/include. Dann die libdl.so.1.7.14 (oder was immer die + letzte Version ist) in /lib. Dann f�hre folgende Befehle aus: +cd /lib +ln -sf libdl.so.1.7.14 libdl.so.1 +ln -sf libdl.so.1 libdl.so + + Auf manchen Systemen (je nach Deiner gcc-Konfiguration) k�nnen noch + folgende Befehle notwendig sein: +cd /usr/lib +ln -sf /lib/libdl.so . + + Und zum Schlu� noch ein +ldconfig + + Hinweis: Du mu�t configure und make clean nach der Installation der + Bibliothek und vor dem erneuten Kompilieren laufen lassen. + + 1.5) Die Kompilierung des Backends schl�gt mit der Meldung fehl, da� die + Include-Datei dlfcn.h fehlen w�rde. + + Siehe die Antworten zu den Fragen 1.3 und 1.4. Und vergiss nicht, + falls Du ein a.out-System benutzt, da� Du das dld-Paket installiert + haben mu� (welches bei den meisten a.out-Systemen nicht dabei ist), um + dlfcn.h zu haben. Siehe Frage 1.11. + + 1.6) GCC meldet, da� er die Option -fpic ignorieren w�rde. + + Fr�here Versionen des gcc nahmen entweder -fpic oder -fPIC an. Es + scheint, da� neuere Versionen (V2.7.2?) -fPIC erfordern. Falls Du ein + ELF-System benutzt, kannst das alles ignoriert werden, da -fPIC als + Standardvorgabe voreingestellt ist. Du kannst diese Angabe + korrigieren, indem Du CFLAGS_SL in der Datei src/Makefile.global + �nderst. + + 1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer of + different size + + Diese Warnungen wurden in fr�heren Versionen von Postgres95 gesichtet + und k�nnen ignoriert werden. PostgreSQL V6.0 sollte ohne Warnungen + kompiliert werden, au�er jenen, die sich auf System-Header-Dateien + beziehen (welche auch ignoriert werden k�nnen). + + 1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap? + + SuSE-Linux 4.2 hat ncurses, nicht curses. Version 4.4 scheint beide + Bibliotheken zu haben. Bei SuSE-Linux ist au�erdem die + termcap-Bibliothek in /usr/lib/termcap/ und nicht in /usr/lib. + + PostgreSQL (bis Version V6.0) + + Setze den Wert f�r CURSES_LIB in src/Makefile.custom auf -lncurses + (oder erledige das durch das customize script. F�ge folgende Zeile zur + Datei src/Makefile.custom hinzu: +LDADD_BE+= -L/usr/lib/termcap + + M�glicherweise mu�t Du in der Datei src/bin/psql/Makefile folgende + �nderung durchf�hren: +ifeq ($(PORTNAME), linux) + LD_ADD+= + + �ndern in: +ifeq ($(PORTNAME), linux) + LD_ADD+= -ltermcap + + PostgreSQL (V6.1) + + Das Konfigurationsscript wei� nicht, da� es auch in /usr/lib/termcap + nach der termcap-Bibliothek schauen soll. Du solltest dieses + Verzeichnis angeben, wenn es nach zus�tzlichen Such-Verzeichnissen + fragt. + + Falls das nicht funkitoniert (Ich habe SuSE nicht, um das zu testen), + dann solltest Du nach dem ./configure-Lauf die Datei + src/Makefile.global �ndern und in die LDFLAGS-Zeile den Eintrag + -ltermcap (nach -lreadline) hinzuf�gen. (Alternativ kannst Du auch die + Datei src/Makefile.custom �ndern, bevor Du ./configure aufrufst.) + + Einige SuSE-Versionen liefern nur ncurses, deshalb kann es sein, da� + Du die Benutzung von ncurses statt curses erzwingen mu�t, indem Du + -lcurses in -lncurses �nderst. (best�tigt f�r SuSE 5.1) + + PostgreSQL (V6.4) + + In PostgreSQL V6.4 �berpr�ft configure sowohl das Vorhandensein von + curses, als auch das von ncurses. In der Zwischenzeit kannst Du den + patch von Karl Eichwalder (ke@suse.de) anwenden: + + http://www.PostgreSQL.ORG/mhonarc/pgsql-patches/msg00407.html + oder (mit deutschen Bemerkungen): + http://www.suse.de/Support/sdb/ke_postgresql-632.html + + Es gab au�erdem einen Bericht, da� beim Update von SuSE 5.0 auf SuSE + 5.2 der Link von libtermcap.so.2.0.8 auf libtermcap.so nicht gesetzt + wurde: +cd /usr/lib +ln -s libtermcap.so.2.0.8 libtermcap.so + + 1.9) Warum bekomme ich Probleme mit ld.so? + + Falls Du Probleme mit ld.so bekommst - eine andere Bibliothek, die im + ELF-System f�r dynamisches Laden ben�tigt wird - dann hast Du Deine + Systeminstallation oder wahrscheinlicher ein Linux-Update + durcheinandergebracht Siehe die Fragen 1.3/1.4. M�glicherweise mu�t Du + ld.so.x.y.z in /lib installieren und ldconfig laufen lassen. Die + aktuellste Version des ld-Packages ist 1.7.14. Zum Zeitpunkt des + Schreibens dieser FAQ ist die Version 1.8 noch experimental. + + 1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler? + + Das ist nicht wirklich Linux-spezifisch, aber es tritt h�ufiger auf + alten Linux-Systemen auf. Du brauchst eine aktuelle Version von flex + (2.5.2. oder neuer), um PostgreSQL zu kompilieren. Beachte, da� flex + 2.5.3. einen Bug hat, siehe auch Frage 3.4. + + 1.11) Wie kompiliere ich PostgreSQL auf einem a.out System? + + Als erstes mu�t Du die dld-Bibliothek installieren. Diese gibt es auf + Sunsite unter Linux/libs/dld.3.2.7.tar.gz + (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz). + + Dann f�ge folgende Zeile in src/Makefile.custom hinzu: +LINUX_ELF= + + oder benutze das customize Skript + + 1.12) Warum scheitert make mit der Meldung: + yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make: /usr/bin/make: + cannot execute binary file + + Das war ein Problem in fr�hreren Versionen von Postgres95. + Standardm��ig benutzt PostgreSQL bison -y anstatt yacc. + + yacc ist normalerweise als Skript implementiert, das bison -y aufruft. + Aus verschiedenen Gr�nden ist make nicht in der Lage, das Skript + auszuf�hren (verschiedene Versionen von make? Verschiedene Versionen + der bash?) + + Um das zu beheben, �ndere einfach die Datei + src/mk/port/postgres.mk.linux am Ende. Die Zeile: +# YACC = bison -y + + wird zu: +YACC = bison -y + + 1.13) Was sind die Bez�ge in der Bibliothek X11_LIB zu libsocket und libnsl + in der Datei src/Makefile.global? + + Das war ein Problem in Version 1.08 (Sun Solaris spezifisch). Sie sind + behoben in 1.09 und 6.0 + + 1.14) [DEBIAN] Wo ist die Bibliothek libtermcap? + + Debian Linux kommt ohne die termcap-Bibliothek und benutzt ncurses + (welche terminfo benutzt). Es gibt keinen Grund, die + CURSES_LIB-Variable in src/bin/psql/Makefile zu �ndern, da Debian + einen Link von libncurses auf libcurses bereitstellt (im Gegensatz zu + SuSE, siehe Frage 1.8) + + Du kannst die Datei src/bin/psql/Makefile wie folgt �ndern: +ifeq ($(PORTNAME), linux) + LD_ADD+= -ltermcap + + in +ifeq ($(PORTNAME), linux) + LD_ADD+= + + + 1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen? + + Ja! Michal Mosiewicz (http://www.pdi.lodz.pl/~mimo) hat ein RPM f�r + PostgreSQL V6.0 auf Intel Architekturen zusammengestellt, welches er + nach ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm + hochgeladen hat. + + Das ist eine vorkompilierte Version, das Quelltext-RPM stammt vom + 03.02.1997. + + 1.16) W�hrend ich versuche eine Entwickler-Version unter Linux zu + kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab: + In file included from /usr/include/sys/sem.h:8, + from ipc.c:37: + /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit' + .... + make: *** [ipc.o] Error 1 + + Das Problem ist, da� Linux keine Prototypen f�r diese + Inline-Funktionen bereith�lt. Die L�sung liegt darin, das Makefile in + .../src/backend/storage/ipc/ zu �ndern: �ndere die Zeile: +CFLAGS+=$(INCLUDE_OPT) + + in +CFLAGS+=$(INCLUDE_OPT) -Wno-error + + Mache dasselbe dann im ../src/backend/storage/lmgr Verzeichnis. + + 1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal 11 + Meldung ab. + + Oder genauer: gcc: Internal compiler error: program cc1 got fatal + signal 11 + + Das k�nnen Hardware/Speicherprobleme sein. PostgreSQL ist ein gro�es + Programm und gro�e gcc-Kompilierungsl�fe (wie eben PostgreSQL oder + eine Kernel-Kompilierung) beanspruchen den Hauptspeicher wie wenig + andere Programme. Dadurch k�nnen Fehler auftreten, die in normalen + Situationen nicht erscheinen. Niedrigere Betriebssysteme beanspruchen + die Hardware ebenfalls nicht in diesem Ma�e, deshalb kann es sein, da� + Du niemals Probleme unter DOS/Windows siehst. + + Mehr Information zu diesem Problem gibt es unter + http://www.BitWizard.nl/sig11/ und in deutsch unter + http://www.suse.de/sdb/de/html/kfr_58.html. + + Laut dieser Sig11-FAQ scheint es ein spezielles Problem mit dem RedHat + 5.0 gcc auf einem Cyrix-Prozessor zu geben. Siehe bitte dort nach den + Details nach. + + 1.18) Kann ich Version 6.1.1 unter MkLinux installieren? + + Tatsuo Ishii hat das unter MkLinux DR2.1 update2 geschafft, nachdem + der kleine Patch von + ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz + eingespielt wurde. + + 1.19) Warum stoppt make oder bricht sonstwie ab? + + Es gibt eine Reihe von Reports dar�ber, da� gmake zu fr�h aussteigt + oder mit einem Segmentation Fault aussteigt. Das letzte Problem wurde + von gmake 3.74 berichtet. Ein Update auf 3.76.1 l�ste dieses Problem. + Wie auch immer, 3.74 arbeitet bei vielen Leuten zur vollsten + Zufriedenheit. Kurz gesagt, upgrade Deinen gmake auf die aktuellste + Version, bevor Du dieses Problem meldest. + + 1.20) Wie kann ich f�r die Prozessoren 486 oder Pentium optimieren? + + Die Standard-Compilerflags f�hren keine Optimierung f�r den 486er oder + den Pentium-Prozessor durch. Um diese Optimierung zu aktivieren, f�ge + wahlweise eine der folgenden Zeilen der Datei Makefile.custom hinzu: +CFLAGS+= -m486 + + oder +CFLAGS+= -mpentium + + oder +CFLAGS+= -mpentiumpro + + 1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten (z.B. + beim Regressionstest 'timespan')? + + Die Zeit erscheint z.B. als: "4 hours 59 mins 60.00 secs" und nicht + als "5 hours" + + Das ist ein Problem mit der glibc2-Bibliothek, die mit RedHat 5.0 + ausgeliefert wird. Update Deine glibc auf die aktuellste + RedHat-Version f�r v5.0/Hurricane. Alle Versionen vor glibc-2.9.7 + scheinen dieses Problem zu haben. + + 1.22) Warum bekomme ich keine shared libraries f�r libpq, wenn ich Version + 6.3.2 kompiliere? + + Es gab eine Last-Minute-�nderung der Linux-Konfiguration f�r Version + 6.3.2. Siehe f�r einige Fehlerbehebungen und einen Linux-ELF-Patch in + ftp://postgresql.org/pub/patches/ nach. + + 1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, da� F_BOOLIN, + F_BOOLOUT und F_BYTEAIN nicht deklariert seien? + + Die komplette Meldung sieht ungef�hr so aus: + -I/usr/include/readline -O2 -Wall -Wmissing-prototypes -I.. + -Wno-error -c bootstrap.c -o bootstrap.o + bootstrap.c:160: `F_BOOLIN' undeclared here (not in a function) + bootstrap.c:160: initializer element for `Procid[0].inproc' is not + constant + bootstrap.c:160: `F_BOOLOUT' undeclared here (not in a function) + bootstrap.c:160: initializer element for `Procid[0].outproc' is not + constant + bootstrap.c:161: `F_BYTEAIN' undeclared here (not in a function) + bootstrap.c:161: initializer element for `Procid[1].inproc' is not + constant + + Solange Du nicht wei�t, warum das passiert, ist dieses Problem + ziemlich kniffelig, da diese Konstanten anscheinend nirgendwo + definiert werden. + + Die L�sung ist daf�r zu sorgen, da� der cpp in Deinem Pfad erreichbar + ist, bevor make gestartet wird. + + Auf Redhat 5.1, ist cpp in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3 + + Abschnitt 2: Hilfs- und Zusatzprogramme kompilieren + + 2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh kompiliert + werden soll. + + F�ge folgende Zeile in src/Makefile.custom hinzu: +X11_LIBDIR = /usr/X11R6/lib + + Abschnitt 3: Laufzeit Probleme + + 3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined, wenn + Skripts wie createuser laufen. + + Das ist ein Fehler in Versionen 1.06-1.07 und ist ab Version 1.08 und + h�her behoben. + + 3.2) Nachdem ich postmaster starte, meldet das System Bad system call (Core + dumped) + + Diese Fehlermeldung deutet an, da� Du keinen Shared-Memory-Support in + den Kernel einkompiliert hast. Der Kernel mu� mit dieser Option neu + kompiliert werden, um diese Eigenschaft hinzuzuf�gen. + + 3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine + Fehlermeldung wie: + Failed Assertion("!(file != 0):(null)", File: + "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257) + !(file != 0) (0) + initdb: could not create template database + initdb: cleaning up. + + Deine Berechtigungen f�r die Datei /dev/null sind falsch gesetzt. ein + ls -l /dev/null sollte folgende Ausgabe zeigen: +crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null + + Korrigiere die Berechtigungen mit: +chmod a+rw /dev/null + + 3.4) Warum funktioniert createuser nicht? + + Es gibt ein Problem mit Version 2.5.3 des GNU flex und createuser. Die + M�glichkeiten, diesen Fehler zu beheben sind: Entweder auf die + flex-Version 2.5.3 zu gehen, auf Version 2.5.4 zu gehen, oder den + Patch nach doc/README.flex einzuspielen. + + Die Version 2.5.4. gibt es unter + ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz. + + 3.5) Wieso bekomme ich einen Fehler, wie: + IpcMemoryCreate: memKey=155356396 , size=760632 , + permission=384IpcMemoryCreate: shmget(..., create, ...) + failed: Invalid argument + + Du hast keine IPC-Unterst�tzung in Deinen Linux-Kernel einkompiliert. + Der Kernel mu� mit dieser Option neu kompiliert werden, um diese + Eigenschaft hinzuzuf�gen. + + 3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library + 'libpq.so.1 + + Psql wurde mit dynamischen Zugriff auf die libpq-bibliothek + kompiliert. Um dieses Problem zu l�sen, solltest Du Dich als root + anmelden und die Datei /etc/ld.so.conf editieren. F�ge eine Zeile am + Ende hinzu, die den Namen des PostgreSQL-Bibliotheken-Verzeichnis + enth�lt (das lib-Verzeichnis im PostgreSQL-Installationsverzeichnis) + und rufe den Befehl /sbin/ldconfig -v auf. Alternativ (und falls Du + keinen root-Zugriff hast) kannst Du die LD_LIBRARY_PATH-Variable + benutzen. Die LD_LIBRARY_PATH-Variable enth�lt eine durch Doppelpunkt + getrennte Liste mit Suchpfaden f�r Shared-Bibliotheken. Diese Liste + wird durchsucht, bevor auf die Informationen von ldconfig zugegriffen + wird. Unter der bash sieht das ganze so aus: +export LD_LIBRARY_PATH='PathToPGSQL'/lib + + unter der tcsh so: +setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib + + wobei 'PathToPGSQL' das Installationsverzeichnis von PostgreSQL ist. + Hinweis: der ldd-Befehl dient dazu, sich die dynamischen Bibliotheken + f�r eine bestimmte ausf�hrbare Datei anzeigen zu lassen. + + 3.7) Andere seltsame Verhaltensweisen + + Ich bin mir nicht sicher, welche Symptome alle auftreten k�nnen, au�er + da� gar nichts richtig funktioniert, aber es stellte sich heraus, da� + man sorgsam darauf achten sollte, da� die richtige Version der + libpq-Bibliothek geladen wird. Falls Du alte Versionen in Deinem + Bibliothekspfad hast (z.B. in /usr/lib) k�nnen diese statt der neueren + Version geladen werden. Schaffe diese alten Versionen beiseite und + siehe im �brigen Frage 3.6 f�r weitere Details bez�glich dem Laden von + Bibliotheken. + + 3.8) Wenn PostgreSQL beim Systemhalt lief, f�hrt Linux beim Neustart + jedesmal einen Filesystemcheck (fsck) durch + + Es gab dar�ber einige Berichte und es scheint, da� dies passiert, wenn + PostgreSQL von der /etc/inittab gestartet wird, wie im + INSTALL-Dokument beschrieben. + + Deshalb wird Dir empfohlen, den postmaster von einem rc-Skript aus zu + starten. Unter einem Slackware-artigem System w�rdest Du + /etc/rc.d/rc.local modifizieren, um den postmaster zu starten. + + Unter RedHat-artigen Systemen w�rdest Du ein SysV-artiges Skript in + /etc/rc.d/rc3.d basierend auf der /etc/rc.d/init.d Schablonen-Datei + erstellen. + + Es gibt eine Beispieldatei unter dem Verzeichnis + contrib/linux/postgres.init. + + Hier ist noch ein anderes Beispiel von John Robinson welches Du + entsprechend anpassen kannst. +#!/bin/sh +# +# postgreSQL.init This shell script takes care of starting and stopping +# the PostgreSQL postmaster. +# + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +# See how we were called. +case "$1" in + start) + # Start daemons. + echo -n "Starting postgres Postmaster daemon:" + if [ -z "`pidofproc postmaster`" ] + then + su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgr +eSQL/data -p 5432 &" + echo -n " postmaster" + else + echo -n " (already running)" + fi + echo + touch /var/lock/subsys/postgres + ;; + stop) + # Stop daemons. + echo -n "Shutting down postgres Postmaster daemon: " + killall -TERM postmaster 2>/dev/null + killall -TERM postgres 2>/dev/null + echo + rm -f /var/lock/subsys/postgres + ;; + *) + echo "Usage: postgres {start|stop}" + exit 1 +esac + +exit 0 + + 3.9) Warum dauert Query 32 in den RegressionsTests so lange? + + Das passiert wegen eines Fehlers in den Regressions-Skripten auf + Linux-Kisten. Es gibt - soweit ich wei� - zwei M�glichkeiten, diese + Fehler zu umgehen (die Information stammt von Tatsuo Ishii): + + 1. �ndere folgende Zeile in regress.sh: +time postgres -texecutor -tplanner -Q bench < bench.sql + + in +postgres -texecutor -tplanner -Q bench < bench.sql + + 2. nachdem der Test gelaufen ist, entferne eine Zeile ganz am Ende der + Datei bench.out, die ungef�hr so aussieht: +85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k + + dann gib folgendes auf der Befehlszeile ein: +sh ./perquery < bench.out > & bench.out.perquery + + 3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen + Datums/Zeit-Berechnungen, wie: + select '4 hours'::timespan; + liefert '3 hours 59 minutes 60 seconds'? + + Du benutzt neue glibc2-Bibliotheken in einer Version kleiner als + 2.0.7. Das ist ein mathematisches Rundungsproblem. Aktualisiere Deine + Bibliothek. + + 3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget failed + (Permission denied)? + + Im Detail erscheint der Fehler mit dieser Meldung: +In detail, a message like this may appear: +IpcMemoryCreate: shmget failed (Permission denied) +key=5432010, size=120, permission=700 +IpcMemoryAttach: shmat failed (Permission denied) id=0 +FATAL 1: AttachSLockMemory: could not attach segment + + Dieser Fehler wird durch nicht gel�schte Segmente im shared memory + verursacht. (Du kannst sie mit dem Programm ipcs sehen. Benutze das + Programm ipcrm, um sie zu l�schen. + _________________________________________________________________ + + Author of the english version + Dr. Andrew C.R. Martin University College London + EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) + andrew@stagleys.demon.co.uk + URL: http://www.biochem.ucl.ac.uk/~martin + Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775 + + Translator of the german version + Karsten Schulz Linux Systemhaus Schulz + EMAIL: (Work) schulz@Linux-Systemhaus.de (Home) kaschu@t800.ping.de + URL: http://www.Linux-Systemhaus.de/ + Tel: (Work) +49 231 3944432 (Fax) +49 231 3944435 |