auto-import postgresql-7.3.2-3 from postgresql-7.3.2-3.src.rpm
This commit is contained in:
parent
7fe3c31010
commit
06e8d17f1d
@ -1,3 +1 @@
|
|||||||
migration-scripts.tar.gz
|
postgresql-7.3.2.tar.gz
|
||||||
postgresql-7.2.4.tar.gz
|
|
||||||
postgresql-dump.1.gz
|
|
||||||
|
253
README.rpm-dist
253
README.rpm-dist
@ -1,18 +1,14 @@
|
|||||||
README.rpm-dist
|
README.rpm-dist
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
Version 4.1, for the PostgreSQL 7.2.1-2PGDG RPMset.
|
Version 5.0, for the PostgreSQL 7.3-1PGDG RPMset.
|
||||||
Lamar Owen <lamar.owen@wgcr.org>
|
Lamar Owen <lamar.owen@wgcr.org>
|
||||||
|
|
||||||
DISCLAIMER: the following information is provided in the hope that it helps
|
|
||||||
people install and use PostgreSQL. It is being provided without warranty of
|
|
||||||
any kind, so, use at your own risk.
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
Contents:
|
Contents:
|
||||||
0.) Quick -i note.
|
0.) Quick -i note.
|
||||||
1.) Introduction, QuickStart, and credits
|
1.) Introduction, QuickStart, and credits
|
||||||
2.) PostgreSQL RPM packages and rationale
|
2.) PostgreSQL RPM packages and rationale
|
||||||
3.) Upgrading. (Deprecated. Will be removed in a future README)
|
3.) Starting multiple postmasters
|
||||||
4.) Regression Testing
|
4.) Regression Testing
|
||||||
5.) Starting postmaster automatically on startup
|
5.) Starting postmaster automatically on startup
|
||||||
6.) Grand Unified Configuration(GUC) File.
|
6.) Grand Unified Configuration(GUC) File.
|
||||||
@ -31,35 +27,47 @@ recommended way to get '-i' functionality back.
|
|||||||
|
|
||||||
INTRODUCTION
|
INTRODUCTION
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
This document exists to explain the layout of the RPM's for PostgreSQL, to
|
This document exists to explain the layout of the RPM's for PostgreSQL,to
|
||||||
explain how to migrate from an older version, and to explain WHY it can be
|
describe various RPM specifics, and to document special features found
|
||||||
so difficult to upgrade PostgreSQL.
|
in the RPMset.
|
||||||
|
|
||||||
This document is written to be applicable to version 7.2.1 of PostgreSQL,
|
This document is written to be applicable to version 7.3 of PostgreSQL,
|
||||||
which is the current version of the RPM's as of this writing.
|
which is the current version of the RPM's as of this writing. More to the
|
||||||
|
point, versions prior to 7.3 are not documented here.
|
||||||
|
|
||||||
Official PostgreSQL Global Development Group RPM's carry a 'PGDG' after the
|
Official PostgreSQL Global Development Group RPM's have from version 7.1.2
|
||||||
release number. Other RPMset's as distributed with Linux distributions may
|
on carried a 'PGDG' after the release number. Other RPMset's as distributed
|
||||||
have a different release number and initials.
|
with Linux distributions may have a different release number and initials.
|
||||||
|
|
||||||
It is preferable for the distribution-specific set to be the one used, as
|
It is preferable for the distribution-specific set to be the one used, as
|
||||||
the PGDG set is intentionally generic. So, if your distro has a set of RPMs,
|
the PGDG set is intentionally generic. So, if your distro has a set of RPMs,
|
||||||
use them in preference. If you want to stay up-to-date on the PostgreSQL
|
use them in preference. If you want to stay up-to-date on the PostgreSQL
|
||||||
core itself, use the PGDG generic set -- but understand that it is a
|
core itself, use the PGDG generic set -- but understand that it is a
|
||||||
GENERIC set. In particular, SuSE and RedHat users that use late-model
|
GENERIC set.
|
||||||
distributions should definitely use their RPMs. Trond and Reinhard do a
|
|
||||||
good job keeping them up to date. The Polish(ed) Linux Distribution also
|
|
||||||
does an excellent job with the PLD RPM version.
|
|
||||||
|
|
||||||
These RPMs are designed to be LSB-compliant -- if you find this not to be the
|
These RPMs are designed to be LSB-compliant -- if you find this not to be the
|
||||||
case, please let me know by way of the pgsql-ports@postgresql.org mailing
|
case, please let me know by way of the pgsql-ports@postgresql.org mailing
|
||||||
list.
|
list.
|
||||||
|
|
||||||
|
These RPMs no longer support any sort of upgrading process other than that
|
||||||
|
documented in the regular documentation. That is, you must dump, upgrade,
|
||||||
|
initdb, and restore your data. The 7.2 to 7.3 migration can be quite
|
||||||
|
difficult, even to the point of requiring hand-editing of the dumpfile.
|
||||||
|
|
||||||
|
Thus, the 7.3 postgresql-server RPM specifically conflicts with prior
|
||||||
|
versions. The old server subpackage must be removed first, the new package
|
||||||
|
installed, and the data restored from dump.
|
||||||
|
|
||||||
|
A new section on running multiple postmasters has replaced the old upgrade
|
||||||
|
instructions.
|
||||||
|
|
||||||
QUICKSTART
|
QUICKSTART
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
If this is an upgrade, please go to section 3, UPGRADING.
|
For a fresh installation on a recent Red Hat or similar system, a simple
|
||||||
If this is a fresh installation, simply start the postmaster using:
|
service postgresql start
|
||||||
/etc/rc.d/init.d/postgresql start (on RedHat and TurboLinux)
|
as root will prepare a new database (initdb), and start a postmaster that
|
||||||
|
will listen on Unix socket 5432 only. Edit /var/lib/pgsql/data/postgresql.conf
|
||||||
|
to enable TCP/IP -- see the section on '-i.'
|
||||||
|
|
||||||
The file /var/lib/pgsql/.bash_profile is now packaged to help with the
|
The file /var/lib/pgsql/.bash_profile is now packaged to help with the
|
||||||
setting of environment variables. You may edit this file, and it won't be
|
setting of environment variables. You may edit this file, and it won't be
|
||||||
@ -77,7 +85,7 @@ CREDITS
|
|||||||
Thomas Lockhart
|
Thomas Lockhart
|
||||||
Uncle George
|
Uncle George
|
||||||
Ryan Kirkpatrick
|
Ryan Kirkpatrick
|
||||||
Trond Eivind Glomsrød
|
Trond Eivind Glomsrd
|
||||||
Mark Knox
|
Mark Knox
|
||||||
Mike Mascari
|
Mike Mascari
|
||||||
Nicolas Huillard
|
Nicolas Huillard
|
||||||
@ -86,42 +94,38 @@ Roger Luethi
|
|||||||
Jeff Johnson
|
Jeff Johnson
|
||||||
Reinhard Max
|
Reinhard Max
|
||||||
Peter Eisentraut
|
Peter Eisentraut
|
||||||
|
Joe Conway
|
||||||
A big THANK YOU to Trond, particularly. He has poured an amazing amount of
|
|
||||||
work into this package, particularly in cleaning up my errors, as well as
|
|
||||||
getting the contrib package to actually be useful.
|
|
||||||
|
|
||||||
POSTGRESQL RPM PACKAGES AND RATIONALE.
|
POSTGRESQL RPM PACKAGES AND RATIONALE.
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
[This section has been edited. See prior versions for older history]
|
The RPMset is packaged in the following subpackages:
|
||||||
|
|
||||||
PostgreSQL is a large, multifaceted program, with many clients and options
|
|
||||||
that all users will not need. So, several subpackages are built. Here is
|
|
||||||
the list of the current (7.2.1) packages:
|
|
||||||
|
|
||||||
postgresql: Some clients and libraries, and documentation
|
postgresql: Some clients and libraries, and documentation
|
||||||
postgresql-server: Server executables and data files
|
postgresql-server: Server executables and data files
|
||||||
postgresql-devel: Client-side development libraries
|
postgresql-devel: Client-side development libraries
|
||||||
postgresql-perl: PERL client module
|
postgresql-tcl: TCL/TK client libraries and docs
|
||||||
postgresql-python: The PygreSQL client library
|
postgresql-python: The PygreSQL client library
|
||||||
postgresql-odbc: Linux ODBC client (not required to use ODBC from Win95)
|
|
||||||
postgresql-jdbc: JAR of the JDBC client
|
postgresql-jdbc: JAR of the JDBC client
|
||||||
postgresql-test: The regression tests and associated files.
|
postgresql-test: The regression tests and associated files.
|
||||||
postgresql-tk: Tk client and pgaccess.
|
|
||||||
postgresql-tcl: Tcl client and PL ONLY.
|
postgresql-tcl: Tcl client and PL ONLY.
|
||||||
postgresql-libs: client shared libraries.
|
postgresql-libs: client shared libraries.
|
||||||
postgresql-docs: extra documentation,such as the SGML doc sources.
|
postgresql-docs: extra documentation,such as the SGML doc sources.
|
||||||
postgresql-contrib: The contrib source tree, as well as selected binaries.
|
postgresql-contrib: The contrib source tree, as well as selected binaries.
|
||||||
|
postgresql-pl: PL/Perl (if possible on this dist), PL/Python, and PL/Tcl
|
||||||
|
|
||||||
The postgresql-libs package is required for all installations. Otherwise, a
|
Note that there is no postgresql-perl, postgresql-odbc, postgresql-tk, or
|
||||||
mix and match installation may be made. The devel package is required to
|
postgresql-plperl package any longer. This is due to these portions being
|
||||||
do any compilation of a program that uses either the client libs or the
|
removed from the PostgreSQL source tarball. The TK client package 'pgaccess'
|
||||||
server (SPI) interface.
|
was the core of the -tk subpackage -- so the pgtksh client was rolled back
|
||||||
|
into the -tcl package.
|
||||||
|
|
||||||
|
PostgreSQL is split up into multiple packages so that users can 'pick and
|
||||||
|
choose' what pieces are needed, and what dependencies are required.
|
||||||
|
|
||||||
RPM FILE LOCATIONS.
|
RPM FILE LOCATIONS.
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
In compliance with the LSB, the PostgreSQL RPM's install files in a manner
|
In compliance with the Linux FHS, the PostgreSQL RPM's install files in a manner
|
||||||
not consistent with much of the PostgreSQL documentation. According to the
|
not consistent with most of the PostgreSQL documentation. According to the
|
||||||
standard PostgreSQL documentation, PostgreSQL is installed under the directory
|
standard PostgreSQL documentation, PostgreSQL is installed under the directory
|
||||||
/usr/local/pgsql, with executables, source, and data existing in various
|
/usr/local/pgsql, with executables, source, and data existing in various
|
||||||
subdirectories.
|
subdirectories.
|
||||||
@ -142,7 +146,6 @@ Data: /var/lib/pgsql/data
|
|||||||
Backup area: /var/lib/pgsql/backup
|
Backup area: /var/lib/pgsql/backup
|
||||||
Templates: /usr/share/pgsql
|
Templates: /usr/share/pgsql
|
||||||
Procedural Languages: /usr/lib/pgsql
|
Procedural Languages: /usr/lib/pgsql
|
||||||
TK client docs: /usr/share/doc/postgresql-tk-x.y.z
|
|
||||||
Development Headers: /usr/include/pgsql
|
Development Headers: /usr/include/pgsql
|
||||||
Other shared data: /usr/share/pgsql
|
Other shared data: /usr/share/pgsql
|
||||||
Regression tests: /usr/lib/pgsql/test/regress (in the -test package)
|
Regression tests: /usr/lib/pgsql/test/regress (in the -test package)
|
||||||
@ -161,123 +164,31 @@ for you.
|
|||||||
These RPM's are meant to be LSB-compliant. If you find errors in them that
|
These RPM's are meant to be LSB-compliant. If you find errors in them that
|
||||||
cause thembe be non-compliant, please let me know.
|
cause thembe be non-compliant, please let me know.
|
||||||
|
|
||||||
UPGRADING.
|
MULTIPLE POSTMASTERS
|
||||||
-----------------------------------------------------------------------------
|
|
||||||
WARNING: This information is deprecated. Make sure to fully back up
|
|
||||||
your database files BEFORE upgrading the RPM. Unfortunately, even then
|
|
||||||
you may have problems -- so be ready to hand-edit dump files.
|
|
||||||
|
|
||||||
A pg_upgrade utility is found in the contrib tree -- but it is not really
|
|
||||||
production quality code. If this lack of easy upgrades bothers you, please
|
|
||||||
let the developer list (pgsql-hackers@postgresql.org) know about it -- maybe
|
|
||||||
seamless upgrades can be made a higher prioriy if enough users complain.
|
|
||||||
|
|
||||||
Use the following information at your own risk.
|
|
||||||
|
|
||||||
CAUTION: While a semi-automatic upgrade process has been implemented, it is
|
|
||||||
STRONGLY recommended that a full dump of your database (using pg_dumpall) is
|
|
||||||
performed BEFORE upgrading the RPMs! If you have already done the upgrade
|
|
||||||
with the RPM, and want to return to your previous version to do the dump,
|
|
||||||
find the old RPM's and use 'rpm -U --oldpackage' to downgrade.
|
|
||||||
|
|
||||||
I cannot overemphasize this precaution.
|
|
||||||
|
|
||||||
NOTE: moving your existing data from /var/lib/pgsql to /var/lib/pgsql/data is
|
|
||||||
not currently automatic -- you will need to do this yourself at this release!
|
|
||||||
This change occurred between 6.5.3 and 7.0, so upgrading from prior to 7.0 to
|
|
||||||
7.0 or later might be difficult. The rh-dump script is provided to ease this,
|
|
||||||
see below.
|
|
||||||
|
|
||||||
The single biggest problem with upgrading PostgreSQL RPM's has been the lack
|
|
||||||
of a reasonably automated upgrade process. PostgreSQL has the property of
|
|
||||||
the binary on-disk database format changing between major versions (like
|
|
||||||
between 6.3 and 6.4). However, a change from 6.5 to 6.5.3 does not change
|
|
||||||
the on-disk format.
|
|
||||||
|
|
||||||
This property (feature, misfeature, bug, whatever) has been a known property of
|
|
||||||
PostgreSQL since before it was called PostgreSQL -- it has always been this
|
|
||||||
way. However, the means by which an upgrade is performed is not readily
|
|
||||||
performed in a fully automated fashion, as a "dump-initdb-restore" cycle has
|
|
||||||
to be performed. This doesn't appear to be too difficult -- however, dumping
|
|
||||||
the old database requires the old executables -- and, if you've already done
|
|
||||||
an rpm -U postgresql* (or upgraded from an older version of RedHat and didn't
|
|
||||||
specifically exclude the postgresql rpms), you no longer have the older
|
|
||||||
executables to dump your data. And your data is useless (until you reinstall
|
|
||||||
the old version, that is). All RPM's prior to late releases of version 6.5.
|
|
||||||
1 have this upgrade issue.
|
|
||||||
|
|
||||||
The newest RPM's for PostgreSQL attempt to make your job in upgrading a little
|
|
||||||
easier. First, during the installation of the new RPM's, a copy is made of
|
|
||||||
all the executable files and libraries necessary to make a backup of your data.
|
|
||||||
Second, the initialization script in the new postgresql-server package detects
|
|
||||||
the version of any database found -- if the version is old, then the startup
|
|
||||||
of the new version is aborted. However, if no database is found, a new one
|
|
||||||
is made.
|
|
||||||
|
|
||||||
One thing must be remembered -- due to the restructuring of the PostgreSQL
|
|
||||||
RPM's, you will have to manually select the postgresql-server package if you
|
|
||||||
want the server -- it is not installed by default in an upgrade. You can either
|
|
||||||
select it during the upgrade/install, or you can mount your RedHat CD and
|
|
||||||
install manually with rpm -i.
|
|
||||||
|
|
||||||
To facilitate upgrading, the postgresql-dump utility has been provided. Look
|
|
||||||
at the man page for postgresql-dump to see its usage. All executables to
|
|
||||||
restore the immediately prior version of the PostgreSQL database are placed in
|
|
||||||
the directory /usr/lib/pgsql/backup, and are accessed by the postgresql-dump
|
|
||||||
script. The directory /usr/lib/pgsql/backup is owned by the postgres user --
|
|
||||||
you can use this directory to hold dump files and preserve directories.
|
|
||||||
|
|
||||||
The basic sequence is:
|
|
||||||
(as user postgres):
|
|
||||||
postgresql-dump -t /var/lib/pgsql/backup/db.bak -p /var/lib/pgsql/backup/old -d
|
|
||||||
(you can abort the ASCII dump with 'Q', as it uses more) Then, (as user root):
|
|
||||||
|
|
||||||
***** NOTE ***** ***** NOTE *****
|
|
||||||
|
|
||||||
The above script is broken. Use "rh-pgdump.sh targetfile" instead, remove the
|
|
||||||
old databases (/var/lib/pgsql/base) (or safer - move them somewhere else first),
|
|
||||||
start the database and follow the insert procedure described below.
|
|
||||||
|
|
||||||
***** NOTE ***** ***** NOTE *****
|
|
||||||
|
|
||||||
service postgresql start
|
|
||||||
|
|
||||||
(which will automatically create a new database structure) And finally,
|
|
||||||
|
|
||||||
(as user postgres):
|
|
||||||
psql -e template1 </var/lib/pgsql/backup/db.bak
|
|
||||||
|
|
||||||
Once you are satisfied that the data has been restored properly, you may remove
|
|
||||||
the dump file (/var/lib/pgsql/backup/db.bak) and the preserve directory
|
|
||||||
(/var/lib/pgsql/backup/old).
|
|
||||||
|
|
||||||
EXPLANATION OF STEPS:
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
postgresql-dump: dumps the old database structure out, using the postmaster and
|
The postgresql-server RPM contains an 'initscript' that is used to start the
|
||||||
the backend saved during the rpm upgrade. This step MUST be done as user
|
postmaster. The current version of this script has logic to be able to start
|
||||||
postgres.
|
multiple postmasters, with different data areas, listening on different ports,
|
||||||
|
etc. To use this functionality requires root access.
|
||||||
|
|
||||||
/etc/rc.d/init.d/postgresql start: initializes the new database structure that
|
As an example, let us create a secondary postmaster called, creatively enough,
|
||||||
the data from your old version will be restored into, does some sanity
|
'secondary'. Here are the steps:
|
||||||
checking, and starts the postmaster. Due to the nature of some of the tasks,
|
1.) create a hard link in /etc/rc.d/init.d (or equivalent location)
|
||||||
this step must be done as root.
|
to postgresql named 'secondary' : ln postgresql secondary Pick
|
||||||
|
a name not already used in /etc/rc.d/init.d!
|
||||||
|
2.) create a file in /etc/sysconfig/pgsql named secondary. This file is
|
||||||
|
a shell script -- typically you would define PGDATA, PGPORT, and PGOPTS
|
||||||
|
here. Since $PGDATA/postgresql.conf will override many of these
|
||||||
|
settings, except PGDATA, you might be surprised on startup.
|
||||||
|
3.) create the target PGDATA.
|
||||||
|
4.) Initdb the targe PGDATA as documented in the main documentation.
|
||||||
|
Automatic initdb may or may not work for you, so a manual one is
|
||||||
|
preferred. This must be done as user 'postgres'
|
||||||
|
5.) Edit postgresql.conf to change the port, address, tcpip settings, etc.
|
||||||
|
6.) Start the postmaster with 'service secondary start'.
|
||||||
|
|
||||||
psql -e: restores the old database into the new structure created by the
|
Note that there may be problems with the standard symlink -- consider this
|
||||||
previous step.
|
support experimental at this point in time.
|
||||||
|
|
||||||
NOTE:
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
If you have added tables, indices, or basically anything to the template1
|
|
||||||
database which is the default administrative database this script will NOT
|
|
||||||
upgrade your database. As a matter of fact you will lose your data included
|
|
||||||
in the template1 database. Please look at www.postgresql.org for information
|
|
||||||
on upgrading the template1 database. This is a known bug in the PostgreSQL
|
|
||||||
pg_dump and pg_dumpall utilities.
|
|
||||||
|
|
||||||
The above information is considered deprecated. The utilities it mentions
|
|
||||||
are also considered deprecated and will be removed from a future release of
|
|
||||||
the RPMset due to the difficulty involved with a dump-restore upgrade and the
|
|
||||||
hand-editing of dumpfiles that are sometimes necessary.
|
|
||||||
|
|
||||||
REGRESSION TESTING
|
REGRESSION TESTING
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
@ -316,10 +227,10 @@ STARTING POSTMASTER AUTOMATICALLY AT SYSTEM STARTUP
|
|||||||
RedHat Linux uses the System V Init package. A startup script for PostgreSQL
|
RedHat Linux uses the System V Init package. A startup script for PostgreSQL
|
||||||
is provided in the server package, as /etc/rc.d/init.d/postgresql. To start
|
is provided in the server package, as /etc/rc.d/init.d/postgresql. To start
|
||||||
the postmaster, with sanity checking, as root, run
|
the postmaster, with sanity checking, as root, run
|
||||||
/etc/rc.d/init.d/postgresql start
|
service postgresql start
|
||||||
to shut postmaster down,
|
to shut postmaster down,
|
||||||
/etc/rc.d/init.d/postgresql stop
|
service postgresql stop
|
||||||
There are other parameters to this script -- /etc/rc.d/init.d/postgresql for a
|
There are other parameters to this script -- execute 'service postgresql' for a
|
||||||
listing.
|
listing.
|
||||||
|
|
||||||
To get this script to run at system startup or any time the system switches into
|
To get this script to run at system startup or any time the system switches into
|
||||||
@ -366,28 +277,22 @@ environment to rebuild the full RPM set.
|
|||||||
This release of the RPMset includes the ability to conditionally build
|
This release of the RPMset includes the ability to conditionally build
|
||||||
sets of packages. The parameters, their defaults, and the meanings are:
|
sets of packages. The parameters, their defaults, and the meanings are:
|
||||||
|
|
||||||
build6x undef #build for RHL 6.x. Define to 1 to build for 6.x,
|
build6x undef #don't build for Red Hat 6.x. Define it to cause
|
||||||
# undefined otherwise.
|
# other options to be tailored to 6.x.
|
||||||
#currently, this disables the kerberos, nls, and ssl
|
|
||||||
# builds, as well as correcting dependencies for 6.x
|
|
||||||
beta 0 #build with cassert and do not strip the binaries
|
beta 0 #build with cassert and do not strip the binaries
|
||||||
perl 1 #build the postgresql-perl package.
|
perl 1 #build the postgresql-perl package.
|
||||||
tcl 1 #build the postgresql-tcl package.
|
tcl 1 #build the postgresql-tcl package.
|
||||||
tkpkg 1 #build the postgresql-tk package.
|
tkpkg 1 #build the postgresql-tk package.
|
||||||
odbc 1 #build the postgresql-odbc package.
|
|
||||||
jdbc 1 #build the postgresql-jdbc package.
|
jdbc 1 #build the postgresql-jdbc package.
|
||||||
|
pls 1 #build the postgresql-pl package.
|
||||||
test 1 #build the postgresql-test package.
|
test 1 #build the postgresql-test package.
|
||||||
python 1 #build the postgresql-python package.
|
python 1 #build the postgresql-python package.
|
||||||
pltcl 1 #build the postgresql-pltcl package.
|
pltcl 1 #build the pltcl portion of the postgresql-pl package.
|
||||||
forceplperl 0 #don't force a build of pl/perl over libperl.a
|
plperl 1 #build the plperl portion of the postgresql-pl package.
|
||||||
plperl 0 #don't build the postgresql-plperl package.
|
|
||||||
ssl 1 #use OpenSSL support.
|
ssl 1 #use OpenSSL support.
|
||||||
kerberos 1 #use Kerberos 5 support.
|
kerberos 1 #use Kerberos 5 support.
|
||||||
nls 1 #build with national language support.
|
nls 1 #build with national language support.
|
||||||
enable_mb 1 #enable multibyte encodings.
|
pam 1 #build with PAM support.
|
||||||
pgaccess 1 #build the pgaccess client, part of postgresql-tk.
|
|
||||||
newintarray 0 #substitute a newer intarray contrib.
|
|
||||||
pam 1 #build --with-pam
|
|
||||||
|
|
||||||
To use these defines, invoke a rebuild like this:
|
To use these defines, invoke a rebuild like this:
|
||||||
rpm --rebuild --define 'perl 0' --define 'tcl 0' --define 'tkpkg 0'\
|
rpm --rebuild --define 'perl 0' --define 'tcl 0' --define 'tkpkg 0'\
|
||||||
@ -401,9 +306,11 @@ More of these conditionals will be added in the future.
|
|||||||
CONTRIB FILES
|
CONTRIB FILES
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
The contents of the contrib tree are packaged into the -contrib subpackage
|
The contents of the contrib tree are packaged into the -contrib subpackage
|
||||||
and are compiled and placed into /usr/lib/pgsql/contrib with no further
|
and are processed with make and make install. There is documentation in
|
||||||
processing. Please see each directory under contrib for details on how to
|
/usr/share/doc/postgresql-contrib-VERSION for these modules. Most of the
|
||||||
install and use.
|
modules are in /usr/lib/pgsql for loadable modules, and binaries are in
|
||||||
|
/usr/bin. In the future these files may be split out, depending upon function
|
||||||
|
and dependencies.
|
||||||
|
|
||||||
LOGGING SET UP
|
LOGGING SET UP
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
3
filter-requires-perl-Pg.sh
Executable file
3
filter-requires-perl-Pg.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
/usr/lib/rpm/perl.req $* | grep -v 'perl(Pg'
|
@ -17,7 +17,7 @@
|
|||||||
# Changed PGDATA.
|
# Changed PGDATA.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Version 7.0.2 Trond Eivind Glomsrød <teg@redhat.com>
|
# Version 7.0.2 Trond Eivind Glomsrd <teg@redhat.com>
|
||||||
# use functions, add conditional restart
|
# use functions, add conditional restart
|
||||||
|
|
||||||
# Version 7.0.3 Lamar Owen <lamar@postgresql.org>
|
# Version 7.0.3 Lamar Owen <lamar@postgresql.org>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
# Version 7.1 Release Candidate Lamar Owen <lamar@postgresql.org>
|
# Version 7.1 Release Candidate Lamar Owen <lamar@postgresql.org>
|
||||||
# initdb parameters have changed.
|
# initdb parameters have changed.
|
||||||
|
|
||||||
# Version 7.1.2 Trond Eivind Glomsrød <teg@redhat.com>
|
# Version 7.1.2 Trond Eivind Glomsrd <teg@redhat.com>
|
||||||
# Specify shell for su
|
# Specify shell for su
|
||||||
# Handle stop better - kill unwanted output, make it wait until the database is ready
|
# Handle stop better - kill unwanted output, make it wait until the database is ready
|
||||||
# Handle locales slightly differently - always using "C" isn't a valid option
|
# Handle locales slightly differently - always using "C" isn't a valid option
|
||||||
@ -48,8 +48,11 @@
|
|||||||
# Tested the $? return for the stop script -- it does in fact propagate.
|
# Tested the $? return for the stop script -- it does in fact propagate.
|
||||||
# TODO: multiple postmasters.
|
# TODO: multiple postmasters.
|
||||||
|
|
||||||
# PGVERSION is: (note that PGVERSION is the major: 7.2.1 -> PGVERSION 7.2)
|
# VErsion 7.3 Lamar OWen <lamar.owen@ramifordistat.net>
|
||||||
PGVERSION=7.2
|
# Multiple postmasters, courtesy Karl DeBisschop
|
||||||
|
|
||||||
|
# PGVERSION is:
|
||||||
|
PGVERSION=7.3
|
||||||
|
|
||||||
# Source function library.
|
# Source function library.
|
||||||
INITD=/etc/rc.d/init.d
|
INITD=/etc/rc.d/init.d
|
||||||
@ -61,30 +64,40 @@ TYPESET=`typeset -f|grep "declare"`
|
|||||||
# Get config.
|
# Get config.
|
||||||
. /etc/sysconfig/network
|
. /etc/sysconfig/network
|
||||||
|
|
||||||
|
# Find the name of the script
|
||||||
|
NAME=`basename $0`
|
||||||
|
|
||||||
|
# Set defaults for port and database directory
|
||||||
|
PGPORT=5432
|
||||||
|
export PGDATA=/var/lib/pgsql
|
||||||
|
if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base/template1 ]
|
||||||
|
then
|
||||||
|
echo "Using old-style directory structure"
|
||||||
|
else
|
||||||
|
export PGDATA=/var/lib/pgsql/data
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Override defaults from /etc/sysconfig/pgsql if file is present
|
||||||
|
[ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME}
|
||||||
|
export PGDATA
|
||||||
|
export PGPORT
|
||||||
|
export PGOPTS
|
||||||
|
|
||||||
# Check that networking is up.
|
# Check that networking is up.
|
||||||
# Pretty much need it for postmaster.
|
# Pretty much need it for postmaster.
|
||||||
[ "${NETWORKING}" = "no" ] && exit 0
|
[ "${NETWORKING}" = "no" ] && exit 0
|
||||||
|
|
||||||
[ -f /usr/bin/postmaster ] || exit 0
|
[ -f /usr/bin/postmaster ] || exit 0
|
||||||
|
|
||||||
|
|
||||||
start(){
|
start(){
|
||||||
PSQL_START=$"Starting postgresql service: "
|
PSQL_START=$"Starting ${NAME} service: "
|
||||||
|
|
||||||
# Check for older PGDATA location.
|
|
||||||
if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
|
|
||||||
then
|
|
||||||
export PGDATA=/var/lib/pgsql
|
|
||||||
else
|
|
||||||
export PGDATA=/var/lib/pgsql/data
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for the PGDATA structure
|
# Check for the PGDATA structure
|
||||||
if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base ]
|
if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base ]
|
||||||
then
|
then
|
||||||
# Check version of existing PGDATA
|
# Check version of existing PGDATA
|
||||||
|
|
||||||
if [ `cat $PGDATA/PG_VERSION` != '7.2' ]
|
if [ `cat $PGDATA/PG_VERSION` != '7.3' ]
|
||||||
then
|
then
|
||||||
SYSDOCDIR="(Your System's documentation directory)"
|
SYSDOCDIR="(Your System's documentation directory)"
|
||||||
if [ -d /usr/doc/postgresql-$PGVERSION ]
|
if [ -d /usr/doc/postgresql-$PGVERSION ]
|
||||||
@ -125,6 +138,7 @@ start(){
|
|||||||
then
|
then
|
||||||
mkdir -p $PGDATA
|
mkdir -p $PGDATA
|
||||||
chown postgres.postgres $PGDATA
|
chown postgres.postgres $PGDATA
|
||||||
|
chmod go-rwx $PGDATA
|
||||||
fi
|
fi
|
||||||
# Make sure the locale from the initdb is preserved for later startups...
|
# Make sure the locale from the initdb is preserved for later startups...
|
||||||
[ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n $PGDATA/../initdb.i18n
|
[ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n $PGDATA/../initdb.i18n
|
||||||
@ -133,29 +147,31 @@ start(){
|
|||||||
# Is expanded this early to be used in the command su runs
|
# Is expanded this early to be used in the command su runs
|
||||||
echo "export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME" >> $PGDATA/../initdb.i18n
|
echo "export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME" >> $PGDATA/../initdb.i18n
|
||||||
# Initialize the database
|
# Initialize the database
|
||||||
su -l postgres -s /bin/sh -c "/usr/bin/initdb --pgdata=/var/lib/pgsql/data > /dev/null 2>&1" < /dev/null
|
su -l postgres -s /bin/sh -c "/usr/bin/initdb --pgdata=$PGDATA > /dev/null 2>&1" < /dev/null
|
||||||
[ -f $PGDATA/PG_VERSION ] && echo_success
|
[ -f $PGDATA/PG_VERSION ] && echo_success
|
||||||
[ ! -f $PGDATA/PG_VERSION ] && echo_failure
|
[ ! -f $PGDATA/PG_VERSION ] && echo_failure
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for postmaster already running...
|
# Check for postmaster already running...
|
||||||
pid=`pidof -s postmaster`
|
# note that pg_ctl only looks at the data structures in PGDATA
|
||||||
if [ $pid ]
|
# you really do need the pidof()
|
||||||
|
pid=`pidof -s /usr/bin/postmaster`
|
||||||
|
if [ $pid ] && /usr/bin/pg_ctl status -D $PGDATA > /dev/null 2>&1
|
||||||
then
|
then
|
||||||
echo $"Postmaster already running."
|
echo $"Postmaster already running."
|
||||||
else
|
else
|
||||||
#all systems go -- remove any stale lock files
|
#all systems go -- remove any stale lock files
|
||||||
rm -f /tmp/.s.PGSQL.* > /dev/null
|
rm -f /tmp/.s.PGSQL.${PGPORT} > /dev/null
|
||||||
echo -n "$PSQL_START"
|
echo -n "$PSQL_START"
|
||||||
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster start > /dev/null 2>&1" < /dev/null
|
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster -o '-p ${PGPORT}' start > /dev/null 2>&1" < /dev/null
|
||||||
sleep 1
|
sleep 1
|
||||||
pid=`pidof -s postmaster`
|
pid=`pidof -s /usr/bin/postmaster`
|
||||||
if [ $pid ]
|
if [ $pid ]
|
||||||
then
|
then
|
||||||
success "$PSQL_START"
|
success "$PSQL_START"
|
||||||
touch /var/lock/subsys/postgresql
|
touch /var/lock/subsys/${NAME}
|
||||||
echo $pid > /var/run/postmaster.pid
|
echo $pid > /var/run/postmaster.${PGPORT}.pid
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
failure "$PSQL_START"
|
failure "$PSQL_START"
|
||||||
@ -165,24 +181,18 @@ start(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
stop(){
|
stop(){
|
||||||
echo -n $"Stopping postgresql service: "
|
echo -n $"Stopping ${NAME} service: "
|
||||||
# Check for older PGDATA location.
|
|
||||||
if [ -f /var/lib/pgsql/PG_VERSION ] && [ -d /var/lib/pgsql/base/template1 ]
|
|
||||||
then
|
|
||||||
export PGDATA=/var/lib/pgsql
|
|
||||||
else
|
|
||||||
export PGDATA=/var/lib/pgsql/data
|
|
||||||
fi
|
|
||||||
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl stop -D $PGDATA -s -m fast" > /dev/null 2>&1
|
su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl stop -D $PGDATA -s -m fast" > /dev/null 2>&1
|
||||||
ret=$?
|
ret=$?
|
||||||
if [ $ret -eq 0 ]; then
|
if [ $ret -eq 0 ]
|
||||||
echo_success
|
then
|
||||||
else
|
echo_success
|
||||||
echo_failure
|
else
|
||||||
fi
|
echo_failure
|
||||||
|
fi
|
||||||
echo
|
echo
|
||||||
rm -f /var/run/postmaster.pid
|
rm -f /var/run/postmaster.${PGPORT}.pid
|
||||||
rm -f /var/lock/subsys/postgresql
|
rm -f /var/lock/subsys/${NAME}
|
||||||
}
|
}
|
||||||
|
|
||||||
restart(){
|
restart(){
|
||||||
@ -191,7 +201,7 @@ restart(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
condrestart(){
|
condrestart(){
|
||||||
[ -e /var/lock/subsys/postgresql ] && restart || :
|
[ -e /var/lock/subsys/${NAME} ] && restart
|
||||||
}
|
}
|
||||||
|
|
||||||
reload(){
|
reload(){
|
||||||
|
771
postgresql.spec
771
postgresql.spec
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user