FAQ_Linux
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:27k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. =======================================================
  2. Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1
  3. Linux Specific
  4. TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
  5. =======================================================
  6. last updated:           Fri Jun 19 13:35:00 BST 1998
  7. current maintainer:     Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
  8. original author:        Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
  9. Changes in this version (* = modified, + = new, - = removed):
  10. +1.23)  Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
  11.         and F_BYTEAIN being undeclared?
  12. This file is divided approximately as follows:
  13. 1.*)    Installing PostgreSQL
  14. 2.*)    Compiling accessory programs
  15. 3.*)    Runtime Problems
  16. Questions answered:
  17. 1.1)    What changes do I need to make to src/Makefile.global or
  18.         src/Makefile.custom and are there any other changes needed?
  19. 1.2)    Why do I get problems with missing libreadline?
  20. 1.3)    [REDHAT] Why do I get problems with missing libdl and dlfcn.h?
  21. 1.4)    [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h?
  22. 1.5)    My compile of the backend dies complaining about the include file
  23.         dlfcn.h missing
  24. 1.6)    GCC complains about an ignored option -fpic
  25. 1.7)    I get warnings of the form
  26.         warning: cast from pointer to integer of different size
  27. 1.8)    [SuSE-Linux 4.2-4.4] Where is curses and termcap?
  28. 1.9)    Why do I get problems with ld.so?
  29. 1.10)   Why do I get `yy_flush_buffer undefined' errors?
  30. 1.11)   How do I compile PostgreSQL on an a.out system?
  31. 1.12)   Why does make fail with:
  32.         yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
  33.         make: /usr/bin/make: cannot execute binary file
  34. 1.13)   What are the references in X11_LIB to libsocket and libnsl in
  35.         src/Makefile.global?
  36. 1.14)   [DEBIAN] Where is libtermcap?
  37. 1.15)   [REDHAT] Can I get PostgreSQL as an RPM?
  38. 1.16)   While trying to compile a development version under Linux, compilation
  39.         fails with a message like:
  40.         In file included from /usr/include/sys/sem.h:8,
  41.                  from ipc.c:37:
  42.         /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi
  43. t'
  44.         ....
  45.         make: *** [ipc.o] Error 1
  46. 1.17)   When compiling postgres, gcc reports signal 11 and aborts.
  47. 1.18)   Can I install 6.1.1 under MkLinux?
  48. 1.19)   Why does make exit or crash?
  49. 1.20)   How can I optimise for 486 or pentium processors
  50. 1.21)   Why do I get strange results with printing times (for example
  51.         in the regression test 'timespan')?
  52. 1.22)   Why don't I get any shared libraries for libpq when I compile
  53.         6.3.2?
  54. 1.23)   Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
  55.         and F_BYTEAIN being undeclared?
  56. 2.1)    The linker fails to find libX11 when compiling pgtclsh
  57. 3.1)    I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
  58.         running scripts like createuser
  59. 3.2)    I run postmaster and after that system says 'Bad system call(Core
  60.         dumped)'
  61. 3.3)    When I try to start the Postmaster, why do I get an error of the form
  62.         Failed Assertion("!(file != 0):(null)", File:
  63.         "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
  64.         !(file != 0) (0)
  65.         initdb: could not create template database
  66.         initdb: cleaning up.
  67. 3.4)    Why doesn't createuser work?
  68. 3.5)    Why do I get an error like:
  69.         IpcMemoryCreate: memKey=155356396 , size=760632 ,
  70.         permission=384IpcMemoryCreate: shmget(..., create, ...)
  71.         failed: Invalid argument
  72. 3.6)    Why does psql fail with:
  73.         psql: can't load library 'libpq.so.1'
  74. 3.7)    Other strange behaviour
  75. 3.8)    When PostgreSQL is running when the system is shutdown, Linux
  76.         always fsck's the disk when rebooted.
  77. 3.9)    Why does Query 32 in the regression tests take so long?
  78. 3.10)   Why do I get funny rounding results in some date/time arithmetic,
  79.         such as
  80.            select '4 hours'::timespan;
  81.         returning '3 hours 59 minutes 60 seconds'?
  82. ----------------------------------------------------------------------
  83. Section 1:      Compiling PostgreSQL
  84. ----------------------------------------------------------------------
  85. 1.1)    What changes do I need to make to src/Makefile.global or
  86.         src/Makefile.custom and are there any other changes needed?
  87.         Changes to the makefiles are most easily made by running the
  88.         customize shell script in the src directory which will write a
  89.         Makefile.custom for you.
  90.         The only other change you may have to make is to replace
  91.         Flex if you have version 2.5.3 which has a bug which generally
  92.         manifests itself as createuser failing (See Question 3.4)
  93.         If you modify the makefiles by hand, you *must* set the
  94.         following variable:
  95.                 PORTNAME=       linux
  96.         You will also need to change the following to match your own
  97.         installation:
  98.                 POSTGRESDIR
  99.         If you switch on the USE_TCL option, you will need to set these:
  100.                 TCL_INCDIR=
  101.                 TCL_LIBDIR=
  102.                 TCL_LIB=
  103.                 TK_INCDIR=
  104.                 TK_LIBDIR=
  105.                 TK_LIB=
  106.                 X11_INCDIR=
  107.                 X11_LIBDIR=
  108.                 X11_LIB=
  109.         On my Slackware3.0 system, these are:
  110.                 TCL_INCDIR=     /usr/include/tcl
  111.                 TCL_LIBDIR=     /usr/lib
  112.                 TCL_LIB=        -ltcl
  113.                 TK_INCDIR=      /usr/include/tcl
  114.                 TK_LIBDIR=      /usr/lib
  115.                 TK_LIB=         -ltk
  116.                 X11_INCDIR=     /usr/include/X11
  117.                 X11_LIBDIR=     /usr/X386/lib
  118.                 X11_LIB=        -lX11
  119.         You may also make any other changes you need as documented in
  120.         the INSTALL file and in Makefile.global
  121. 1.2)    Why do I get problems with missing libreadline?
  122.         Linux systems generally don't come with the GNU readline library
  123.         installed. Either ensure you do not activate the readline options
  124.         in src/Makefile.global or src/Makefile.custom or install the GNU
  125.         readline library.
  126.         Note that Debian Linux (like FreeBSD) does come with readline
  127.         installed.
  128. 1.3)    [REDHAT] Why do I get problems with missing libdl and dlfcn.h?
  129.         This manifests itself as being unable to link with functions
  130.         such as dlopen(), dlclose(), etc. during the last phase of the
  131.         compilation.
  132.         The libdl library is used for dynamic linking of user-supplied
  133.         functions at run-time. For some reason this library was missed out
  134.         from the Redhat distribution. It seems that the latest Redhat 4.0
  135.         (Colgate) fixes this.
  136.         RedHat now have a new ld.so RPM package on their FTP site.
  137.         Simply grab:
  138.                 ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.
  139. 7.14-4.i386.rpm
  140.         Install the RPM file in the usual way and off you go!
  141.         NOTE! You will have to re-run configure and do a make clean
  142.         after installing the library and before recompiling.
  143.         There has been one report of a corrupted system resulting from
  144.         programs accessing these libraries while updating them (not
  145.         altogether surprising). Consequently it is a good idea to reboot
  146.         the system before installing the new libraries and to
  147.         have as little running as possible during this upgrade. Going
  148.         into single-user mode is probably a good idea!
  149.         If you want to do it the hard way, you can obtain the library and the
  150.         header file from:
  151.                 ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz
  152.         Alternatively, you may find precompiled binaries in
  153.         distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb
  154.         on the same site, or follow the instructions given for question 1.2 for
  155.         correcting the same error with early releases of Slackware 3.1.
  156.         Don't use this method unless you know what you are doing!
  157. 1.4)    [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h?
  158.         This manifests itself as being unable to link with functions
  159.         such as dlopen(), dlclose(), etc. during the last phase of the
  160.         compilation.
  161.         See the answer to question 1.3. Slackware up to version 3.0 was
  162.         supplied with this library and include file and they seem to be
  163.         back in again in the latest versions of 3.1, but the early 3.1
  164.         releases (before 9th September 1996) had them missing and many
  165.         CD-ROM versions will have been pressed from the first 3.1 releases.
  166.         There has been one report of a corrupted system resulting from
  167.         programs accessing these libraries while updating them (not
  168.         altogether surprising). Consequently it is a good idea to reboot
  169.         the system before installing the new libraries and to
  170.         have as little running as possible during this upgrade. Going
  171.         into single-user mode is probably a good idea!
  172.         The easiest fix is to obtain the file ldso.tgz from the a4 disk of
  173.         a more recent Slackware distribution and unpack this file
  174.         from the root (/) directory, then do
  175.                 sh install/doinst.sh
  176.         to complete the installation. Follow this with
  177.                 ldconfig
  178.         NOTE! You will have to re-run configure and do a make clean
  179.         after installing the library and before recompiling.
  180.         If you want to install manually, you must first install the file
  181.         dlfcn.h in /usr/include.
  182.         Second, install the file libdl.so.1.7.14 (or whatever the latest
  183.         release is) in /lib, then do:
  184.                 cd /lib
  185.                 ln -sf libdl.so.1.7.14 libdl.so.1
  186.                 ln -sf libdl.so.1 libdl.so
  187.         On some systems (depending on your GCC configuration) it may be
  188.         necessary to do:
  189.                 cd /usr/lib
  190.                 ln -sf /lib/libdl.so .
  191.         Finally
  192.                 ldconfig
  193.         NOTE! You will have to re-run configure and do a make clean
  194.         after installing the library and before recompiling.
  195. 1.5)    My compile of the backend dies complaining about the include file
  196.         dlfcn.h missing
  197.         See the answer to question 1.3/1.4. Don't forget that if you are using
  198.         an a.out system you must first have installed the dld package
  199.         (which is not supplied with most a.out systems) to have dlfcn.h
  200.         at all. See Question 1.11.
  201. 1.6)    GCC complains about an ignored option -fpic
  202.         Earlier versions of GCC accepted either -fpic or -fPIC.
  203.         It appears that more recent versions (V2.7.2?) require -fPIC.
  204.         If you are using an ELF version of Linux, this can safely be
  205.         ignored as -fPIC is the default.
  206.         You can correct this by editing src/Makefile.global and
  207.         changing CFLAGS_SL
  208. 1.7)    I get warnings of the form
  209.         warning: cast from pointer to integer of different size
  210.         These were seen in earlier versions of Postgres95 and could
  211.         safely be ignored. PostgreSQL V6.0 should compile with no warnings
  212.         except those related to system header files (which can also
  213.         be safely ignored).
  214. 1.8)    [SuSE-Linux 4.2-4.4] Where is curses and termcap?
  215.         SuSE-Linux 4.2 has ncurses but not curses. 4.4 appears to have both.
  216.         SuSE-Linux also has the termcap library is in /usr/lib/termcap
  217.         instead of in /usr/lib.
  218.         PostgreSQL (up to V6.0)
  219.         -----------------------
  220.         Set the value of CURSES_LIB in src/Makefile.custom to -lncurses
  221.         (or do this through the customize script).
  222.         Add the following line to src/Makefile.custom:
  223.                 LDADD_BE+= -L/usr/lib/termcap
  224.         You may need to edit src/bin/psql/Makefile and change:
  225.                 ifeq ($(PORTNAME), linux)
  226.                    LD_ADD+=
  227.         to:
  228.                 ifeq ($(PORTNAME), linux)
  229.                    LD_ADD+= -ltermcap
  230.         PostgreSQL (V6.1)
  231.         -----------------
  232.         The configure script doesn't know to look in /usr/lib/termcap for
  233.         the termcap library, so you should specify this as one of the
  234.         library directories when asked for additional directories to
  235.         search.
  236.         If this doesn't work (I don't have SuSE to verify that it does)
  237.         then after running configure, you need to edit
  238.         src/Makefile.global and add -ltermcap to the LDFLAGS line
  239.         (after -lreadline). (Alternatively, you can modify
  240.         src/Makefile.custom before running configure.)
  241.         Some versions of SuSE provide only ncurses, so you may need
  242.         to force use of ncurses rather than curses by changing
  243.         -lcurses to -lncurses. (Reported true for SuSE 5.1)
  244. 1.9)    Why do I get problems with ld.so?
  245.         If you get problems with ld.so, another library required under
  246.         ELF for dynamic loading, then you have messed up your installation
  247.         or (more likely) upgrade of Linux.
  248.         See the answers to Question 1.3/1.4. You may need to install
  249.         ld.so.x.y.z in /lib and run ldconfig.
  250.         The most recent stable release of the ld package is 1.7.14
  251.         At the time of writing, 1.8.x versions of ld are experimental.
  252. 1.10)   Why do I get `yy_flush_buffer undefined' errors?
  253.         This isn't really Linux specific, but is common on older Linux
  254.         installations. You must have a recent version of flex (2.5.2 or later)
  255.         to compile PostgreSQL. Note that flex 2.5.3 has a bug: see
  256.         Question 3.4.
  257. 1.11)   How do I compile PostgreSQL on an a.out system?
  258.         First, you must install the dld library. This may be obtained
  259.         from Sunsite as:
  260.         Linux/libs/dld.3.2.7.tar.gz
  261.         (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz)
  262.         Second, add the following line to src/Makefile.custom:
  263.                 LINUX_ELF=
  264.         (or use the customize script)
  265. 1.12)   Why does make fail with:
  266.         yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
  267.         make: /usr/bin/make: cannot execute binary file
  268.         This was a problem in earlier versions of Postgres95. The default
  269.         for PostgreSQL is to use bison -y rather than yacc.
  270.         yacc is generally implemented as a script which invokes bison -y
  271.         For some reason (certain versions of make? certain versions of
  272.         bash?) make is unable to execute this script file.
  273.         To correct this, simply edit src/mk/port/postgres.mk.linux
  274.         and, at the end of the file, change:
  275.                 # YACC = bison -y
  276.         to
  277.                 YACC = bison -y
  278. 1.13)   What are the references in X11_LIB to libsocket and libnsl in
  279.         src/Makefile.global?
  280.         This was a problem in 1.08 (they are Sun Solaris specific).
  281.         It is fixed in 1.09 and 6.0
  282. 1.14)   [DEBIAN] Where is libtermcap?
  283.         Debian Linux comes without the termcap library and uses ncurses
  284.         (which uses terminfo instead). There is no need to change the
  285.         CURSES_LIB variable in src/bin/psql/Makefile since Debian provides
  286.         a link from libncurses to libcurses (unlike SuSE-Linux --- see
  287.         Question 1.8).
  288.         You may need to edit src/bin/psql/Makefile and comment out the
  289.         change:
  290.                 ifeq ($(PORTNAME), linux)
  291.                    LD_ADD+= -ltermcap
  292.         to:
  293.                 ifeq ($(PORTNAME), linux)
  294.                    LD_ADD+=
  295. 1.15)   [REDHAT] Can I get PostgreSQL as an RPM?
  296.         Yes! Michal Mosiewicz
  297.         (http://www.pdi.lodz.pl/~mimo) has kindly put together an RPM
  298.         for PostgreSQL V6.0 on Intel architectures which he has uploaded to
  299.         ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm
  300.         This is a pre-compiled version, the source RPM is on its
  301.         was as I write (3rd Feb 1997).
  302. 1.16)   While trying to compile a development version under Linux, compilation
  303.         fails with a message like:
  304.         In file included from /usr/include/sys/sem.h:8,
  305.                  from ipc.c:37:
  306.         /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bi
  307. t'
  308.         ....
  309.         make: *** [ipc.o] Error 1
  310.         The problem is that Linux provides no prototypes for these
  311.         inline functions. The solution is to go into the
  312.         .../src/backend/storage/ipc directory and edit the Makefile.
  313.         Change the line
  314.            CFLAGS+=$(INCLUDE_OPT)
  315.         to
  316.            CFLAGS+=$(INCLUDE_OPT) -Wno-error
  317.         Do the same in the ../src/backend/storage/lmgr directory.
  318. 1.17)   When compiling postgres, gcc reports signal 11 and aborts.
  319.         More specifically:
  320.            gcc: Internal compiler error: program cc1 got fatal
  321.                 signal 11
  322.         This may be a hardware/memory problem. PortgreSQL is a big
  323.         program, and large gcc compilations (such as building
  324.         PostgreSQL or bebuilding the kernel) stress memory like
  325.         few other programs, resulting in errors that do not occur
  326.         in normal operation. Lesser operating systems are also
  327.         unlikely to stress the hardware to this degree so you
  328.         may never see any problems under DOS/Windows.
  329.         More information on this problem at:
  330.            http://www.bitwizard.nl/sig11
  331.         From this Sig11 FAQ, there appears to be a specific problem
  332.         with Redhat 5.0 gcc running on Cyrix processors. See the
  333.         URL above for more details!
  334. 1.18)   Can I install 6.1.1 under MkLinux?
  335.         Tatsuo Ishii  has done this under
  336.         MkLinux DR2.1 update2 after a small patch available from:
  337.         ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz
  338. 1.19)   Why does make exit or crash?
  339.         There have been a couple of reports of gmake either just
  340.         exiting early or seg faulting. The latter problem was reported
  341.         with gmake 3.74 - upgrading to 3.76.1 solved the problem.
  342.         However, 3.74 is known to work fine in other people's setups.
  343.         In short, try upgrading gmake to the latest version you can
  344.         find before reporting this as a problem
  345. 1.20)   How can I optimise for 486 or pentium processors
  346.         The default compiler flags perform no optimisation for 486
  347.         or Pentium processors. To add such optimisation, edit
  348.         Makefile.custom and add:
  349.            CFLAGS+= -m486
  350.         or (for the new compilers that most people are not yet running)
  351.            CFLAGS+= -mpentium
  352.         or
  353.            CFLAGS+= -mpentiumpro
  354. 1.21)   Why do I get strange results with printing times (for example
  355.         in the regression test 'timespan')?
  356.         The times are appearing as: '4 hours 59 mins 60.00 secs'
  357.         instead of '5 hours'
  358.         This is a problem with the glibc2 library which comes with
  359.         Redhat 5.0. Update your glibc to the latest RedHat version
  360.         for v5.0/hurricane. Anything prior to glibc-2.0.7 is likely
  361.         to have the problem.
  362. 1.22)   Why don't I get any shared libraries for libpq when I compile
  363.         6.3.2?
  364.         There was some last minute breakage of the Linux configuration for
  365.         v6.3.2. Look in ftp://postgresql.org/pub/patches/ for a few fix-ups,
  366.         including a linux_elf patch.
  367. 1.23)   Why does the compile fail with messages about F_BOOLIN, F_BOOLOUT
  368.         and F_BYTEAIN being undeclared?
  369.         The actual messages are something like:
  370.         -I/usr/include/readline -O2 -Wall -Wmissing-prototypes -I..
  371.         -Wno-error -c bootstrap.c -o bootstrap.o
  372.         bootstrap.c:160: `F_BOOLIN' undeclared here (not in a function)
  373.         bootstrap.c:160: initializer element for `Procid[0].inproc' is not
  374.         constant
  375.         bootstrap.c:160: `F_BOOLOUT' undeclared here (not in a function)
  376.         bootstrap.c:160: initializer element for `Procid[0].outproc' is not
  377.         constant
  378.         bootstrap.c:161: `F_BYTEAIN' undeclared here (not in a function)
  379.         bootstrap.c:161: initializer element for `Procid[1].inproc' is not
  380.         constant
  381.         This is tricky unless you know why it happens, as these constants
  382.         don't seem to be defined anywhere.
  383.         The solution is to make sure that cpp is included in your path
  384.         before you start the make.
  385.         On Redhat 5.1, cpp is in /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3
  386. ----------------------------------------------------------------------
  387. Section 2:      Compiling accessory programs
  388. ----------------------------------------------------------------------
  389. 2.1)    The linker fails to find libX11 when compiling pgtclsh
  390.         Add the following to src/Makefile.custom
  391.                 X11_LIBDIR = /usr/X11R6/lib
  392. ----------------------------------------------------------------------
  393. Section 3:      Runtime Problems
  394. ----------------------------------------------------------------------
  395. 3.1)    I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when
  396.         running scripts like createuser
  397.         This is a bug in V1.06-V1.07 of Postgres and is fixed in V1.08
  398.         and above.
  399. 3.2)    I run postmaster and after that system says 'Bad system call(Core
  400.         dumped)'
  401.         This indicates that you have not compiled shared memory support
  402.         into your kernel. You need to recompile the Linux kernel to add this
  403.         feature.
  404. 3.3)    When I try to start the Postmaster, why do I get an error of the form
  405.         Failed Assertion("!(file != 0):(null)", File:
  406.         "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
  407.         !(file != 0) (0)
  408.         initdb: could not create template database
  409.         initdb: cleaning up.
  410.         Your permissions on the file /dev/null are wrong.
  411.         ls -l /dev/null should give you something like:
  412.                 crw-rw-rw-  1 root  wheel    2,   2 Oct  8 18:41 /dev/null
  413.         Correct the permissions using:
  414.                 chmod a+rw /dev/null
  415. 3.4)    Why doesn't createuser work?
  416.         There is a problem with Version 2.5.3 of GNU flex and createuser.
  417.         Your options are to downgrade flex to V2.5.2, upgrade to V2.5.4
  418.         or apply a patch to V2.5.3 which is supplied in doc/README.flex
  419.         You may obtain V2.5.4 from
  420.         ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz
  421. 3.5)    Why do I get an error like:
  422.         IpcMemoryCreate: memKey=155356396 , size=760632 ,
  423.         permission=384IpcMemoryCreate: shmget(..., create, ...)
  424.         failed: Invalid argument
  425.         You haven't build IPC support into your Linux kernel. You
  426.         will have to rebuild the kernel and switch on this option.
  427. 3.6)    Why does psql fail with:
  428.         psql: can't load library 'libpq.so.1'
  429.         Psql has been compiled to link dynamically with the libpq
  430.         library.
  431.         To solve this, you should log in as root and edit the file
  432.                 /etc/ld.so.conf
  433.         Add a single line at the end which gives the name of the
  434.         PostgreSQL library directory (the lib subdirectory of your
  435.         PostgreSQL installation) and run
  436.                 /sbin/ldconfig -v
  437.         Alternatively, (and if you don't have root access), you may
  438.         use the LD_LIBRARY_PATH environment variable.
  439.         The LD_LIBRARY_PATH variable contains a colon separated list of
  440.         paths to be searched for shared libraries.  This list is
  441.         searched before the libraries specified by ldconfig.
  442.         Therefore under Bash, you would do something like:
  443.                 export LD_LIBRARY_PATH='PathToPGSQL'/lib
  444.         or, using tcsh
  445.                 setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib
  446.         replacing 'PathToPGSQL' with the appropriate path to your top level
  447.         PostgreSQL directory
  448.         Note that the ldd command can be used on a dynamically linked
  449.         executable to list the paths to all the shared libraries upon
  450.         which the executable depends.
  451. 3.7)    Other strange behaviour
  452.         I'm not sure what the symptoms might be except for nothing
  453.         working properly, but it has been pointed out that one needs
  454.         to be careful that the dynamic loader loads the correct version
  455.         of the libpq library. If you have old versions lying around
  456.         in your library path (for example in /usr/lib) these may get
  457.         loaded instead of the new version you intended to load. Make
  458.         sure you get them out of the way and look at Q3.6 for
  459.         details of loading libraries.
  460. 3.8)    When PostgreSQL is running when the system is shutdown, Linux
  461.         always fsck's the disk when rebooted.
  462.         There have been some reports of this happening and it seems
  463.         to be a result of running PostgreSQL from /etc/inittab as
  464.         suggested in the INSTALL document.
  465.         You are therefore recommended to start the postmaster from an
  466.         rc script. Under a Slackware-like release, you would modify
  467.         /etc/rc.d/rc.local to start the postmaster. Under a RedHat-like
  468.         release you should create a SysV style script in
  469.         /etc/rc.d/rc3.d based on the /etc/rc.d/init.d skeleton file.
  470.         There's a sample file in contrib/linux/postgres.init
  471.         Here's another sample file supplied by John Robinson
  472.          which you should modify as needed:
  473. #!/bin/sh
  474. #
  475. # postgreSQL.init This shell script takes care of starting and stopping
  476. #               the PostgreSQL postmaster.
  477. #
  478. # Source function library.
  479. . /etc/rc.d/init.d/functions
  480. # Source networking configuration.
  481. . /etc/sysconfig/network
  482. # Check that networking is up.
  483. [ ${NETWORKING} = "no" ] && exit 0
  484. # See how we were called.
  485. case "$1" in
  486.   start)
  487.         # Start daemons.
  488.         echo -n "Starting postgres Postmaster daemon:"
  489.         if [ -z "`pidofproc postmaster`" ]
  490.         then
  491.                 su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgr
  492. eSQL/data -p 5432 &"
  493.                 echo -n " postmaster"
  494.         else
  495.                 echo -n " (already running)"
  496.         fi
  497.         echo
  498.         touch /var/lock/subsys/postgres
  499.         ;;
  500.   stop)
  501.         # Stop daemons.
  502.         echo -n "Shutting down postgres Postmaster daemon: "
  503.         killall -TERM postmaster 2>/dev/null
  504.         killall -TERM postgres 2>/dev/null
  505.         echo
  506.         rm -f /var/lock/subsys/postgres
  507.         ;;
  508.   *)
  509.         echo "Usage: postgres {start|stop}"
  510.         exit 1
  511. esac
  512. exit 0
  513. 3.9)    Why does Query 32 in the regression tests take so long?
  514.         This is due to a bug in regression scripts which only happens
  515.         on linux boxes. There are two workarounds as far as I know
  516.         (information from Tatsuo Ishii ):
  517.         1. change following in regress.sh:
  518.                 time postgres -texecutor -tplanner -Q bench < bench.sql
  519.         to:
  520.                 postgres -texecutor -tplanner -Q bench < bench.sql
  521.         2. after running the test, remove a line at the very end of
  522.         bench.out something like:
  523.                 85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata
  524.  0maxresident)k
  525.         then type:
  526.                 sh ./perquery < bench.out > & bench.out.perquery
  527. 3.10)   Why do I get funny rounding results in some date/time arithmetic,
  528.         such as
  529.            select '4 hours'::timespan;
  530.         returning '3 hours 59 minutes 60 seconds'?
  531.         You are running the new glibc2 libraries and have a version earlier tha
  532. n
  533.         2.0.7. It is a math rounding problem in the library. Upgrade your libra
  534. ry.
  535. ----------------------------------------------------------------------------
  536. Dr. Andrew C.R. Martin                             University College London
  537. EMAIL: (Work) martin@biochem.ucl.ac.uk    (Home) andrew@stagleys.demon.co.uk
  538. URL:   http://www.biochem.ucl.ac.uk/~martin
  539. Tel:   (Work) +44(0)171 419 3890                    (Home) +44(0)1372 275775