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<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> 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 <[email protected]>. [postgres@localhost postgresql-8.4.2]$