1. Operating System Information: Red Hat Enterprise Linux 4
2. Download the PostgreSQL source code: PostgreSQL.
3.upload and download the sql-8.4.2.tar.gz to the/OPT directory.
4. Create a Postgres user and DBA group, and switch to Postgres user.
#useradd -g dba postgres
5.change the owner of postgresql-8.4.2.tar.gz to Postgres and decompress the package.
[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 total usage 32drwxr-xr-x 2 root Root 4096 March 28 19:49 gcc_testdrwxr-xr-x 8 Postgres root 4096 July 9 09:44 postgresqldrwxrwxrwx 6 Postgres 258 4096 July 9 09:40 postgresql-8.4.2drwxr-xr-x 2 root Root 4096 April 2 19:20 testbool
6. Enter the postgresql-8.4.2 directory for configuration
[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
NOTE: For the meaning of each configuration item, see the remarks in the following document.
7. It may take about five minutes to compile the program. If the compilation process fails, check whether tools such as make and GCC are available on the system, and check the directory permission.
[postgres@localhost postgresql-8.4.2]$make
8. Install the tool. The installation is completed in about 2 minutes. "PostgreSQL Installation Complete" is printed on the screen.
[postgres@localhost postgresql-8.4.2]$make install
9. initialize the database.
[postgres@localhost postgresql-8.4.2]$ cd /opt/postgresql/bin/[postgres@localhost bin]$./initdb --encoding=utf8 -D /opt/postgresql/data
After initialization, the following information is printed on the screen:
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. Start the database
[postgres@localhost bin]$./postgres -D /opt/postgresql/data
Of course, you can write startup information into logs through log rewriting, for example:
[postgres@localhost bin]$ ./pg_ctl -D /opt/postgresql/data/ -l /opt/postgresql/log/pg_server.log start
Record the log information in the file/opt/PostgreSQL/log/pg_server.log. Of course, create this file before execution and the owner is ipvs.
11. installation is complete.
Note: Compile the parameter description of the configuration item. You can select to use it based on the actual situation:
[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 asVAR=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 specifyan 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 filesOptional 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 stylesheetsUse these variables to override the choices made by `configure' or to helpit to find libraries and programs with nonstandard names/locations.Report bugs to <pgsql-bugs@postgresql.org>.[postgres@localhost postgresql-8.4.2]$