aboutsummaryrefslogtreecommitdiff
path: root/doc/FAQ_Linux_German
blob: 5f95280d9b8f6288461c4a842617c71adb8dc8ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
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