1. 操作系统信息:Red Hat Enterprise Linux 4
2. 下载PostgreSQL源码:http://www.postgresql.org/ftp/source,现在已经更新到了9.1beta版本了,不过安装过程基本一致,我之前下载的是8.4.2,所以以8.4.2进行描述。
3.上传下载到的postgresql-8.4.2.tar.gz到/opt目录下。
4. 创建postgres用户及dba组,并切换到postgres用户。
#useradd -g dba postgres
5.将postgresql-8.4.2.tar.gz的属主改为postgres,并解压。
[root@localhost ~]# cd /opt
[root@localhost ~]# #chown postgres postgresql-8.4.2
[root@localhost ~]# #su - postgres
[postgres@localhost opt]$$ cd /opt
[postgres@localhost opt]$$tar -zxvf postgresql-8.4.2.tar.gz
[postgres@localhost opt]$$ ll
总用量 32
drwxr-xr-x 2 root root 4096 3月 28 19:49 gcc_test
drwxr-xr-x 8 postgres root 4096 7月 9 09:44 postgresql
drwxrwxrwx 6 postgres 258 4096 7月 9 09:40 postgresql-8.4.2
drwxr-xr-x 2 root root 4096 4月 2 19:20 testbool
6. 进入postgresql-8.4.2目录,进行配置
[postgres@localhost opt]$ cd postgresql-8.4.2/
[postgres@localhost postgresql-8.4.2]$./configure --prefix=/opt/postgresql --enable-profiling --with-blocksize=8 --with-wal-blocksize=8
注,各配置项意义见备后文备注。
7.编译,大约需要5分钟,如过程中有失败,请确认系统上是否有make, gcc等工具,以及目录权限问题。
[postgres@localhost postgresql-8.4.2]$make
8.安装,执行2分钟左右,屏幕打印“PostgreSQL installation complete”表示安装完成。
[postgres@localhost postgresql-8.4.2]$make install
9.初始化数据库。
[postgres@localhost postgresql-8.4.2]$ cd /opt/postgresql/bin/
[postgres@localhost bin]$./initdb --encoding=utf8 -D /opt/postgresql/data
初始化完成后屏幕打印如下信息:
Success. You can now start the database server using:
./postgres -D /opt/postgresql/data
or
./pg_ctl -D /opt/postgresql/data -l logfile start
10. 启动数据库
[postgres@localhost bin]$./postgres -D /opt/postgresql/data
当然,可以通过日志重写向,将启动信息写入日志,例如:
[postgres@localhost bin]$ ./pg_ctl -D /opt/postgresql/data/ -l /opt/postgresql/log/pg_server.log start
将日志信息记录在文件/opt/postgresql/log/pg_server.log中,当然,在执行前,请先创建这个文件,且属主为postgres。
11.安装完毕。
备注:编译配置项各参数说明,可根据实际情况选择使用:
[postgres@localhost postgresql-8.4.2]$ ./configure -help
`configure' configures PostgreSQL 8.4.2 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local/pgsql]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/pgsql/bin', `/usr/local/pgsql/lib' etc. You can specify
an installation prefix other than `/usr/local/pgsql' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/postgresql]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-integer-datetimes
disable 64-bit integer date/time support
--enable-nls[=LANGUAGES]
enable Native Language Support
--disable-shared do not build shared libraries
--disable-rpath do not embed shared library search path in
executables
--disable-spinlocks do not use spinlocks
--enable-debug build with debugging symbols (-g)
--enable-profiling build with profiling enabled
--enable-coverage build with coverage testing instrumentation
--enable-dtrace build with DTrace support
--enable-depend turn on automatic dependency tracking
--enable-cassert enable assertion checks (for debugging)
--enable-thread-safety make client libraries thread-safe
--enable-thread-safety-force
force thread-safety despite thread test failure
--disable-float4-byval disable float4 passed by value
--disable-float8-byval disable float8 passed by value
--disable-largefile omit support for large files
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-template=NAME override operating system template
--with-includes=DIRS look for additional header files in DIRS
--with-libraries=DIRS look for additional libraries in DIRS
--with-libs=DIRS alternative spelling of --with-libraries
--with-pgport=PORTNUM set default port number [5432]
--with-blocksize=BLOCKSIZE
set table block size in kB [8]
--with-segsize=SEGSIZE set table segment size in GB [1]
--with-wal-blocksize=BLOCKSIZE
set WAL block size in kB [8]
--with-wal-segsize=SEGSIZE
set WAL segment size in MB [16]
--with-CC=CMD set compiler (deprecated)
--with-tcl build Tcl modules (PL/Tcl)
--with-tclconfig=DIR tclConfig.sh is in DIR
--with-perl build Perl modules (PL/Perl)
--with-python build Python modules (PL/Python)
--with-gssapi build with GSSAPI support
--with-krb5 build with Kerberos 5 support
--with-krb-srvnam=NAME default service principal name in Kerberos
[postgres]
--with-pam build with PAM support
--with-ldap build with LDAP support
--with-bonjour build with Bonjour support
--with-openssl build with OpenSSL support
--without-readline do not use GNU Readline nor BSD Libedit for editing
--with-libedit-preferred
prefer BSD Libedit over GNU Readline
--with-ossp-uuid use OSSP UUID library when building
contrib/uuid-ossp
--with-libxml build with XML support
--with-libxslt use XSLT support when building contrib/xml2
--with-system-tzdata=DIR
use system time zone data in DIR
--without-zlib do not use Zlib
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CPP C preprocessor
LDFLAGS_SL linker flags for shared library linking
DOCBOOKSTYLE
location of DocBook stylesheets
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to .
[postgres@localhost postgresql-8.4.2]$