mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56:29 +00:00
Add further documentation files
This commit is contained in:
29
CONTRIBUTING.md
Normal file
29
CONTRIBUTING.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
License and Contributions
|
||||||
|
=========================
|
||||||
|
|
||||||
|
`repmgr` is licensed under the GPL v3. All of its code and documentation is
|
||||||
|
Copyright 2010-2017, 2ndQuadrant Limited. See the files COPYRIGHT and LICENSE for
|
||||||
|
details.
|
||||||
|
|
||||||
|
The development of repmgr has primarily been sponsored by 2ndQuadrant customers.
|
||||||
|
|
||||||
|
Additional work has been sponsored by the 4CaaST project for cloud computing,
|
||||||
|
which has received funding from the European Union's Seventh Framework Programme
|
||||||
|
(FP7/2007-2013) under grant agreement 258862.
|
||||||
|
|
||||||
|
Contributions to `repmgr` are welcome, and will be listed in the file `CREDITS`.
|
||||||
|
2ndQuadrant Limited requires that any contributions provide a copyright
|
||||||
|
assignment and a disclaimer of any work-for-hire ownership claims from the
|
||||||
|
employer of the developer. This lets us make sure that all of the repmgr
|
||||||
|
distribution remains free code. Please contact info@2ndQuadrant.com for a
|
||||||
|
copy of the relevant Copyright Assignment Form.
|
||||||
|
|
||||||
|
Code style
|
||||||
|
----------
|
||||||
|
|
||||||
|
Code in repmgr is formatted to a consistent style using the following command:
|
||||||
|
|
||||||
|
astyle --style=ansi --indent=tab --suffix=none *.c *.h
|
||||||
|
|
||||||
|
Contributors should reformat their code similarly before submitting code to
|
||||||
|
the project, in order to minimize merge conflicts with other work.
|
||||||
127
PACKAGES.md
Normal file
127
PACKAGES.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
Packaging
|
||||||
|
=========
|
||||||
|
|
||||||
|
Notes on RedHat Linux, Fedora, and CentOS Builds
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
The RPM packages of PostgreSQL put `pg_config` into the `postgresql-devel`
|
||||||
|
package, not the main server one. And if you have a RPM install of PostgreSQL
|
||||||
|
9.0, the entire PostgreSQL binary directory will not be in your PATH by default
|
||||||
|
either. Individual utilities are made available via the `alternatives`
|
||||||
|
mechanism, but not all commands will be wrapped that way. The files installed
|
||||||
|
by repmgr will certainly not be in the default PATH for the postgres user
|
||||||
|
on such a system. They will instead be in /usr/pgsql-9.0/bin/ on this
|
||||||
|
type of system.
|
||||||
|
|
||||||
|
When building repmgr against a RPM packaged build, you may discover that some
|
||||||
|
development packages are needed as well. The following build errors can
|
||||||
|
occur:
|
||||||
|
|
||||||
|
/usr/bin/ld: cannot find -lxslt
|
||||||
|
/usr/bin/ld: cannot find -lpam
|
||||||
|
|
||||||
|
Install the following packages to correct those:
|
||||||
|
|
||||||
|
|
||||||
|
yum install libxslt-devel
|
||||||
|
yum install pam-devel
|
||||||
|
|
||||||
|
If building repmgr as a regular user, then doing the install into the system
|
||||||
|
directories using sudo, the syntax is hard. `pg_config` won't be in root's
|
||||||
|
path either. The following recipe should work:
|
||||||
|
|
||||||
|
sudo PATH="/usr/pgsql-9.0/bin:$PATH" make USE_PGXS=1 install
|
||||||
|
|
||||||
|
|
||||||
|
Issues with 32 and 64 bit RPMs
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
If when building, you receive a series of errors of this form:
|
||||||
|
|
||||||
|
/usr/bin/ld: skipping incompatible /usr/pgsql-9.0/lib/libpq.so when searching for -lpq
|
||||||
|
|
||||||
|
This is likely because you have both the 32 and 64 bit versions of the
|
||||||
|
`postgresql90-devel` package installed. You can check that like this:
|
||||||
|
|
||||||
|
rpm -qa --queryformat '%{NAME}\t%{ARCH}\n' | grep postgresql90-devel
|
||||||
|
|
||||||
|
And if two packages appear, one for i386 and one for x86_64, that's not supposed
|
||||||
|
to be allowed.
|
||||||
|
|
||||||
|
This can happen when using the PGDG repo to install that package;
|
||||||
|
here is an example sessions demonstrating the problem case appearing:
|
||||||
|
|
||||||
|
|
||||||
|
# yum install postgresql-devel
|
||||||
|
..
|
||||||
|
Setting up Install Process
|
||||||
|
Resolving Dependencies
|
||||||
|
--> Running transaction check
|
||||||
|
---> Package postgresql90-devel.i386 0:9.0.2-2PGDG.rhel5 set to be updated
|
||||||
|
---> Package postgresql90-devel.x86_64 0:9.0.2-2PGDG.rhel5 set to be updated
|
||||||
|
--> Finished Dependency Resolution
|
||||||
|
|
||||||
|
Dependencies Resolved
|
||||||
|
|
||||||
|
=========================================================================
|
||||||
|
Package Arch Version Repository Size
|
||||||
|
=========================================================================
|
||||||
|
Installing:
|
||||||
|
postgresql90-devel i386 9.0.2-2PGDG.rhel5 pgdg90 1.5 M
|
||||||
|
postgresql90-devel x86_64 9.0.2-2PGDG.rhel5 pgdg90 1.6 M
|
||||||
|
|
||||||
|
|
||||||
|
Note how both the i386 and x86_64 platform architectures are selected for
|
||||||
|
installation. Your main PostgreSQL package will only be compatible with one of
|
||||||
|
those, and if the repmgr build finds the wrong postgresql90-devel these
|
||||||
|
"skipping incompatible" messages appear.
|
||||||
|
|
||||||
|
In this case, you can temporarily remove both packages, then just install the
|
||||||
|
correct one for your architecture. Example:
|
||||||
|
|
||||||
|
rpm -e postgresql90-devel --allmatches
|
||||||
|
yum install postgresql90-devel-9.0.2-2PGDG.rhel5.x86_64
|
||||||
|
|
||||||
|
Instead just deleting the package from the wrong platform might not leave behind
|
||||||
|
the correct files, due to the way in which these accidentally happen to interact.
|
||||||
|
If you already tried to build repmgr before doing this, you'll need to do:
|
||||||
|
|
||||||
|
make USE_PGXS=1 clean
|
||||||
|
|
||||||
|
to get rid of leftover files from the wrong architecture.
|
||||||
|
|
||||||
|
Notes on Ubuntu, Debian or other Debian-based Builds
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
The Debian packages of PostgreSQL put `pg_config` into the development package
|
||||||
|
called `postgresql-server-dev-$version`.
|
||||||
|
|
||||||
|
When building repmgr against a Debian packages build, you may discover that some
|
||||||
|
development packages are needed as well. You will need the following development
|
||||||
|
packages installed:
|
||||||
|
|
||||||
|
sudo apt-get install libxslt-dev libxml2-dev libpam-dev libedit-dev
|
||||||
|
|
||||||
|
If you're using Debian packages for PostgreSQL and are building repmgr with the
|
||||||
|
USE_PGXS option you also need to install the corresponding development package:
|
||||||
|
|
||||||
|
sudo apt-get install postgresql-server-dev-9.0
|
||||||
|
|
||||||
|
If you build and install repmgr manually it will not be on the system path. The
|
||||||
|
binaries will be installed in /usr/lib/postgresql/$version/bin/ which is not on
|
||||||
|
the default path. The reason behind this is that Ubuntu/Debian systems manage
|
||||||
|
multiple installed versions of PostgreSQL on the same system through a wrapper
|
||||||
|
called pg_wrapper and repmgr is not (yet) known to this wrapper.
|
||||||
|
|
||||||
|
You can solve this in many different ways, the most Debian like is to make an
|
||||||
|
alternate for repmgr and repmgrd:
|
||||||
|
|
||||||
|
sudo update-alternatives --install /usr/bin/repmgr repmgr /usr/lib/postgresql/9.0/bin/repmgr 10
|
||||||
|
sudo update-alternatives --install /usr/bin/repmgrd repmgrd /usr/lib/postgresql/9.0/bin/repmgrd 10
|
||||||
|
|
||||||
|
You can also make a deb package of repmgr using:
|
||||||
|
|
||||||
|
make USE_PGXS=1 deb
|
||||||
|
|
||||||
|
This will build a Debian package one level up from where you build, normally the
|
||||||
|
same directory that you have your repmgr/ directory in.
|
||||||
Reference in New Issue
Block a user