diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2000-08-26 19:34:24 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2000-08-26 19:34:24 +0000 |
commit | 09b1576430b80b33919e884c5bbc2c0abfe0af64 (patch) | |
tree | b5802a904bb6970b7f76caf67c84f10c31225374 | |
parent | ed0b3f2d99b8b8d20dd777bf58a974a9a095a2c7 (diff) | |
download | postgresql-09b1576430b80b33919e884c5bbc2c0abfe0af64.tar.gz postgresql-09b1576430b80b33919e884c5bbc2c0abfe0af64.zip |
Update platform FAQs
-rw-r--r-- | doc/FAQ_DigitalUnix | 103 | ||||
-rw-r--r-- | doc/FAQ_FreeBSD | 36 | ||||
-rw-r--r-- | doc/FAQ_HPUX | 41 | ||||
-rw-r--r-- | doc/FAQ_Irix | 397 | ||||
-rw-r--r-- | doc/FAQ_Linux | 710 | ||||
-rw-r--r-- | doc/FAQ_Linux_German | 752 | ||||
-rw-r--r-- | doc/FAQ_Linux_Italian | 0 | ||||
-rw-r--r-- | doc/FAQ_SCO | 103 | ||||
-rw-r--r-- | doc/FAQ_Solaris | 88 | ||||
-rw-r--r-- | doc/src/sgml/runtime.sgml | 9 |
10 files changed, 26 insertions, 2213 deletions
diff --git a/doc/FAQ_DigitalUnix b/doc/FAQ_DigitalUnix deleted file mode 100644 index 1671f290cde..00000000000 --- a/doc/FAQ_DigitalUnix +++ /dev/null @@ -1,103 +0,0 @@ -======================================================= -Frequently Asked Questions (FAQ) for PostgreSQL V6.4.1 -FreeBSD Specific -TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ -======================================================= -last updated: Mon Dec 14 17:26:03 CET 1998 - -current maintainer: Pedro J. Lobo (pjlobo@euitt.upm.es) -original author: Pedro J. Lobo (pjlobo@euitt.upm.es) - -This FAQ covers issues that are specific for PostgreSQL running on Digital -Unix (formerly known as DEC OSF/1). Please check the global FAQ for questions -not specific to this platform. - -Changes in this version (* = modified, + = new, - = removed): - -This file is divided approximately as follows: - -1.*) Installing PostgreSQL - -1.1.*) Compiling PostgreSQL - -1.2.*) Running the regression tests - - -Questions answered: -1.1.1) I can't compile PostgreSQL with gcc. - -1.1.2) DEC C dies with an internal error when optimization is - enabled (-O flag). - -1.2.1) The regression tests fail for char, varchar, select_implicit, - select_having and rules. - -1.2.2) The regression tests fail for abstime, tinterval and horology. - -1.2.3) The regression tests fail for geometry. - -1.2.4) The regression tests fail for inet. - ----------------------------------------------------------------------- -Section 1: Installing PostgreSQL ----------------------------------------------------------------------- - -Section 1.1: Compiling PostgreSQL ------------------------------------- - -1.1.1) I can't compile PostgreSQL with gcc. - - Me too O:-) I tried to compile it with gcc 2.7.2.1 without - success. However, I've found that DEC C works much better than - gcc for alphas, and so I didn't make any effort to find out - why gcc fails. If you succedd on this task, please take the - time to update this section (see http://www.postgresql.org for - the details on how to do this). - -1.1.2) The DEC C compiler dies with an internal error when optimization is - enabled (-O flag). - - I've seen this happening on 3.2c and 3.2g systems, and only on - one of the source files (can't remember exactly which one). - The workaround was to compile the offending module without - optimization by hand, and re-running gmake to let the process - continue. - - It doesn't happen on 4.0d systems (mine at least). Don't know - about earlier 4.0 versions. - -Section 1.2: Running the regression tests --------------------------------------------- - -1.2.1) The regression tests fail for char, varchar, select_implicit, - select_having and rules. - - This only happens when you enable locale support, and is due - to a bug in the system's locale libraries. The problem is - that strcoll("Axxx", "axxx") returns a value greater than - zero instead of lower, which is how it should be. - - This isn't a great problem unless you (or your application) - relies on upper-case letters being considered "smaller" than - lower-case for ordering purposes. Otherwise, you will only - notice that the ordering between upper-case and lower-case - letters is reversed. - -1.2.2) The regression tests fail for abstime, tinterval and horology. - - I think that these failures are due to some inconsistencies - in time zone handling in some years near 1950, in which case - the problem would be in the operating system's time zone - libraries. Recent dates seem to work as expected, but I can't - assure it. - -1.2.3) The regression tests fail for geometry. - - These are (small) rounding errors that shouldn't affect any - application (but could do, who knows). - -1.2.4) The regression tests fail for inet. - - Yes, they do. You must consider the inet type broken for - Digital Unix. - diff --git a/doc/FAQ_FreeBSD b/doc/FAQ_FreeBSD deleted file mode 100644 index 386ad5ca02b..00000000000 --- a/doc/FAQ_FreeBSD +++ /dev/null @@ -1,36 +0,0 @@ -======================================================= -Frequently Asked Questions (FAQ) for PostgreSQL V6.2.1 -FreeBSD Specific -TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ -======================================================= -last updated: Tue Jan 06 22:26:00 EST 1998 - -current maintainer: Marc G. Fournier (scrappy@postgresql.org) -original author: Marc G. Fournier (scrappy@postgresql.org) - - -Changes in this version (* = modified, + = new, - = removed): - -This file is divided approximately as follows: -1.*) Installing PostgreSQL - - -Questions answered: -1.1) Everything compiles fine. Attempts to run the regression - tests make the postmaster die with an illegal system call - error. - ----------------------------------------------------------------------- -Section 1: Installing PostgreSQL ----------------------------------------------------------------------- - -1.1) Everything compiles fine. Attempts to run the regression - tests make the postmaster die with an illegal system call - error. - - You must reconfigure and install your kernel with the following - options enabled: - - options SYSVSHM - options SYSVSEM - options SYSVMSG diff --git a/doc/FAQ_HPUX b/doc/FAQ_HPUX index 5f2af1dbe97..60b57123a11 100644 --- a/doc/FAQ_HPUX +++ b/doc/FAQ_HPUX @@ -1,9 +1,9 @@ ======================================================= -Frequently Asked Questions (FAQ) for PostgreSQL V6.5 +Frequently Asked Questions (FAQ) for PostgreSQL 7.1 HP-UX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= -last updated: Sun May 23 19:48:07 EDT 1999 +last updated: $Date: 2000/08/26 19:34:24 $ current maintainer: Tom Lane (tgl@sss.pgh.pa.us) original author: Tom Lane (tgl@sss.pgh.pa.us) @@ -55,36 +55,25 @@ than 6.4. 1.2) Anything special about the build/install procedure? -When you run configure, you will want to explicitly select either the -hpux_cc or hpux_gcc template depending on which compiler you plan to -use: - ./configure --with-template=hpux_cc +If you have both HP's C compiler and GCC's, then you might want to +explicitly select the compiler to use when you run `configure': + CC=cc ./configure for HP's C compiler, or - ./configure --with-template=hpux_gcc -for GNU gcc. (If you omit --with-template, configure may either -default to hpux_cc or give up entirely, depending on which HPUX and -PostgreSQL releases you have.) - -You may want to tweak the CFLAGS setting in template/hpux_[g]cc before -you configure. The distributed copy of hpux_cc contains neither -O nor -g -switches, which is hardly optimal for any situation. As of Postgres 6.5, -hpux_gcc sets CFLAGS to -O2, which is fine unless you want to do debugging; -in that case you may want -g as well (or instead). + CC=gcc ./configure +for GCC. If you omit this setting then configure will pick gcc. The default install target location is /usr/local/pgsql, which (particularly on HPUX 10) you might want to change to something under /opt. If so, use the --prefix switch to configure. -If you have both HP and GNU C++ compilers in your PATH, keep an eye on -whether configure picks the right one --- you want the HP c++ if you are -using HP C, or g++ if you are using gcc. Mixing HP and GNU compilers -won't work. You may need to provide a --with-CXX=compiler switch to -force configure to pick the matching C++ compiler, or even say ---without-CXX if you have a C++ compiler but it doesn't match the C -compiler you want to use. - -Otherwise the standard build/install procedure described in the -PostgreSQL documentation works fine. +If you want to build the C++ client library (libpq++) then you need +to use a C++ compiler from the same source as the C compiler; mixing +HP and GNU compilers doesn't work. If you have both C++ compilers +in your PATH, keep an eye on whether configure picks the right one. +To override the choice, set the environment variable CXX: + CC=gcc CXX=g++ ./configure +or + CC=cc CXX=aCC ./configure 1.3) yacc dies trying to process src/backend/parser/gram.y. diff --git a/doc/FAQ_Irix b/doc/FAQ_Irix deleted file mode 100644 index cad9199ce29..00000000000 --- a/doc/FAQ_Irix +++ /dev/null @@ -1,397 +0,0 @@ -====================================================== -Frequently Asked Questions (FAQ) for PostgreSQL >=V6.1 -IRIX Specific -TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ -====================================================== -last updated: Mon Mar 05 17:00:00 GMT 1998 - -current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) -original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) - - -Changes in this version (* = modified, + = new, - = removed): -*1.5) Can I install PostgreSQL () - -*** ./backend/Makefile.orig Thu May 22 00:00:15 1997 ---- ./backend/Makefile Thu Jun 5 16:47:27 1997 -*************** -*** 54,60 **** - all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source - - postgres: $(OBJS) ../utils/version.o -! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) - - $(OBJS): $(DIRS:%=%.dir) - ---- 54,64 ---- - all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source - - postgres: $(OBJS) ../utils/version.o -! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) -! -rm -f *.o -! find . -name "*.o" -exec cp \{\} . \; -! rm -f SUBSYS.o -! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS) - - $(OBJS): $(DIRS:%=%.dir) - - - - -1.6) The make fails with the following message: - ld32: ERROR 4: Conflicting flag setting: -call_shared - - If gmake fails in .../src/backend while building obj/ACCESS.o - with a message from ld32, you can work around this by using - ld for the LD environment variable rather than cc. - - The problem has been observed under Irix 5.3 when compiling both - Postgres95-1.09 and PostgreSQL-6.2Beta6, but on some systems - these appear to compile with no such problems. - - Fix supplied by Brian Sanders (bsanders@netcom.com, - brian@fresnelsoft.com) - - -1.7) Why won't it link? (Problems with lorder) - - According to the IRIX man pages, lorder is useless, but harmless - under IRIX. However, it has caused problems for some people - using both IRIX 6.2. - - The solution is to add the following line to - .../src/makefiles/Makefile.irix5 - - MK_NO_LORDER=true - - -1.8) I have major problems with IRIX 6! - - The following is quoted directly from Bob Bruccoleri - -There is a really nasty loader bug in the compiler system (7.1) -on Irix 6.x, and the error that Lasse Petersen is the result of it. -Here is the original message. I don't know if all the changes have been -folded into the current release. - -Date: Fri, 06 Jun 1997 17:12:20 -0400 (EDT) -From: bruc@bms.com (Robert Bruccoleri) -Subject: [PORTS] Patches for Irix 6.4 - -I have worked out how to compile PostgreSQL on Irix 6.4 using the -n32 compiler -mode and version 7.1 of the C compiler. (The n32 compiler use 32 bits addressin -g, -but allows access to all the instructions in the MIPS4 instruction set.) -There were several problems: - -1) The ld command is not referenced as a macro in all the Makefiles. On -this platform, you have to include -n32 on all the ld commands. Makefiles -were changed as needed. - -2) There is a bug in "ld" which mishandles the addresses of static procedures -when object files are assembled into larger object files using "ld -r". -Because of this, I put a hack into src/backend/Makefile to avoid all the -SUBSYS.o files and just link all the objects. I have contacted SGI about the -problem, and hopefully, it will be fixed in the near future. - -3) Lots of warnings are generated from the compiler. Since the regression -tests worked OK, I didn't attempt to fix them. If anyone wants the compilation -log, please let me know, and I'll email it to you. - -The version of postgresql was 970602. Here is Makefile.custom: - -CUSTOM_COPT = -O2 -n32 -MK_NO_LORDER = 1 -LD = ld -n32 -CC += -n32 - -Here are the patches: - -*** ./backend/access/Makefile.orig Sun Nov 10 00:00:15 1996 -- --- ./backend/access/Makefile Tue Jun 3 10:22:32 1997 -*************** -*** 8,13 **** -- --- 8,16 ---- - # - #------------------------------------------------------------------------- - -+ SRCDIR = ../.. -+ include ../../Makefile.global -+ - OBJS = common/SUBSYS.o gist/SUBSYS.o hash/SUBSYS.o heap/SUBSYS.o \ - index/SUBSYS.o rtree/SUBSYS.o nbtree/SUBSYS.o transam/SUBSYS.o - - -*** ./backend/bootstrap/Makefile.orig Fri Apr 18 06:00:23 1997 -- --- ./backend/bootstrap/Makefile Tue Jun 3 10:23:59 1997 -*************** -*** 38,44 **** - all: SUBSYS.o - - SUBSYS.o: $(OBJS) -! ld -r -o SUBSYS.o $(OBJS) - - # bootstrap.o's dependency on bootstrap_tokens.h is computed by the - # make depend, but we state it here explicitly anyway because -- --- 38,44 ---- - all: SUBSYS.o - - SUBSYS.o: $(OBJS) -! $(LD) -r -o SUBSYS.o $(OBJS) - - # bootstrap.o's dependency on bootstrap_tokens.h is computed by the - # make depend, but we state it here explicitly anyway because - -*** ./backend/Makefile.orig Thu May 22 00:00:15 1997 -- --- ./backend/Makefile Thu Jun 5 16:47:27 1997 -*************** -*** 54,60 **** - all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source - - postgres: $(OBJS) ../utils/version.o -! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) - - $(OBJS): $(DIRS:%=%.dir) - -- --- 54,64 ---- - all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source - - postgres: $(OBJS) ../utils/version.o -! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) -! -rm -f *.o -! find . -name "*.o" -exec cp \{\} . \; -! rm -f SUBSYS.o -! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS) - - $(OBJS): $(DIRS:%=%.dir) - -*************** -*** 116,122 **** - install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\ - global1.bki.source local1_template1.bki.source \ - libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample -! - $(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres - ifeq ($(MAKE_EXPORTS), true) - $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP) -- --- 120,126 ---- - install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\ - global1.bki.source local1_template1.bki.source \ - libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample -! - $(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres - ifeq ($(MAKE_EXPORTS), true) - $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP) - -*** ./backend/optimizer/Makefile.orig Wed Feb 19 12:00:34 1997 -- --- ./backend/optimizer/Makefile Tue Jun 3 10:39:47 1997 -*************** -*** 8,13 **** -- --- 8,16 ---- - # - #------------------------------------------------------------------------- - -+ SRCDIR= ../.. -+ include ../../Makefile.global -+ - all: submake SUBSYS.o - - OBJS = path/SUBSYS.o plan/SUBSYS.o prep/SUBSYS.o util/SUBSYS.o geqo/SUBSYS.o - -*** ./backend/libpq/pqcomprim.c.orig Mon May 26 00:00:23 1997 -- --- ./backend/libpq/pqcomprim.c Fri Jun 6 16:02:24 1997 -*************** -*** 32,40 **** - # define hton_l(n) (ntoh_l(n)) - # else /* BYTE_ORDER != BIG_ENDIAN */ - # if BYTE_ORDER == PDP_ENDIAN -! # #error PDP_ENDIAN macros not written yet - # else /* BYTE_ORDER != anything known */ -! # #error BYTE_ORDER not defined as anything understood - # endif /* BYTE_ORDER == PDP_ENDIAN */ - # endif /* BYTE_ORDER == BIG_ENDIAN */ - #endif /* BYTE_ORDER == LITTLE_ENDIAN */ -- --- 32,40 ---- - # define hton_l(n) (ntoh_l(n)) - # else /* BYTE_ORDER != BIG_ENDIAN */ - # if BYTE_ORDER == PDP_ENDIAN -! # error PDP_ENDIAN macros not written yet - # else /* BYTE_ORDER != anything known */ -! # error BYTE_ORDER not defined as anything understood - # endif /* BYTE_ORDER == PDP_ENDIAN */ - # endif /* BYTE_ORDER == BIG_ENDIAN */ - #endif /* BYTE_ORDER == LITTLE_ENDIAN */ - -*** ./backend/storage/Makefile.orig Sun Nov 10 00:01:06 1996 -- --- ./backend/storage/Makefile Tue Jun 3 10:41:29 1997 -*************** -*** 8,13 **** -- --- 8,16 ---- - # - #------------------------------------------------------------------------- - -+ SRCDIR= ../.. -+ include ../../Makefile.global -+ - all: submake SUBSYS.o - - OBJS = buffer/SUBSYS.o file/SUBSYS.o ipc/SUBSYS.o large_object/SUBSYS.o \ - - - - -1.9) Why does lex fail with PostgreSQL 6.2.1? - - IRIX 5.3 lex has been reported to fail in - postgresql-6.2.1/src/backend/parser with the error: - - lex scan.l - "scan.l":line 86: Error: Invalid request %x xc - gmake[2]: *** [scan.c] Error 1 - - The answer is to use GNU flex 2.5.4 or later. Use the command - flex --version - to check you have a new enough version of flex - - -1.10) How do I install PostgreSQL V6.3 under Irix 6.x? - - Irix 6.2-6.4 has a bug in ld which mishandles the addresses of - static procedures when object files are assembled into - larger object files using 'ld -r'. This bug has been reported - to Silicon Graphics. - - Depending on your Irix installation you may also encounter - 2 other problems detailed below: Conflict in C standards, - Conflict in library functions. - - a) Solving the ld bug - --------------------- - - One option is to use the Gnu version of ld. Alternatively, - the following patch should be applied as a workaround. - (Supplied by Bob Bruccoleri and modified for - PostgreSQL V6.3 by Lasse Hiller Petersen ) - - Apply the following patch: - -*** ./backend/Makefile.orig Tue Mar 3 15:33:58 1998 ---- ./backend/Makefile Tue Mar 3 15:39:27 1998 -*************** -*** 63,69 **** - global1.description -local1_template1.description - - postgres: $(OBJS) ../utils/version.o -! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) - - $(OBJS): $(DIRS:%=%.dir) - ---- 63,73 ---- - global1.description -local1_template1.description - - postgres: $(OBJS) ../utils/version.o -! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) -! -rm -f *.o -! find . -name "*.o" -exec cp \{\} . \; -! rm -f SUBSYS.o -! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS) - - $(OBJS): $(DIRS:%=%.dir) - - - - - Lasse configured with ./configure --enable-locale - and modified Makefile.custom to contain: -CC = cc -n32 -LD = ld -n32 - - He reports that the installation without -n32 works fine too, - but the -n32 was required for compatibility with his Perl - installation. His system was an Origin200 running IRIX64 v6.4. - - - b) Conflict in C standards - -------------------------- - - I have found that the following patch is also necessary in order - to prevent a duplicate definition of a Union used for semaphores. - Apply the following patch to: - .../src/makefile/Makefile.irix5: - -*** src/makefiles/Makefile.irix5.orig Thu Mar 5 16:59:58 1998 ---- src/makefiles/Makefile.irix5 Thu Mar 5 17:01:13 1998 -*************** -*** 6,9 **** - %.so: %.o - $(LD) -G -Bdynamic -shared -o $@ $< - -! ---- 6,9 ---- - %.so: %.o - $(LD) -G -Bdynamic -shared -o $@ $< - -! CFLAGS+= -U_NO_XOPEN4 - - i.e. the addition of the line: - CFLAGS+= -U_NO_XOPEN4 - - This is needed to stop the semun union being redefined in - /usr/include/sys/sem.h - - c) Conflict in library functions - -------------------------------- - - In addition, if you have the nsl and crypt libraries these will - conflict with the required definitions. I think that libnsl.a - may be the Netware socket library (or something similar). In - any case, if you have these libraries, they will be added to - Makefile.global and you will need to remove them. - - Thus, you should edit .../src/Makefile.global. Goto (approximately) - line 217 where LDFLAGS= is set and remove -lnsl and -lcrypt - from this line. - - ----------------------------------------------------------------------- -Section 2: Deinstalling PostgreSQL ----------------------------------------------------------------------- - -2.1) Why can't I move the executable files? - - By default, the IRIX port uses the BSD compatible version of - install from /usr/bin/X11. If you read the man page for this - version of install, you will see that it is not meant for - end-user use; it has the interesting side-effect of chowning - files it installs to root. - - You should still be able to delete the files as you (the - postgres user) will own the directory in which they are - stored. - - The normal IRIX install program cannot be used easily as it - takes its arguments in the reverse order. It is therefore - recommended to use the GNU version of install (ginstall). - See Question 1.4 - - ----------------------------------------------------------------------- -Section 3: Extending PostgreSQL ----------------------------------------------------------------------- -3.1) How do I compile a C program to create a function for extending - PostgreSQL - - Here is a sample command line: - - cc -I/usr/local/PostgreSQL/include/ -I/usr/local/PostgreSQL/src/backend - - -shared -o funcs.so funcs.c - - ----------------------------------------------------------------------------- -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 diff --git a/doc/FAQ_Linux b/doc/FAQ_Linux deleted file mode 100644 index d2cbdf2a6fe..00000000000 --- a/doc/FAQ_Linux +++ /dev/null @@ -1,710 +0,0 @@ - -======================================================= -Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1 -Linux Specific -TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ -======================================================= -last updated: Fri Jun 19 13:35:00 BST 1998 - -current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) -original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) - - -Changes in this version (* = modified, + = new, - = removed): - -+1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT - and F_BYTEAIN being undeclared? - -This file is divided approximately as follows: -1.*) Installing PostgreSQL -2.*) Compiling accessory programs -3.*) Runtime Problems - - -Questions answered: -1.1) What changes do I need to make to src/Makefile.global or - src/Makefile.custom and are there any other changes needed? -1.2) Why do I get problems with missing libreadline? -1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h? -1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? -1.5) My compile of the backend dies complaining about the include file - dlfcn.h missing -1.6) GCC complains about an ignored option -fpic -1.7) I get warnings of the form - warning: cast from pointer to integer of different size -1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap? -1.9) Why do I get problems with ld.so? -1.10) Why do I get `yy_flush_buffer undefined' errors? -1.11) How do I compile PostgreSQL on an a.out system? -1.12) Why does make fail with: - yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y - make: /usr/bin/make: cannot execute binary file -1.13) What are the references in X11_LIB to libsocket and libnsl in - src/Makefile.global? -1.14) [DEBIAN] Where is libtermcap? -1.15) [REDHAT] Can I get PostgreSQL as an RPM? -1.16) While trying to compile a development version under Linux, compilation - fails with a message like: - In file included from /usr/include/sys/sem.h:8, - from ipc.c:37: - /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi -t' - .... - make: *** [ipc.o] Error 1 -1.17) When compiling postgres, gcc reports signal 11 and aborts. -1.18) Can I install 6.1.1 under MkLinux? -1.19) Why does make exit or crash? -1.20) How can I optimise for 486 or pentium processors -1.21) Why do I get strange results with printing times (for example - in the regression test 'timespan')? -1.22) Why don't I get any shared libraries for libpq when I compile - 6.3.2? -1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT - and F_BYTEAIN being undeclared? -2.1) The linker fails to find libX11 when compiling pgtclsh -3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when - running scripts like createuser -3.2) I run postmaster and after that system says 'Bad system call(Core - dumped)' -3.3) When I try to start the Postmaster, why do I get an error of the form - 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) Why doesn't createuser work? -3.5) Why do I get an error like: - IpcMemoryCreate: memKey=155356396 , size=760632 , - permission=384IpcMemoryCreate: shmget(..., create, ...) - failed: Invalid argument -3.6) Why does psql fail with: - psql: can't load library 'libpq.so.1' -3.7) Other strange behaviour -3.8) When PostgreSQL is running when the system is shutdown, Linux - always fsck's the disk when rebooted. -3.9) Why does Query 32 in the regression tests take so long? -3.10) Why do I get funny rounding results in some date/time arithmetic, - such as - select '4 hours'::timespan; - returning '3 hours 59 minutes 60 seconds'? - ----------------------------------------------------------------------- -Section 1: Compiling PostgreSQL ----------------------------------------------------------------------- - -1.1) What changes do I need to make to src/Makefile.global or - src/Makefile.custom and are there any other changes needed? - - Changes to the makefiles are most easily made by running the - customize shell script in the src directory which will write a - Makefile.custom for you. - - The only other change you may have to make is to replace - Flex if you have version 2.5.3 which has a bug which generally - manifests itself as createuser failing (See Question 3.4) - - If you modify the makefiles by hand, you *must* set the - following variable: - PORTNAME= linux - - You will also need to change the following to match your own - installation: - POSTGRESDIR - - If you switch on the USE_TCL option, you will need to set these: - TCL_INCDIR= - TCL_LIBDIR= - TCL_LIB= - TK_INCDIR= - TK_LIBDIR= - TK_LIB= - X11_INCDIR= - X11_LIBDIR= - X11_LIB= - - On my Slackware3.0 system, these are: - 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 - - You may also make any other changes you need as documented in - the INSTALL file and in Makefile.global - - -1.2) Why do I get problems with missing libreadline? - - Linux systems generally don't come with the GNU readline library - installed. Either ensure you do not activate the readline options - in src/Makefile.global or src/Makefile.custom or install the GNU - readline library. - - Note that Debian Linux (like FreeBSD) does come with readline - installed. - -1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h? - - This manifests itself as being unable to link with functions - such as dlopen(), dlclose(), etc. during the last phase of the - compilation. - - The libdl library is used for dynamic linking of user-supplied - functions at run-time. For some reason this library was missed out - from the Redhat distribution. It seems that the latest Redhat 4.0 - (Colgate) fixes this. - - RedHat now have a new ld.so RPM package on their FTP site. - Simply grab: - - ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1. -7.14-4.i386.rpm - - Install the RPM file in the usual way and off you go! - - NOTE! You will have to re-run configure and do a make clean - after installing the library and before recompiling. - - There has been one report of a corrupted system resulting from - programs accessing these libraries while updating them (not - altogether surprising). Consequently it is a good idea to reboot - the system before installing the new libraries and to - have as little running as possible during this upgrade. Going - into single-user mode is probably a good idea! - - If you want to do it the hard way, you can obtain the library and the - header file from: - - ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz - - Alternatively, you may find precompiled binaries in - distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb - on the same site, or follow the instructions given for question 1.2 for - correcting the same error with early releases of Slackware 3.1. - Don't use this method unless you know what you are doing! - - - -1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? - - This manifests itself as being unable to link with functions - such as dlopen(), dlclose(), etc. during the last phase of the - compilation. - - See the answer to question 1.3. Slackware up to version 3.0 was - supplied with this library and include file and they seem to be - back in again in the latest versions of 3.1, but the early 3.1 - releases (before 9th September 1996) had them missing and many - CD-ROM versions will have been pressed from the first 3.1 releases. - - There has been one report of a corrupted system resulting from - programs accessing these libraries while updating them (not - altogether surprising). Consequently it is a good idea to reboot - the system before installing the new libraries and to - have as little running as possible during this upgrade. Going - into single-user mode is probably a good idea! - - The easiest fix is to obtain the file ldso.tgz from the a4 disk of - a more recent Slackware distribution and unpack this file - from the root (/) directory, then do - - sh install/doinst.sh - - to complete the installation. Follow this with - - ldconfig - - NOTE! You will have to re-run configure and do a make clean - after installing the library and before recompiling. - - If you want to install manually, you must first install the file - dlfcn.h in /usr/include. - - Second, install the file libdl.so.1.7.14 (or whatever the latest - release is) in /lib, then do: - - cd /lib - ln -sf libdl.so.1.7.14 libdl.so.1 - ln -sf libdl.so.1 libdl.so - - On some systems (depending on your GCC configuration) it may be - necessary to do: - - cd /usr/lib - ln -sf /lib/libdl.so . - - Finally - - ldconfig - - NOTE! You will have to re-run configure and do a make clean - after installing the library and before recompiling. - - -1.5) My compile of the backend dies complaining about the include file - dlfcn.h missing - - See the answer to question 1.3/1.4. Don't forget that if you are using - an a.out system you must first have installed the dld package - (which is not supplied with most a.out systems) to have dlfcn.h - at all. See Question 1.11. - - -1.6) GCC complains about an ignored option -fpic - - Earlier versions of GCC accepted either -fpic or -fPIC. - It appears that more recent versions (V2.7.2?) require -fPIC. - If you are using an ELF version of Linux, this can safely be - ignored as -fPIC is the default. - - You can correct this by editing src/Makefile.global and - changing CFLAGS_SL - - -1.7) I get warnings of the form - warning: cast from pointer to integer of different size - - These were seen in earlier versions of Postgres95 and could - safely be ignored. PostgreSQL V6.0 should compile with no warnings - except those related to system header files (which can also - be safely ignored). - -1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap? - - SuSE-Linux 4.2 has ncurses but not curses. 4.4 appears to have both. - SuSE-Linux also has the termcap library is in /usr/lib/termcap - instead of in /usr/lib. - - PostgreSQL (up to V6.0) - ----------------------- - Set the value of CURSES_LIB in src/Makefile.custom to -lncurses - (or do this through the customize script). - Add the following line to src/Makefile.custom: - - LDADD_BE+= -L/usr/lib/termcap - - You may need to edit src/bin/psql/Makefile and change: - ifeq ($(PORTNAME), linux) - LD_ADD+= - to: - ifeq ($(PORTNAME), linux) - LD_ADD+= -ltermcap - - PostgreSQL (V6.1) - ----------------- - The configure script doesn't know to look in /usr/lib/termcap for - the termcap library, so you should specify this as one of the - library directories when asked for additional directories to - search. - - If this doesn't work (I don't have SuSE to verify that it does) - then after running configure, you need to edit - src/Makefile.global and add -ltermcap to the LDFLAGS line - (after -lreadline). (Alternatively, you can modify - src/Makefile.custom before running configure.) - - Some versions of SuSE provide only ncurses, so you may need - to force use of ncurses rather than curses by changing - -lcurses to -lncurses. (Reported true for SuSE 5.1) - - -1.9) Why do I get problems with ld.so? - - If you get problems with ld.so, another library required under - ELF for dynamic loading, then you have messed up your installation - or (more likely) upgrade of Linux. - - See the answers to Question 1.3/1.4. You may need to install - ld.so.x.y.z in /lib and run ldconfig. - - The most recent stable release of the ld package is 1.7.14 - At the time of writing, 1.8.x versions of ld are experimental. - -1.10) Why do I get `yy_flush_buffer undefined' errors? - - This isn't really Linux specific, but is common on older Linux - installations. You must have a recent version of flex (2.5.2 or later) - to compile PostgreSQL. Note that flex 2.5.3 has a bug: see - Question 3.4. - -1.11) How do I compile PostgreSQL on an a.out system? - - First, you must install the dld library. This may be obtained - from Sunsite as: - Linux/libs/dld.3.2.7.tar.gz - (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz) - - Second, add the following line to src/Makefile.custom: - LINUX_ELF= - (or use the customize script) - -1.12) Why does make fail with: - yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y - make: /usr/bin/make: cannot execute binary file - - This was a problem in earlier versions of Postgres95. The default - for PostgreSQL is to use bison -y rather than yacc. - - yacc is generally implemented as a script which invokes bison -y - For some reason (certain versions of make? certain versions of - bash?) make is unable to execute this script file. - - To correct this, simply edit src/mk/port/postgres.mk.linux - and, at the end of the file, change: - # YACC = bison -y - to - YACC = bison -y - -1.13) What are the references in X11_LIB to libsocket and libnsl in - src/Makefile.global? - - This was a problem in 1.08 (they are Sun Solaris specific). - It is fixed in 1.09 and 6.0 - -1.14) [DEBIAN] Where is libtermcap? - - Debian Linux comes without the termcap library and uses ncurses - (which uses terminfo instead). There is no need to change the - CURSES_LIB variable in src/bin/psql/Makefile since Debian provides - a link from libncurses to libcurses (unlike SuSE-Linux --- see - Question 1.8). - - You may need to edit src/bin/psql/Makefile and comment out the - change: - ifeq ($(PORTNAME), linux) - LD_ADD+= -ltermcap - to: - ifeq ($(PORTNAME), linux) - LD_ADD+= - - -1.15) [REDHAT] Can I get PostgreSQL as an RPM? - - Yes! Michal Mosiewicz - (http://www.pdi.lodz.pl/~mimo) has kindly put together an RPM - for PostgreSQL V6.0 on Intel architectures which he has uploaded to - ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm - - This is a pre-compiled version, the source RPM is on its - was as I write (3rd Feb 1997). - -1.16) While trying to compile a development version under Linux, compilation - fails with a message like: - In file included from /usr/include/sys/sem.h:8, - from ipc.c:37: - /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi -t' - .... - make: *** [ipc.o] Error 1 - - The problem is that Linux provides no prototypes for these - inline functions. The solution is to go into the - .../src/backend/storage/ipc directory and edit the Makefile. - Change the line - CFLAGS+=$(INCLUDE_OPT) - to - CFLAGS+=$(INCLUDE_OPT) -Wno-error - - Do the same in the ../src/backend/storage/lmgr directory. - -1.17) When compiling postgres, gcc reports signal 11 and aborts. - More specifically: - gcc: Internal compiler error: program cc1 got fatal - signal 11 - - This may be a hardware/memory problem. PortgreSQL is a big - program, and large gcc compilations (such as building - PostgreSQL or bebuilding the kernel) stress memory like - few other programs, resulting in errors that do not occur - in normal operation. Lesser operating systems are also - unlikely to stress the hardware to this degree so you - may never see any problems under DOS/Windows. - - More information on this problem at: - http://www.bitwizard.nl/sig11 - - From this Sig11 FAQ, there appears to be a specific problem - with Redhat 5.0 gcc running on Cyrix processors. See the - URL above for more details! - -1.18) Can I install 6.1.1 under MkLinux? - - Tatsuo Ishii has done this under - MkLinux DR2.1 update2 after a small patch available from: - ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz - -1.19) Why does make exit or crash? - - There have been a couple of reports of gmake either just - exiting early or seg faulting. The latter problem was reported - with gmake 3.74 - upgrading to 3.76.1 solved the problem. - However, 3.74 is known to work fine in other people's setups. - In short, try upgrading gmake to the latest version you can - find before reporting this as a problem - -1.20) How can I optimise for 486 or pentium processors - - The default compiler flags perform no optimisation for 486 - or Pentium processors. To add such optimisation, edit - Makefile.custom and add: - - CFLAGS+= -m486 - - or (for the new compilers that most people are not yet running) - - CFLAGS+= -mpentium - or - CFLAGS+= -mpentiumpro - -1.21) Why do I get strange results with printing times (for example - in the regression test 'timespan')? - The times are appearing as: '4 hours 59 mins 60.00 secs' - instead of '5 hours' - - This is a problem with the glibc2 library which comes with - Redhat 5.0. Update your glibc to the latest RedHat version - for v5.0/hurricane. Anything prior to glibc-2.0.7 is likely - to have the problem. - -1.22) Why don't I get any shared libraries for libpq when I compile - 6.3.2? - - There was some last minute breakage of the Linux configuration for - v6.3.2. Look in ftp://postgresql.org/pub/patches/ for a few fix-ups, - including a linux_elf patch. - -1.23) Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT - and F_BYTEAIN being undeclared? - - The actual messages are something like: - - -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 - - This is tricky unless you know why it happens, as these constants - don't seem to be defined anywhere. - - The solution is to make sure that cpp is included in your path - before you start the make. - - On Redhat 5.1, cpp is in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3 - - - ----------------------------------------------------------------------- -Section 2: Compiling accessory programs ----------------------------------------------------------------------- - -2.1) The linker fails to find libX11 when compiling pgtclsh - - Add the following to src/Makefile.custom - X11_LIBDIR = /usr/X11R6/lib - - ----------------------------------------------------------------------- -Section 3: Runtime Problems ----------------------------------------------------------------------- - -3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when - running scripts like createuser - - This is a bug in V1.06-V1.07 of Postgres and is fixed in V1.08 - and above. - -3.2) I run postmaster and after that system says 'Bad system call(Core - dumped)' - - This indicates that you have not compiled shared memory support - into your kernel. You need to recompile the Linux kernel to add this - feature. - - -3.3) When I try to start the Postmaster, why do I get an error of the form - 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. - - Your permissions on the file /dev/null are wrong. - - ls -l /dev/null should give you something like: - - crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null - - Correct the permissions using: - - chmod a+rw /dev/null - -3.4) Why doesn't createuser work? - - There is a problem with Version 2.5.3 of GNU flex and createuser. - Your options are to downgrade flex to V2.5.2, upgrade to V2.5.4 - or apply a patch to V2.5.3 which is supplied in doc/README.flex - You may obtain V2.5.4 from - ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz - -3.5) Why do I get an error like: - IpcMemoryCreate: memKey=155356396 , size=760632 , - permission=384IpcMemoryCreate: shmget(..., create, ...) - failed: Invalid argument - - You haven't build IPC support into your Linux kernel. You - will have to rebuild the kernel and switch on this option. - -3.6) Why does psql fail with: - psql: can't load library 'libpq.so.1' - - Psql has been compiled to link dynamically with the libpq - library. - - To solve this, you should log in as root and edit the file - /etc/ld.so.conf - Add a single line at the end which gives the name of the - PostgreSQL library directory (the lib subdirectory of your - PostgreSQL installation) and run - /sbin/ldconfig -v - - Alternatively, (and if you don't have root access), you may - use the LD_LIBRARY_PATH environment variable. - - The LD_LIBRARY_PATH variable contains a colon separated list of - paths to be searched for shared libraries. This list is - searched before the libraries specified by ldconfig. - - Therefore under Bash, you would do something like: - export LD_LIBRARY_PATH='PathToPGSQL'/lib - or, using tcsh - setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib - replacing 'PathToPGSQL' with the appropriate path to your top level - PostgreSQL directory - - Note that the ldd command can be used on a dynamically linked - executable to list the paths to all the shared libraries upon - which the executable depends. - - -3.7) Other strange behaviour - - I'm not sure what the symptoms might be except for nothing - working properly, but it has been pointed out that one needs - to be careful that the dynamic loader loads the correct version - of the libpq library. If you have old versions lying around - in your library path (for example in /usr/lib) these may get - loaded instead of the new version you intended to load. Make - sure you get them out of the way and look at Q3.6 for - details of loading libraries. - -3.8) When PostgreSQL is running when the system is shutdown, Linux - always fsck's the disk when rebooted. - - There have been some reports of this happening and it seems - to be a result of running PostgreSQL from /etc/inittab as - suggested in the INSTALL document. - - You are therefore recommended to start the postmaster from an - rc script. Under a Slackware-like release, you would modify - /etc/rc.d/rc.local to start the postmaster. Under a RedHat-like - release you should create a SysV style script in - /etc/rc.d/rc3.d based on the /etc/rc.d/init.d skeleton file. - - There's a sample file in contrib/linux/postgres.init - - Here's another sample file supplied by John Robinson - which you should modify as needed: - -#!/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) Why does Query 32 in the regression tests take so long? - - This is due to a bug in regression scripts which only happens - on linux boxes. There are two workarounds as far as I know - (information from Tatsuo Ishii ): - - 1. change following in regress.sh: - time postgres -texecutor -tplanner -Q bench < bench.sql - to: - postgres -texecutor -tplanner -Q bench < bench.sql - - 2. after running the test, remove a line at the very end of - bench.out something like: - 85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata - 0maxresident)k - then type: - sh ./perquery < bench.out > & bench.out.perquery - - - -3.10) Why do I get funny rounding results in some date/time arithmetic, - such as - select '4 hours'::timespan; - returning '3 hours 59 minutes 60 seconds'? - - You are running the new glibc2 libraries and have a version earlier tha -n - 2.0.7. It is a math rounding problem in the library. Upgrade your libra -ry. ----------------------------------------------------------------------------- -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 diff --git a/doc/FAQ_Linux_German b/doc/FAQ_Linux_German deleted file mode 100644 index 5f95280d9b8..00000000000 --- a/doc/FAQ_Linux_German +++ /dev/null @@ -1,752 +0,0 @@ - - Häufig gestellte Fragen (FAQ) zu PostgreSQL >= V6.1, Linux-spezifisch - - Bitte Zusammen mit der normalen FAQ lesen! - _________________________________________________________________ - - Letztes Update des Originals: Tue Aug 10 11:15:00 BST 1999 - Original-FAQ gepflegt durch: Andrew C.R. Martin - (martin@biochem.ucl.ac.uk) - Original Autor: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) - - Letztes Update der Übersetzung: Mo, 23. August 1999, 10:00 CEST - Übersetzer: Karsten Schulz (schulz@linux-systemhaus.de) - _________________________________________________________________ - - Änderungen in dieser Version (* = geändert, + = neu, - = entfernt) - - +3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget - failed (Permission denied)? - -Diese Datei ist ungefähr wie folgt unterteilt: - - 1.*) PostgreSQL kompilieren - 2.*) Hilfs- und Zusatzprogramme kompilieren - 3.*) Laufzeit Probleme - -Beantwortete Fragen: - - - - PostgreSQL kompilieren - - 1.1) Welche Anpassungen müssen in src/Makefile.global oder - src/Makefile.custom gemacht werden und gibt es weitere notwendige - Änderungen? - 1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline? - 1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek - libdl und der fehlenden dlfcn.h? - 1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden - Bibliothek libdl und der fehlenden dlfcn.h? - 1.5) Die Kompilierung des Backends schlägt mit der Meldung fehl, daß - die Include-Datei dlfcn.h fehlen würde. - 1.6) GCC meldet, daß er die Option -fpic ignorieren würde. - 1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer - of different size - 1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap? - 1.9) Warum bekomme ich Probleme mit ld.so? - 1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler? - 1.11) Wie kompiliere ich PostgreSQL auf einem a.out System? - 1.12) Warum scheitert make mit der Meldung: - yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make: - /usr/bin/make: cannot execute binary file - 1.13) Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und - libnsl in der Datei src/Makefile.global? - 1.14) [DEBIAN] Wo ist die Bibliothek libtermcap? - 1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen? - 1.16) Während ich versuche eine Entwickler-Version unter Linux zu - kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab: - In file included from /usr/include/sys/sem.h:8, - from ipc.c:37: - /usr/include/asm/bitops.h:32: warning: no previous prototype for - Set_bit' - .... - make: *** [ipc.o] Error 1 - 1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal - 11 Meldung ab. - 1.18) Kann ich Version 6.1.1 unter MkLinux installieren? - 1.19) Warum stoppt make oder bricht sonstwie ab? - 1.20) Wie kann ich für die Prozessoren 486 oder Pentium optimieren? - 1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten - (z.B. beim Regressionstest 'timespan')? - 1.22) Warum bekomme ich keine shared libraries für libpq, wenn ich - Version 6.3.2 kompiliere? - 1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, daß - F_BOOLIN, F_BOOLOUT und F_BYTEAIN nicht deklariert seien? - - - Hilfs- und Zusatzprogramme kompilieren - - 2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh - kompiliert werden soll. - - - Laufzeit Probleme - - 3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined, - wenn Skripts wie createuser laufen. - 3.2) Nachdem ich postmaster starte, meldet das System Bad system call - (Core dumped) - 3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine - Fehlermeldung wie: - Failed Assertion("!(file != 0):(null)", File: - "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257) - !(file != 0) (0) - initdb: could not create template database - initdb: cleaning up. - 3.4) Warum funktioniert createuser nicht? - 3.5) Wieso bekomme ich einen Fehler, wie: - IpcMemoryCreate: memKey=155356396 , size=760632 , - permission=384IpcMemoryCreate: shmget(..., create, ...) - failed: Invalid argument - 3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library - 'libpq.so.1 - 3.7) Andere seltsame Verhaltensweisen - 3.8) Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart - jedesmal einen Filesystemcheck (fsck) durch - 3.9) Warum dauert Query 32 in den RegressionsTests so lange? - 3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen - Datums/Zeit-Berechnungen, wie: - select '4 hours'::timespan; - liefert '3 hours 59 minutes 60 seconds'? - +3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget - failed (Permission denied)? - - Abschnitt 1: PostgreSQL kompilieren - - 1.1) Welche Anpassungen müssen in src/Makefile.global oder - src/Makefile.custom gemacht werden und gibt es weitere notwendige - Änderungen? - - Änderungen an den Makefiles werden am einfachsten dadurch gemacht, - indem das customize shellscript im src-Verzeichnis aufgerufen wird, - das ein Makefile.custom erzeugt. - - Die einzige andere Änderung, die evtl. zu machen wäre, ist Flex zu - ersetzen, wenn Du die Version 2.5.3 hast. Diese Version hat einen - Fehler, der sich durch das Scheitern des createuser-Programms äußert. - (siehe dazu auch Frage 3.4). - - Falls Du die Makefiles manuell änderst, musst Du die folgende Variable - setzen: -PORTNAME= linux - - Du musst auch die folgende Variable ändern, damit sie auf Deine - Installation passt: -POSTGRESDIR - - Falls Du die USE_TCL-Option aktivierst, musst Du folgende Variablen - setzen: -TCL_INCDIR= -TCL_LIBDIR= -TCL_LIB= -TK_INCDIR= -TK_LIBDIR= -TK_LIB= -X11_INCDIR= -X11_LIBDIR= -X11_LIB= - - Auf meinem Slackware 3.0 System sind das: -TCL_INCDIR= /usr/include/tcl -TCL_LIBDIR= /usr/lib -TCL_LIB= -ltcl -TK_INCDIR= /usr/include/tcl -TK_LIBDIR= /usr/lib -TK_LIB= -ltk -X11_INCDIR= /usr/include/X11 -X11_LIBDIR= /usr/X386/lib -X11_LIB= -lX11 - - Du solltest auch alle weiteren Änderungen durchführen, die in der - Datei INSTALL und in Makefile.global dokumentiert sind. - - 1.2) Warum habe ich Probleme mit der fehlenden Bibliothek libreadline? - - Linux Systeme kommen in der Regel nicht mit einer installierten GNU - readline Bibliothek. Stelle entweder sicher, daß Du die - readline-Optionen in src/Makefile.global oder src/Makefile.custom - nicht aktivierst oder installiere die GNU readline Bibliothek. - Hinweis: Debian Linux (wie FreeBSD) kommt mit einer installierten GNU - readline Bibliothek. - - 1.3) [REDHAT] Warum habe ich Probleme mit der fehlenden Bibliothek libdl - und der fehlenden dlfcn.h? - - Das Problem erscheint dadurch, daß in der letzten Phase des - Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht - gelinkt werden können. - - Die libdl Bibliothek wird zum dynamischen Linken von - Benutzerfunktionen zur Laufzeit benutzt. Aus irgendwelchen Gründen - wurde diese Bibliothek mit der RedHat-Distribution nicht ausgeliefert. - Anscheinend ist dies in der letzten RedHat 4.0 (Colgate) geändert - worden. - - RedHat hat nun ein neues ld.so RPM-Archiv auf ihrem ftp-Server. Hole - Dir einfach: - - ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4. - i386.rpm - - Installiere das RPM-Archiv wie üblich und gut ist! - - Hinweis: Du mußt configure und make clean nach der Installation der - Bibliothek und vor dem erneuten Kompilieren laufen lassen. - - Es gab einen Bericht über ein zerstörtes System, weil Programme auf - diese Bibliothek während des Updates zugegriffen haben (alles in allem - nicht weiter überraschend). Konsequenterweise ist es eine gute Idee, - das System vor der Installation zu rebooten, um so wenige Programme - wie möglich während des Updates laufen zu haben. In den - Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee! - - Wenn Du lieber den harten Weg gehen willst, kannst Du die Bibliothek - und die Header-Dateien von: - - ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz - - holen. Alternativ findest Du vorkompilierte Binaries in - distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb auf dem - gleichen ftp-Server oder folge den Instruktionen bei Frage 1.2, die - den gleichen Fehler für Slackware 3.1 behandelt. - - Mache es aber nur auf diese Weise, wenn Du weißt, was Du tust! - - 1.4) [SLACKWARE 3.1] Warum habe ich Probleme mit der fehlenden Bibliothek - libdl und der fehlenden dlfcn.h? - - Das Problem erscheint dadurch, daß in der letzten Phase des - Kompilierungsvorgangs Funktionen wie dlopen(), dlclose(), etc. nicht - gelinkt werden können. - - Siehe die Antwort zu Frage 1.3. - - Slackware bis Version 3.0 war mit dieser Bibliothek und der - Include-Datei ausgestattet und ab späten 3.1er-Versionen scheinen sie - auch wieder da zu sein. Aber in frühen 3.1er-Versionen (vor dem - 09.09.96) fehlten sie und es wurden viele CD-ROMs von diesen ersten - 3.1.er-Versionen gepresst. - - Es gab einen Bericht über ein zerstörtes System, weil Programme auf - diese Bibliothek während des Updates zugegriffen haben (alles in allem - nicht weiter überraschend). Konsequenterweise ist es eine gute Idee, - das System vor der Installation zu rebooten, um so wenige Programme - wie möglich während des Updates laufen zu haben. In den - Single-User-Mode zu gehen ist wahrscheinlich auch eine gute Idee! - - Der einfachste Weg, den Fehler zu beseitigen ist, die Datei ldso.tgz - von der a4-Diskette einer aktuelleren Slackware zu nehmen, diese Datei - im Wurzelverzeichnis (/) zu entpacken und dann ein -sh install/doinst.sh - - durchzuführen. Danach ein -ldconfig - - durchführen. - - Hinweis: Du mußt configure und make clean nach der Installation der - Bibliothek und vor dem erneuten Kompilieren laufen lassen. - - Falls Du manuell installieren möchtest, installiere zuerst die Datei - dlfcn.h in /usr/include. Dann die libdl.so.1.7.14 (oder was immer die - letzte Version ist) in /lib. Dann führe folgende Befehle aus: -cd /lib -ln -sf libdl.so.1.7.14 libdl.so.1 -ln -sf libdl.so.1 libdl.so - - Auf manchen Systemen (je nach Deiner gcc-Konfiguration) können noch - folgende Befehle notwendig sein: -cd /usr/lib -ln -sf /lib/libdl.so . - - Und zum Schluß noch ein -ldconfig - - Hinweis: Du mußt configure und make clean nach der Installation der - Bibliothek und vor dem erneuten Kompilieren laufen lassen. - - 1.5) Die Kompilierung des Backends schlägt mit der Meldung fehl, daß die - Include-Datei dlfcn.h fehlen würde. - - Siehe die Antworten zu den Fragen 1.3 und 1.4. Und vergiss nicht, - falls Du ein a.out-System benutzt, daß Du das dld-Paket installiert - haben muß (welches bei den meisten a.out-Systemen nicht dabei ist), um - dlfcn.h zu haben. Siehe Frage 1.11. - - 1.6) GCC meldet, daß er die Option -fpic ignorieren würde. - - Frühere Versionen des gcc nahmen entweder -fpic oder -fPIC an. Es - scheint, daß neuere Versionen (V2.7.2?) -fPIC erfordern. Falls Du ein - ELF-System benutzt, kannst das alles ignoriert werden, da -fPIC als - Standardvorgabe voreingestellt ist. Du kannst diese Angabe - korrigieren, indem Du CFLAGS_SL in der Datei src/Makefile.global - änderst. - - 1.7) Ich bekomme Warnungen, wie: warning: cast from pointer to integer of - different size - - Diese Warnungen wurden in früheren Versionen von Postgres95 gesichtet - und können ignoriert werden. PostgreSQL V6.0 sollte ohne Warnungen - kompiliert werden, außer jenen, die sich auf System-Header-Dateien - beziehen (welche auch ignoriert werden können). - - 1.8) [SuSE-Linux 4.2-5.3] Wo sind curses und termcap? - - SuSE-Linux 4.2 hat ncurses, nicht curses. Version 4.4 scheint beide - Bibliotheken zu haben. Bei SuSE-Linux ist außerdem die - termcap-Bibliothek in /usr/lib/termcap/ und nicht in /usr/lib. - - PostgreSQL (bis Version V6.0) - - Setze den Wert für CURSES_LIB in src/Makefile.custom auf -lncurses - (oder erledige das durch das customize script. Füge folgende Zeile zur - Datei src/Makefile.custom hinzu: -LDADD_BE+= -L/usr/lib/termcap - - Möglicherweise mußt Du in der Datei src/bin/psql/Makefile folgende - Änderung durchführen: -ifeq ($(PORTNAME), linux) - LD_ADD+= - - ändern in: -ifeq ($(PORTNAME), linux) - LD_ADD+= -ltermcap - - PostgreSQL (V6.1) - - Das Konfigurationsscript weiß nicht, daß es auch in /usr/lib/termcap - nach der termcap-Bibliothek schauen soll. Du solltest dieses - Verzeichnis angeben, wenn es nach zusätzlichen Such-Verzeichnissen - fragt. - - Falls das nicht funkitoniert (Ich habe SuSE nicht, um das zu testen), - dann solltest Du nach dem ./configure-Lauf die Datei - src/Makefile.global ändern und in die LDFLAGS-Zeile den Eintrag - -ltermcap (nach -lreadline) hinzufügen. (Alternativ kannst Du auch die - Datei src/Makefile.custom ändern, bevor Du ./configure aufrufst.) - - Einige SuSE-Versionen liefern nur ncurses, deshalb kann es sein, daß - Du die Benutzung von ncurses statt curses erzwingen mußt, indem Du - -lcurses in -lncurses änderst. (bestätigt für SuSE 5.1) - - PostgreSQL (V6.4) - - In PostgreSQL V6.4 überprüft configure sowohl das Vorhandensein von - curses, als auch das von ncurses. In der Zwischenzeit kannst Du den - patch von Karl Eichwalder (ke@suse.de) anwenden: - - http://www.PostgreSQL.ORG/mhonarc/pgsql-patches/msg00407.html - oder (mit deutschen Bemerkungen): - http://www.suse.de/Support/sdb/ke_postgresql-632.html - - Es gab außerdem einen Bericht, daß beim Update von SuSE 5.0 auf SuSE - 5.2 der Link von libtermcap.so.2.0.8 auf libtermcap.so nicht gesetzt - wurde: -cd /usr/lib -ln -s libtermcap.so.2.0.8 libtermcap.so - - 1.9) Warum bekomme ich Probleme mit ld.so? - - Falls Du Probleme mit ld.so bekommst - eine andere Bibliothek, die im - ELF-System für dynamisches Laden benötigt wird - dann hast Du Deine - Systeminstallation oder wahrscheinlicher ein Linux-Update - durcheinandergebracht Siehe die Fragen 1.3/1.4. Möglicherweise mußt Du - ld.so.x.y.z in /lib installieren und ldconfig laufen lassen. Die - aktuellste Version des ld-Packages ist 1.7.14. Zum Zeitpunkt des - Schreibens dieser FAQ ist die Version 1.8 noch experimental. - - 1.10) Wieso bekomme ich yy_flush_buffer undefined Fehler? - - Das ist nicht wirklich Linux-spezifisch, aber es tritt häufiger auf - alten Linux-Systemen auf. Du brauchst eine aktuelle Version von flex - (2.5.2. oder neuer), um PostgreSQL zu kompilieren. Beachte, daß flex - 2.5.3. einen Bug hat, siehe auch Frage 3.4. - - 1.11) Wie kompiliere ich PostgreSQL auf einem a.out System? - - Als erstes mußt Du die dld-Bibliothek installieren. Diese gibt es auf - Sunsite unter Linux/libs/dld.3.2.7.tar.gz - (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz). - - Dann füge folgende Zeile in src/Makefile.custom hinzu: -LINUX_ELF= - - oder benutze das customize Skript - - 1.12) Warum scheitert make mit der Meldung: - yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y make: /usr/bin/make: - cannot execute binary file - - Das war ein Problem in frühreren Versionen von Postgres95. - Standardmäßig benutzt PostgreSQL bison -y anstatt yacc. - - yacc ist normalerweise als Skript implementiert, das bison -y aufruft. - Aus verschiedenen Gründen ist make nicht in der Lage, das Skript - auszuführen (verschiedene Versionen von make? Verschiedene Versionen - der bash?) - - Um das zu beheben, ändere einfach die Datei - src/mk/port/postgres.mk.linux am Ende. Die Zeile: -# YACC = bison -y - - wird zu: -YACC = bison -y - - 1.13) Was sind die Bezüge in der Bibliothek X11_LIB zu libsocket und libnsl - in der Datei src/Makefile.global? - - Das war ein Problem in Version 1.08 (Sun Solaris spezifisch). Sie sind - behoben in 1.09 und 6.0 - - 1.14) [DEBIAN] Wo ist die Bibliothek libtermcap? - - Debian Linux kommt ohne die termcap-Bibliothek und benutzt ncurses - (welche terminfo benutzt). Es gibt keinen Grund, die - CURSES_LIB-Variable in src/bin/psql/Makefile zu ändern, da Debian - einen Link von libncurses auf libcurses bereitstellt (im Gegensatz zu - SuSE, siehe Frage 1.8) - - Du kannst die Datei src/bin/psql/Makefile wie folgt ändern: -ifeq ($(PORTNAME), linux) - LD_ADD+= -ltermcap - - in -ifeq ($(PORTNAME), linux) - LD_ADD+= - - - 1.15) [REDHAT] Kann ich PostgreSQL als RPM-Archiv bekommen? - - Ja! Michal Mosiewicz (http://www.pdi.lodz.pl/~mimo) hat ein RPM für - PostgreSQL V6.0 auf Intel Architekturen zusammengestellt, welches er - nach ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm - hochgeladen hat. - - Das ist eine vorkompilierte Version, das Quelltext-RPM stammt vom - 03.02.1997. - - 1.16) Während ich versuche eine Entwickler-Version unter Linux zu - kompilieren, bricht der Vorgang mit folgender Fehlermeldung ab: - In file included from /usr/include/sys/sem.h:8, - from ipc.c:37: - /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit' - .... - make: *** [ipc.o] Error 1 - - Das Problem ist, daß Linux keine Prototypen für diese - Inline-Funktionen bereithält. Die Lösung liegt darin, das Makefile in - .../src/backend/storage/ipc/ zu ändern: Ändere die Zeile: -CFLAGS+=$(INCLUDE_OPT) - - in -CFLAGS+=$(INCLUDE_OPT) -Wno-error - - Mache dasselbe dann im ../src/backend/storage/lmgr Verzeichnis. - - 1.17) Beim Kompilieren von PostgreSQL bricht der gcc mit einer Signal 11 - Meldung ab. - - Oder genauer: gcc: Internal compiler error: program cc1 got fatal - signal 11 - - Das können Hardware/Speicherprobleme sein. PostgreSQL ist ein großes - Programm und große gcc-Kompilierungsläfe (wie eben PostgreSQL oder - eine Kernel-Kompilierung) beanspruchen den Hauptspeicher wie wenig - andere Programme. Dadurch können Fehler auftreten, die in normalen - Situationen nicht erscheinen. Niedrigere Betriebssysteme beanspruchen - die Hardware ebenfalls nicht in diesem Maße, deshalb kann es sein, daß - Du niemals Probleme unter DOS/Windows siehst. - - Mehr Information zu diesem Problem gibt es unter - http://www.BitWizard.nl/sig11/ und in deutsch unter - http://www.suse.de/sdb/de/html/kfr_58.html. - - Laut dieser Sig11-FAQ scheint es ein spezielles Problem mit dem RedHat - 5.0 gcc auf einem Cyrix-Prozessor zu geben. Siehe bitte dort nach den - Details nach. - - 1.18) Kann ich Version 6.1.1 unter MkLinux installieren? - - Tatsuo Ishii hat das unter MkLinux DR2.1 update2 geschafft, nachdem - der kleine Patch von - ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz - eingespielt wurde. - - 1.19) Warum stoppt make oder bricht sonstwie ab? - - Es gibt eine Reihe von Reports darüber, daß gmake zu früh aussteigt - oder mit einem Segmentation Fault aussteigt. Das letzte Problem wurde - von gmake 3.74 berichtet. Ein Update auf 3.76.1 löste dieses Problem. - Wie auch immer, 3.74 arbeitet bei vielen Leuten zur vollsten - Zufriedenheit. Kurz gesagt, upgrade Deinen gmake auf die aktuellste - Version, bevor Du dieses Problem meldest. - - 1.20) Wie kann ich für die Prozessoren 486 oder Pentium optimieren? - - Die Standard-Compilerflags führen keine Optimierung für den 486er oder - den Pentium-Prozessor durch. Um diese Optimierung zu aktivieren, füge - wahlweise eine der folgenden Zeilen der Datei Makefile.custom hinzu: -CFLAGS+= -m486 - - oder -CFLAGS+= -mpentium - - oder -CFLAGS+= -mpentiumpro - - 1.21) Wieso bekomme ich seltsame Ergebnisse beim Drucken von Zeiten (z.B. - beim Regressionstest 'timespan')? - - Die Zeit erscheint z.B. als: "4 hours 59 mins 60.00 secs" und nicht - als "5 hours" - - Das ist ein Problem mit der glibc2-Bibliothek, die mit RedHat 5.0 - ausgeliefert wird. Update Deine glibc auf die aktuellste - RedHat-Version für v5.0/Hurricane. Alle Versionen vor glibc-2.9.7 - scheinen dieses Problem zu haben. - - 1.22) Warum bekomme ich keine shared libraries für libpq, wenn ich Version - 6.3.2 kompiliere? - - Es gab eine Last-Minute-Änderung der Linux-Konfiguration für Version - 6.3.2. Siehe für einige Fehlerbehebungen und einen Linux-ELF-Patch in - ftp://postgresql.org/pub/patches/ nach. - - 1.23) Warum scheitert der Kompilierungslauf mit Nachrichten, daß F_BOOLIN, - F_BOOLOUT und F_BYTEAIN nicht deklariert seien? - - Die komplette Meldung sieht ungefähr so aus: - -I/usr/include/readline -O2 -Wall -Wmissing-prototypes -I.. - -Wno-error -c bootstrap.c -o bootstrap.o - bootstrap.c:160: `F_BOOLIN' undeclared here (not in a function) - bootstrap.c:160: initializer element for `Procid[0].inproc' is not - constant - bootstrap.c:160: `F_BOOLOUT' undeclared here (not in a function) - bootstrap.c:160: initializer element for `Procid[0].outproc' is not - constant - bootstrap.c:161: `F_BYTEAIN' undeclared here (not in a function) - bootstrap.c:161: initializer element for `Procid[1].inproc' is not - constant - - Solange Du nicht weißt, warum das passiert, ist dieses Problem - ziemlich kniffelig, da diese Konstanten anscheinend nirgendwo - definiert werden. - - Die Lösung ist dafür zu sorgen, daß der cpp in Deinem Pfad erreichbar - ist, bevor make gestartet wird. - - Auf Redhat 5.1, ist cpp in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3 - - Abschnitt 2: Hilfs- und Zusatzprogramme kompilieren - - 2.1) Der Linker findet die Bibliothek libX11 nicht, wenn pgtclsh kompiliert - werden soll. - - Füge folgende Zeile in src/Makefile.custom hinzu: -X11_LIBDIR = /usr/X11R6/lib - - Abschnitt 3: Laufzeit Probleme - - 3.1) Ich bekomme die Fehlermeldung _fUnKy_POSTPORT_sTuFf_ undefined, wenn - Skripts wie createuser laufen. - - Das ist ein Fehler in Versionen 1.06-1.07 und ist ab Version 1.08 und - höher behoben. - - 3.2) Nachdem ich postmaster starte, meldet das System Bad system call (Core - dumped) - - Diese Fehlermeldung deutet an, daß Du keinen Shared-Memory-Support in - den Kernel einkompiliert hast. Der Kernel muß mit dieser Option neu - kompiliert werden, um diese Eigenschaft hinzuzufügen. - - 3.3) Wenn ich versuche, den Postmaster zu starten, bekomme ich eine - Fehlermeldung wie: - Failed Assertion("!(file != 0):(null)", File: - "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257) - !(file != 0) (0) - initdb: could not create template database - initdb: cleaning up. - - Deine Berechtigungen für die Datei /dev/null sind falsch gesetzt. ein - ls -l /dev/null sollte folgende Ausgabe zeigen: -crw-rw-rw- 1 root wheel 2, 2 Oct 8 18:41 /dev/null - - Korrigiere die Berechtigungen mit: -chmod a+rw /dev/null - - 3.4) Warum funktioniert createuser nicht? - - Es gibt ein Problem mit Version 2.5.3 des GNU flex und createuser. Die - Möglichkeiten, diesen Fehler zu beheben sind: Entweder auf die - flex-Version 2.5.3 zu gehen, auf Version 2.5.4 zu gehen, oder den - Patch nach doc/README.flex einzuspielen. - - Die Version 2.5.4. gibt es unter - ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz. - - 3.5) Wieso bekomme ich einen Fehler, wie: - IpcMemoryCreate: memKey=155356396 , size=760632 , - permission=384IpcMemoryCreate: shmget(..., create, ...) - failed: Invalid argument - - Du hast keine IPC-Unterstützung in Deinen Linux-Kernel einkompiliert. - Der Kernel muß mit dieser Option neu kompiliert werden, um diese - Eigenschaft hinzuzufügen. - - 3.6) Wieso scheitert der Aufruf von psql mit: psql: can't load library - 'libpq.so.1 - - Psql wurde mit dynamischen Zugriff auf die libpq-bibliothek - kompiliert. Um dieses Problem zu lösen, solltest Du Dich als root - anmelden und die Datei /etc/ld.so.conf editieren. Füge eine Zeile am - Ende hinzu, die den Namen des PostgreSQL-Bibliotheken-Verzeichnis - enthält (das lib-Verzeichnis im PostgreSQL-Installationsverzeichnis) - und rufe den Befehl /sbin/ldconfig -v auf. Alternativ (und falls Du - keinen root-Zugriff hast) kannst Du die LD_LIBRARY_PATH-Variable - benutzen. Die LD_LIBRARY_PATH-Variable enthält eine durch Doppelpunkt - getrennte Liste mit Suchpfaden für Shared-Bibliotheken. Diese Liste - wird durchsucht, bevor auf die Informationen von ldconfig zugegriffen - wird. Unter der bash sieht das ganze so aus: -export LD_LIBRARY_PATH='PathToPGSQL'/lib - - unter der tcsh so: -setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib - - wobei 'PathToPGSQL' das Installationsverzeichnis von PostgreSQL ist. - Hinweis: der ldd-Befehl dient dazu, sich die dynamischen Bibliotheken - für eine bestimmte ausführbare Datei anzeigen zu lassen. - - 3.7) Andere seltsame Verhaltensweisen - - Ich bin mir nicht sicher, welche Symptome alle auftreten können, außer - daß gar nichts richtig funktioniert, aber es stellte sich heraus, daß - man sorgsam darauf achten sollte, daß die richtige Version der - libpq-Bibliothek geladen wird. Falls Du alte Versionen in Deinem - Bibliothekspfad hast (z.B. in /usr/lib) können diese statt der neueren - Version geladen werden. Schaffe diese alten Versionen beiseite und - siehe im übrigen Frage 3.6 für weitere Details bezüglich dem Laden von - Bibliotheken. - - 3.8) Wenn PostgreSQL beim Systemhalt lief, führt Linux beim Neustart - jedesmal einen Filesystemcheck (fsck) durch - - Es gab darüber einige Berichte und es scheint, daß dies passiert, wenn - PostgreSQL von der /etc/inittab gestartet wird, wie im - INSTALL-Dokument beschrieben. - - Deshalb wird Dir empfohlen, den postmaster von einem rc-Skript aus zu - starten. Unter einem Slackware-artigem System würdest Du - /etc/rc.d/rc.local modifizieren, um den postmaster zu starten. - - Unter RedHat-artigen Systemen würdest Du ein SysV-artiges Skript in - /etc/rc.d/rc3.d basierend auf der /etc/rc.d/init.d Schablonen-Datei - erstellen. - - Es gibt eine Beispieldatei unter dem Verzeichnis - contrib/linux/postgres.init. - - Hier ist noch ein anderes Beispiel von John Robinson welches Du - entsprechend anpassen kannst. -#!/bin/sh -# -# postgreSQL.init This shell script takes care of starting and stopping -# the PostgreSQL postmaster. -# - -# Source function library. -. /etc/rc.d/init.d/functions - -# Source networking configuration. -. /etc/sysconfig/network - -# Check that networking is up. -[ ${NETWORKING} = "no" ] && exit 0 - -# See how we were called. -case "$1" in - start) - # Start daemons. - echo -n "Starting postgres Postmaster daemon:" - if [ -z "`pidofproc postmaster`" ] - then - su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgr -eSQL/data -p 5432 &" - echo -n " postmaster" - else - echo -n " (already running)" - fi - echo - touch /var/lock/subsys/postgres - ;; - stop) - # Stop daemons. - echo -n "Shutting down postgres Postmaster daemon: " - killall -TERM postmaster 2>/dev/null - killall -TERM postgres 2>/dev/null - echo - rm -f /var/lock/subsys/postgres - ;; - *) - echo "Usage: postgres {start|stop}" - exit 1 -esac - -exit 0 - - 3.9) Warum dauert Query 32 in den RegressionsTests so lange? - - Das passiert wegen eines Fehlers in den Regressions-Skripten auf - Linux-Kisten. Es gibt - soweit ich weiß - zwei Möglichkeiten, diese - Fehler zu umgehen (die Information stammt von Tatsuo Ishii): - - 1. ändere folgende Zeile in regress.sh: -time postgres -texecutor -tplanner -Q bench < bench.sql - - in -postgres -texecutor -tplanner -Q bench < bench.sql - - 2. nachdem der Test gelaufen ist, entferne eine Zeile ganz am Ende der - Datei bench.out, die ungefähr so aussieht: -85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k - - dann gib folgendes auf der Befehlszeile ein: -sh ./perquery < bench.out > & bench.out.perquery - - 3.10) Warum bekomme ich lustige Rundungsergebnisse in einigen - Datums/Zeit-Berechnungen, wie: - select '4 hours'::timespan; - liefert '3 hours 59 minutes 60 seconds'? - - Du benutzt neue glibc2-Bibliotheken in einer Version kleiner als - 2.0.7. Das ist ein mathematisches Rundungsproblem. Aktualisiere Deine - Bibliothek. - - 3.11) Wieso bekomme ich einen Fehler wie: IpcMemoryCreate: shmget failed - (Permission denied)? - - Im Detail erscheint der Fehler mit dieser Meldung: -In detail, a message like this may appear: -IpcMemoryCreate: shmget failed (Permission denied) -key=5432010, size=120, permission=700 -IpcMemoryAttach: shmat failed (Permission denied) id=0 -FATAL 1: AttachSLockMemory: could not attach segment - - Dieser Fehler wird durch nicht gelöschte Segmente im shared memory - verursacht. (Du kannst sie mit dem Programm ipcs sehen. Benutze das - Programm ipcrm, um sie zu löschen. - _________________________________________________________________ - - Author of the english version - Dr. Andrew C.R. Martin University College London - EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) - andrew@stagleys.demon.co.uk - URL: http://www.biochem.ucl.ac.uk/~martin - Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775 - - Translator of the german version - Karsten Schulz Linux Systemhaus Schulz - EMAIL: (Work) schulz@Linux-Systemhaus.de (Home) kaschu@t800.ping.de - URL: http://www.Linux-Systemhaus.de/ - Tel: (Work) +49 231 3944432 (Fax) +49 231 3944435 diff --git a/doc/FAQ_Linux_Italian b/doc/FAQ_Linux_Italian deleted file mode 100644 index e69de29bb2d..00000000000 --- a/doc/FAQ_Linux_Italian +++ /dev/null diff --git a/doc/FAQ_SCO b/doc/FAQ_SCO index dc13419b9ed..d01cdd43947 100644 --- a/doc/FAQ_SCO +++ b/doc/FAQ_SCO @@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL V7.0 SCO UnixWare and OpenServer Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= -last updated: Mon May 1 23:35:43 EDT 2000 +last updated: $Date: 2000/08/26 19:34:24 $ current maintainer: Billy G. Allie (Bill.Allie@mug.org) original author: Andrew Merrill (andrew@compclass.com) @@ -22,8 +22,6 @@ Topics: *) Readline *) Using the UDK on OpenServer *) Compiling PostgreSQL using the UDK -*) Shared Memory and SHMMAX -*) Java and JDBC *) Reading the PostgreSQL man pages on UnixWare @@ -149,105 +147,6 @@ the following patch: ------------------------------8< CUT HERE >8------------------------------ *************************************************************************** -*) Shared Memory and SHMMAX - -PostgreSQL supports multiple backend daemons running at once. A block -of shared memory is used by the backend processes. A larger block -of shared memory allows PostgreSQL to run faster and support more -complicated queries. - -By default, UnixWare 7 and OpenServer are confiugured to support shared memory -blocks that are no larger than 524288 bytes, or 512K. By default, PostgreSQL -tries to allocate a shared memory block that is larger than this. If -you don't do anything, this allocation will fail, and the postmaster -daemon will not be able to run. - -The error message looks like this (the numbers may be different): - -IpcMemoryCreate: shmget failed (Invalid argument) key=5432001, size=831176, permission=600 -FATAL 1: ShmemCreate: cannot create region - -You have two choices: tell PostgreSQL to allocate a smaller shared memory -block, or tell Unix to allow larger shared memory blocks. The latter -is the preferred solution, but it requires a kernel tunable change and a -reboot to implement. - -To configure the size of the PostgreSQL shared memory block, use the -B -option to the postmaster command, which configures the number of buffers -used by PostgresSQL. (The shared memory block consists of these buffers -and around 300K of other stuff.) Each buffer uses 8K, and by default -there are 64 buffers, or 64*8*1024 = 524288 bytes (plus the ~300K of other -stuff). - -To use PostgreSQL without doing any kernel tuning, use a -B value of -about 24. This would take up 24*8*1024 = 196608 bytes, plus ~300K -of other stuff, yields about 500000, which will fit in under the -default 512K limit. - -Example: postmaster -B 24 - -The recommended option is to instead raise the kernel tunable SHMMAX, -which controls the size of the largest allowed shared memory block. - -*** Tuning SHMMAX on UnixWare *** - -To display the current value of SHMMAX, run: -/etc/conf/bin/idtune -g SHMMAX -which displays the current, default, minimum, and maximum values, in bytes. - -To set a new value for SHMMAX, run: -/etc/conf/bin/idtune SHMMAX value -where value is the new value you want to use (in bytes). - -After setting SHMMAX, rebuild the kernel and reboot. -To rebuild the kernel: -/etc/conf/bin/idbuild -B - -*** Tuning SHMMAX on OpenServer *** - -First, cd to /etc/conf/cf.d. - -To display the current value of SHMMAX, in bytes, run: -./configure -y SHMMAX - -To set a new value for SHMMAX, run: -./configure SHMMAX=value -where value is the new value you want to use (in bytes). - -After setting SHMMAX, rebuild the kernel and reboot. -To rebuild the kernel: -./link_unix - - -*************************************************************************** -*) Java and JDBC - -The JDBC interface will not build on UnixWare or OpenServer without changes. -The JDBC Makefile in src/interfaces/jdbc/Makefile uses the $$( ) construction -to run an external shell command, instead of the older ` ` syntax. -However, the $$( ) syntax does not work on UnixWare or OpenServer. -So, each of the two uses of it must be replaced with backquotes. You can -search for $$( to locate the two lines that need changing. - -In the file src/interfaces/jdbc/Makefile : - -change: - make $$($(JAVA) makeVersion) -to: - make `$(JAVA) makeVersion` - -and change: - $(JAR) -c0f $@ $$($(FIND) postgresql -name "*.class" -print) -to: - $(JAR) -c0f $@ `$(FIND) postgresql -name "*.class" -print` - -Of course, you also need to have installed Java on your system, and -make sure that /usr/java/bin is in your PATH. - -And, remember to use GNU make, as always. - - -*************************************************************************** *) Reading the PostgreSQL man pages on UnixWare By default, the PostgreSQL man pages are installed into /usr/local/pgsql/man. diff --git a/doc/FAQ_Solaris b/doc/FAQ_Solaris index b4fb4c7aa3e..ab080c8572e 100644 --- a/doc/FAQ_Solaris +++ b/doc/FAQ_Solaris @@ -3,24 +3,16 @@ Frequently Asked Questions (FAQ) for PostgreSQL V6.5 Sun Solaris Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= -last updated: Thu Sep 21 9:30:00 CET 1999 +last updated: $Date: 2000/08/26 19:34:24 $ current maintainer: Marc Liyanage (liyanage@access.ch) original author: Marc Liyanage (liyanage@access.ch) - Contents: 1.1) What tools do I need to build and install PostgreSQL on Solaris? 1.2) What else do I have to do before building PostgreSQL? -1.3) Why am I getting "IpcMemoryCreate" errors when I try - to run postmaster? -1.4) Why am I getting "Can't tell what username to use" errors - when I try to run initdb? - -A) Contributors - Notes: @@ -32,7 +24,6 @@ Notes: - These instructions are written for Solaris 2.6 - ---------------------------------------------------------------------- Section 1: Building and Installing PostgreSQL ---------------------------------------------------------------------- @@ -43,7 +34,7 @@ You will need - GNU flex 2.5.4 or better (the lex included in Solaris 2.6 won't work) - GNU bison (the yacc included in Solaris 2.6 won't work) -- GNU zip (gzip and especially zcat for installing the docs) +- GNU zip (gzip and especially gunzip for installing the docs) - GNU make - GNU readline library @@ -59,7 +50,6 @@ http://www.gnu.org/order/ftp.html - 1.2) What else do I have to do before building PostgreSQL? Shared libraries @@ -89,77 +79,3 @@ Do this: There is some good information about this here: http://www.visi.com/~barr/ldpath.html - - -zcat ----- - -If - -- both the original solaris zcat as well as the recommended - GNU zcat are installed on the system (e.g. the former in /usr/bin and - the latter in /usr/local/bin) and -- configure (or "which zcat") finds the wrong one - -then configure needs to be told where GNU zcat can be found. - -Failure to do so will cause configure to select the wrong one -and the "gmake install" command in the "doc" subdirectory -(step 12 in the INSTALL file) will fail because Solaris -zcat cannot handle the .gz compressed documentation files. - -To fix this, type - -# export GZCAT=/usr/local/bin/zcat - -(or wherever your GNU zcat lives) - -before running configure. - - - - -1.3) Why am I getting "IpcMemoryCreate" errors when I try - to run the postmaster? - -(See also 3.4 in the main FAQ file) - -Under Solaris 2.6 and probably others, the default shared memory -maximum segment size kernel parameter is set too low. The solution -is to put something like the following line into /etc/system and -reboot the system. - -set shmsys:shminfo_shmmax=0x7fffffff - -Excellent info regarding shared memory under Solaris can be found here: -http://www.sunworld.com/swol-09-1997/swol-09-insidesolaris.html - - - - -1.4) Why am I getting "Can't tell what username to use" errors - when I try to run initdb? - -Put something like this into the .bash_profile startup script -of the postgres user (see also step 17 in the INSTALL file): - -export USER=postgres - - - - - - - - - ----------------------------------------------------------------------- -Section A: Contributors ----------------------------------------------------------------------- - -- Jose Luis Rodriguez Garcia - Suggested to change the shmmax parameter in 1.3 from 0xffffffff to 0x7fffffff - because the value is a signed integer in Solaris versions prior to 2.6. - - - diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index c7654c5d732..6de2e4039c3 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.19 2000/08/25 10:00:29 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.20 2000/08/26 19:34:24 petere Exp $ --> <Chapter Id="runtime"> @@ -299,6 +299,13 @@ IpcSemaphoreCreate: semget(key=5440026, num=16, 01600) failed: No space left on </para> <para> + If you get an <quote>illegal system call</> error, then it is likely that + shared memory or semaphores are not supported at all in your kernel. In + that case your only option is to re-configure the kernel to turn on these + features. + </para> + + <para> Details about configuring System V IPC facilities are given in <xref linkend="sysvipc">. </para> |