mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			411 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			411 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ====================================================
 | |
| Frequently Asked Questions (FAQ) for Postgres95
 | |
| Linux Specific
 | |
| TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
 | |
| ====================================================
 | |
| last updated:           Mon Oct 28 10:25:00 BST 1996
 | |
| 
 | |
| 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):
 | |
| -0.*)   Bugs in Postgres95 V1.08
 | |
| *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.9)   Why do I get problems with ld.so?
 | |
| *1.13)  What are the references in X11_LIB to libsocket and libnsl in
 | |
|         src/Makefile.global?
 | |
| 
 | |
| 
 | |
| This file is divided approximately as follows:
 | |
| 1.*)    Installing Postgres95
 | |
| 2.*)    Compiling accessory programs
 | |
| 3.*)    Runtime Problems
 | |
| 4.*)    Spurious Problems in Need of Verification
 | |
| 
 | |
| 
 | |
| Questions answered:
 | |
| 1.1)    What changes do I need to make to src/Makefile.global
 | |
| 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] 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 Postgres95 on an a.out system?
 | |
| 1.12)   Why does make fail with:
 | |
|         yacc -d /disk2/postgres95/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?
 | |
| 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/postgres95/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
 | |
| 4.1)    Why doesn't the postmaster start the first time?
 | |
| 
 | |
| ----------------------------------------------------------------------
 | |
| Section 1:      Compiling Postgres95
 | |
| ----------------------------------------------------------------------
 | |
| 
 | |
| 1.1)    What changes do I need to make to src/Makefile.global
 | |
| 
 | |
|         You *must* set the following variables:
 | |
|                 PORTNAME=       linux
 | |
| 
 | |
|         You will also need to change the following to match your own
 | |
|         installation:
 | |
|                 SRCDIR
 | |
|                 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 comment out the USE_READLINE variable in   
 | |
|         src/Makefile.global 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?
 | |
| 
 | |
|         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!
 | |
| 
 | |
|         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?
 | |
| 
 | |
|         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 3.1 distribution and unpack this file
 | |
|         from the root (/) directory, then do
 | |
| 
 | |
|                 sh install/doinst.sh
 | |
| 
 | |
|         to complete the installation. Follow this with
 | |
| 
 | |
|                 ldconfig
 | |
| 
 | |
|         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
 | |
| 
 | |
| 
 | |
| 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/mk/port/postgres.mk.linux
 | |
| 
 | |
| 
 | |
| 1.7)    I get warnings of the form 
 | |
|         warning: cast from pointer to integer of different size
 | |
| 
 | |
|         These can safely be ignored
 | |
| 
 | |
| 1.8)    [SuSE-Linux 4.2] Where is curses and termcap?
 | |
| 
 | |
|         SuSE-Linux has ncurses but not curses. Edit src/bin/psql/Makefile and 
 | |
|         Change
 | |
|                 LIBCURSES=   -lcurses
 | |
|         to
 | |
|                 LIBCURSES=   -lncurses
 | |
| 
 | |
|         SuSE-Linux has the termcap library is in /usr/lib/termcap instead of 
 | |
|         in /usr/lib
 | |
|         Edit src/bin/psql/Makefile and
 | |
|         Change
 | |
|                 ifeq ($(PORTNAME), linux)
 | |
|                 LD_ADD += -ltermcap
 | |
|                 else
 | |
|         to
 | |
|                 ifeq ($(PORTNAME), linux)
 | |
|                 LD_ADD += -L/usr/lib/termcap -ltermcap
 | |
|                 else
 | |
| 
 | |
|         In fact, since ncurses uses terminfo rather than termcap, it should
 | |
|         be possible to change this line to
 | |
|                 LD_ADD += 
 | |
|         since you shouldn't need the termcap library.
 | |
| 
 | |
| 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 Postgres95. Note that flex 2.5.3 has a bug: see
 | |
|         Question 3.4.
 | |
| 
 | |
| 1.11)   How do I compile Postgres95 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
 | |
| 
 | |
|         Second, comment out the LINUX_ELF line in src/mk/port/postgres.mk.linux
 | |
| 
 | |
| 1.12)   Why does make fail with:
 | |
|         yacc -d /disk2/postgres95/src/backend/parser/gram.y
 | |
|         make: /usr/bin/make: cannot execute binary file
 | |
| 
 | |
|         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.
 | |
| 
 | |
| 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 
 | |
|         LIBCURSES variable in src/bin/psql/Makefile since Debian provides 
 | |
|         a link from libncurses to libcurses (unlike SuSE-Linux --- see
 | |
|         Question 1.8).
 | |
| 
 | |
|         Edit src/bin/psql/Makefile and change:
 | |
| 
 | |
|                 ifeq ($(PORTNAME), linux)
 | |
|                 LD_ADD += -ltermcap
 | |
|                 else
 | |
| 
 | |
|         to
 | |
| 
 | |
|                 ifeq ($(PORTNAME), linux)
 | |
|                 CFLAGS += 
 | |
|                 else
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ----------------------------------------------------------------------
 | |
| Section 2:      Compiling accessory programs
 | |
| ----------------------------------------------------------------------
 | |
| 
 | |
| 2.1)    The linker fails to find libX11 when compiling pgtclsh
 | |
| 
 | |
|         Modify the src/Makefile.global to change
 | |
|                 X11_LIBDIR = /usr/lib
 | |
|         to
 | |
|                 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
 | |
| 
 | |
| 3.2)    I run postmaster and after that system says 'Bad system call(Core 
 | |
|         dumped)'
 | |
| 
 | |
|         This indicates that you have no 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/postgres95/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, apply a patch to
 | |
|         V2.5.3 (supplied in doc/README.flex) or wait for V2.5.4 which 
 | |
|         will fix the bug.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| ----------------------------------------------------------------------
 | |
| Section 4:      Spurious Problems in Need of Verification
 | |
| ----------------------------------------------------------------------
 | |
| 
 | |
| 4.1)    Why doesn't the postmaster start the first time?
 | |
| 
 | |
|         Pawko Olszewski <alder@amg.com.pl> reported a problem that, using
 | |
|         Linux kernel 2.0.18, the postmaster wouldn't start the first time 
 | |
|         it is run using
 | |
| 
 | |
|                 postmaster -B 256
 | |
| 
 | |
|         but if run as
 | |
| 
 | |
|                 postmaster -B 64
 | |
| 
 | |
|         killed and then restarted as
 | |
| 
 | |
|                 postmaster -B 256
 | |
| 
 | |
|         everything was OK.
 | |
| 
 | |
|         I haven't been able to repeat this problem! Nobody else has
 | |
|         reported anything similar.
 | |
| 
 | |
| 
 | |
| ****************************************************************************
 | |
| Dr. Andrew C.R. Martin,         University College London & SciTech Software
 | |
| EMAIL: martin@biochem.ucl.ac.uk                Tel:(Work) +44(0)171 419 3890
 | |
| URL: http://www.biochem.ucl.ac.uk/~martin          (Home) +44(0)1372 275775
 | |
| ****************************************************************************
 | |
| 
 |