Update machine-specific FAQs. Too late.
This commit is contained in:
parent
83cd375cd2
commit
4c4f11896a
@ -1,45 +1,49 @@
|
||||
=====================================================
|
||||
Frequently Asked Questions (FAQ) for PostgresSQL V6.1
|
||||
Frequently Asked Questions (FAQ) for PostgreSQL V6.1
|
||||
IRIX Specific
|
||||
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
||||
=====================================================
|
||||
last updated: Fri Jun 13 09:54:00 BST 1997
|
||||
last updated: Fri Sep 19 11:51:00 BST 1997
|
||||
|
||||
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 under Irix 6.4?
|
||||
+1.6) The make fails with the following message:
|
||||
ld32: ERROR 4: Conflicting flag setting: -call_shared
|
||||
|
||||
This file is divided approximately as follows:
|
||||
1.*) Installing Postgres95
|
||||
2.*) Uninstalling Postgres95
|
||||
3.*) Extending Postgres95
|
||||
1.*) Installing PostgreSQL
|
||||
2.*) Uninstalling PostgreSQL
|
||||
3.*) Extending PostgreSQL
|
||||
|
||||
|
||||
Questions answered:
|
||||
1.1) What extra items do I need to install Postgres95 under Irix?
|
||||
1.1) What extra items do I need to install PostgreSQL under Irix?
|
||||
1.2) What changes do I need to make to src/Makefile.global?
|
||||
1.3) What are the references in X11_LIB to libsocket and libnsl in
|
||||
src/Makefile.global?
|
||||
1.4) Are there any other changes I should make?
|
||||
1.5) Can I install PostgreSQL under Irix 6.4?
|
||||
1.5) Can I install PostgreSQL under Irix 6.x?
|
||||
1.6) The make fails with the following message:
|
||||
ld32: ERROR 4: Conflicting flag setting: -call_shared
|
||||
2.1) Why can't I move the executable files?
|
||||
3.1) How do I compile a C program to create a function for extending
|
||||
Postgres95
|
||||
PostgreSQL
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Section 1: Installing Postgres95
|
||||
Section 1: Installing PostgreSQL
|
||||
----------------------------------------------------------------------
|
||||
|
||||
1.1) What extra items do I need to install Postgres95 under Irix?
|
||||
1.1) What extra items do I need to install PostgreSQL under Irix?
|
||||
|
||||
You *must* have the following installed:
|
||||
a) Gnu make (installed as gmake)
|
||||
|
||||
You are recommended to install the following:
|
||||
a) GNU install (installed as ginstall)
|
||||
(This is part of the GNU fileutils package)
|
||||
|
||||
You may choose to install the following:
|
||||
a) GNU readline library (if you wish psql to have readline
|
||||
@ -83,15 +87,19 @@ Section 1: Installing Postgres95
|
||||
CUSTOM_INSTALL=ginstall
|
||||
|
||||
For an explanation as to why this is a good idea, see Question 2.1
|
||||
Ginstall is part of the GNU fileutils package.
|
||||
|
||||
|
||||
1.5) Can I install PostgreSQL under Irix 6.4?
|
||||
1.5) Can I install PostgreSQL under Irix 6.x?
|
||||
|
||||
Irix 6.4 has a bug in ld which mishandles the addresses of
|
||||
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. The following patch should be applied as
|
||||
a workaround. (Supplied by Bob Bruccoleri <bruc@bms.com>)
|
||||
to Silicon Graphics.
|
||||
|
||||
One option is to use the Gnu version of ld. Alternatively,
|
||||
the following patch should be applied as a workaround.
|
||||
(Supplied by Bob Bruccoleri <bruc@bms.com>)
|
||||
|
||||
*** ./backend/Makefile.orig Thu May 22 00:00:15 1997
|
||||
--- ./backend/Makefile Thu Jun 5 16:47:27 1997
|
||||
@ -117,8 +125,25 @@ Section 1: Installing Postgres95
|
||||
$(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)
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Section 2: Deinstalling Postgres95
|
||||
Section 2: Deinstalling PostgreSQL
|
||||
----------------------------------------------------------------------
|
||||
|
||||
2.1) Why can't I move the executable files?
|
||||
@ -140,14 +165,14 @@ Section 2: Deinstalling Postgres95
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Section 3: Extending Postgres95
|
||||
Section 3: Extending PostgreSQL
|
||||
----------------------------------------------------------------------
|
||||
3.1) How do I compile a C program to create a function for extending
|
||||
Postgres95
|
||||
PostgreSQL
|
||||
|
||||
Here is a sample command line:
|
||||
|
||||
cc -I/usr/local/postgres95/include/ -I/usr/local/postgres95/src/backend
|
||||
cc -I/usr/local/PostgreSQL/include/ -I/usr/local/PostgreSQL/src/backend
|
||||
-shared -o funcs.so funcs.c
|
||||
|
||||
|
@ -1,31 +1,18 @@
|
||||
=====================================================
|
||||
Frequently Asked Questions (FAQ) for PostgresSQL V6.0
|
||||
=======================================================
|
||||
Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1
|
||||
Linux Specific
|
||||
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
|
||||
=====================================================
|
||||
last updated: Wed Jan 29 20:16:00 GMT 1997
|
||||
=======================================================
|
||||
last updated: Wed Oct 01 11:45:00 BST 1997
|
||||
|
||||
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.1) What changes do I need to make to src/Makefile.global or
|
||||
src/Makefile.custom?
|
||||
*1.2) Why do I get problems with missing libreadline?
|
||||
*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.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.14) [DEBIAN] Where is libtermcap?
|
||||
*2.1) The linker fails to find libX11 when compiling pgtclsh
|
||||
+3.6) Why does psql fail with:
|
||||
psql: can't load library 'libpq.so.1'
|
||||
-4.*) Spurious problems
|
||||
|
||||
+3.9) Why does Query 32 in the regression tests take so long?
|
||||
|
||||
|
||||
This file is divided approximately as follows:
|
||||
1.*) Installing PostgreSQL
|
||||
@ -35,7 +22,7 @@ This file is divided approximately as follows:
|
||||
|
||||
Questions answered:
|
||||
1.1) What changes do I need to make to src/Makefile.global or
|
||||
src/Makefile.custom?
|
||||
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?
|
||||
@ -44,7 +31,7 @@ Questions answered:
|
||||
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.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?
|
||||
@ -54,6 +41,16 @@ Questions answered:
|
||||
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_bit'
|
||||
....
|
||||
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?
|
||||
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
|
||||
@ -72,20 +69,28 @@ Questions answered:
|
||||
failed: Invalid argument
|
||||
3.6) Why does psql fail with:
|
||||
psql: can't load library 'libpq.so.1'
|
||||
4.1) Why doesn't the postmaster start the first time?
|
||||
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?
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Section 1: Compiling PostgreSQL
|
||||
----------------------------------------------------------------------
|
||||
|
||||
1.1) What changes do I need to make to src/Makefile.global or
|
||||
src/Makefile.custom?
|
||||
src/Makefile.custom and are there any other changes needed?
|
||||
|
||||
These changes are most easily made by running the customize
|
||||
shell script in the src directory which will write a
|
||||
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.
|
||||
|
||||
If you do it by hand, you *must* set the following variable:
|
||||
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
|
||||
@ -130,6 +135,10 @@ Section 1: Compiling PostgreSQL
|
||||
|
||||
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
|
||||
@ -164,6 +173,10 @@ Section 1: Compiling PostgreSQL
|
||||
|
||||
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
|
||||
@ -236,26 +249,41 @@ Section 1: Compiling PostgreSQL
|
||||
except those related to system header files (which can also
|
||||
be safely ignored).
|
||||
|
||||
1.8) [SuSE-Linux 4.2] Where is curses and termcap?
|
||||
1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap?
|
||||
|
||||
SuSE-Linux has ncurses but not curses. Set the value of CURSES_LIB
|
||||
in src/Makefile.custom to -lncurses (or do this through the
|
||||
customize script).
|
||||
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.
|
||||
|
||||
SuSE-Linux has the termcap library is in /usr/lib/termcap instead of
|
||||
in /usr/lib. If you have a problem, you need to add the following
|
||||
line to src/Makefile.custom:
|
||||
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 comment out the
|
||||
change:
|
||||
ifeq ($(PORTNAME), linux)
|
||||
LD_ADD+= -ltermcap
|
||||
to:
|
||||
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).
|
||||
|
||||
You may also wish to force use of ncurses rather than curses by
|
||||
changing -lcurses to -lncurses.
|
||||
|
||||
|
||||
1.9) Why do I get problems with ld.so?
|
||||
@ -282,6 +310,7 @@ Section 1: Compiling PostgreSQL
|
||||
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=
|
||||
@ -327,6 +356,57 @@ Section 1: Compiling PostgreSQL
|
||||
LD_ADD+=
|
||||
|
||||
|
||||
1.15) [REDHAT] Can I get PostgreSQL as an RPM?
|
||||
|
||||
Yes! Michal Mosiewicz <mimo@lodz.pdi.net>
|
||||
(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_bit'
|
||||
....
|
||||
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
|
||||
|
||||
1.18) Can I install 6.1.1 under MkLinux?
|
||||
|
||||
Tatsuo Ishii <t-ishii@sra.co.jp> 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
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Section 2: Compiling accessory programs
|
||||
----------------------------------------------------------------------
|
||||
@ -375,9 +455,10 @@ Section 3: Runtime Problems
|
||||
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.
|
||||
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 ,
|
||||
@ -398,5 +479,122 @@ Section 3: Runtime Problems
|
||||
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
|
||||
/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
|
||||
<john@intelligent.co.uk> 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/postgreSQL/data -p 5432 &"
|
||||
echo -n " postmaster"
|
||||
else
|
||||
echo -n " (already running)"
|
||||
fi
|
||||
echo
|
||||
touch /var/lock/subsys/postgres
|
||||
;;
|
||||
stop)
|
||||
# Stop daemons.
|
||||
echo -n "Shutting down postgres Postmaster daemon: "
|
||||
killall -TERM postmaster 2>/dev/null
|
||||
killall -TERM postgres 2>/dev/null
|
||||
echo
|
||||
rm -f /var/lock/subsys/postgres
|
||||
;;
|
||||
*)
|
||||
echo "Usage: postgres {start|stop}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
|
||||
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 <t-ishii@sra.co.jp>):
|
||||
|
||||
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
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user