diff options
Diffstat (limited to 'doc/src/FAQ/FAQ_linux_german.html')
-rw-r--r-- | doc/src/FAQ/FAQ_linux_german.html | 748 |
1 files changed, 0 insertions, 748 deletions
diff --git a/doc/src/FAQ/FAQ_linux_german.html b/doc/src/FAQ/FAQ_linux_german.html deleted file mode 100644 index 4f32472430f..00000000000 --- 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> |