# Installing &repmgr; from source

## Prerequisites for installing from source

To install &repmgr; the prerequisites for compiling &postgres; must be installed. These are described in &postgres;'s documentation on build requirements and build requirements for documentation.

Most mainstream Linux distributions and other UNIX variants provide simple ways to install the prerequisites from packages.

- `Debian` and `Ubuntu`: First add the apt.postgresql.org repository to your `sources.list` if you have not already done so. Then install the pre-requisites for building PostgreSQL with:

             sudo apt-get update
             sudo apt-get build-dep postgresql-9.6

- `RHEL or CentOS 6.x or 7.x`: install the appropriate repository RPM for your system from yum.postgresql.org. Then install the prerequisites for building PostgreSQL with:

             sudo yum check-update
             sudo yum groupinstall "Development Tools"
             sudo yum install yum-utils openjade docbook-dtds docbook-style-dsssl docbook-style-xsl
             sudo yum-builddep postgresql96

Select the appropriate PostgreSQL versions for your target repmgr version.

## Getting &repmgr; source code

There are two ways to get the &repmgr; source code: with git, or by downloading tarballs of released versions.

### Using git to get the &repmgr; sources

Use git if you expect to update often, you want to keep track of development or if you want to contribute changes to &repmgr;. There is no reason not to use git if you're familiar with it.

The source for &repmgr; is maintained at https://github.com/2ndQuadrant/repmgr.

There are also tags for each &repmgr; release, e.g. `4.0.5`.

Clone the source code using git:

         git clone https://github.com/2ndQuadrant/repmgr

For more information on using git see git-scm.com.

### Downloading release source tarballs

Official release source code is uploaded as tarballs to the &repmgr; website along with a tarball checksum and a matching GnuPG signature. See http://repmgr.org/ for the download information. See appendix-signatures for information on verifying digital signatures.

You will need to download the repmgr source, e.g. `repmgr-4.0.tar.gz`. You may optionally verify the package checksums from the `.md5` files and/or verify the GnuPG signatures per appendix-signatures.

After you unpack the source code archives using `tar xf` the installation process is the same as if you were installing from a git clone.

## Installation of &repmgr; from source

To installing &repmgr; from source, simply execute:

        ./configure && make install

Ensure `pg_config` for the target PostgreSQL version is in `$PATH`.

## Building &repmgr; documentation

The &repmgr; documentation is (like the main PostgreSQL project) written in DocBook format. To build it locally as HTML, you'll need to install the required packages as described in the PostgreSQL documentation then execute:

        ./configure && make install-doc

The generated HTML files will be placed in the `doc/html` subdirectory of your source tree.

To build the documentation as a single HTML file, execute:

        cd doc/ && make repmgr.html

Due to changes in PostgreSQL's documentation build system from PostgreSQL 10, the documentation can currently only be built agains PostgreSQL 9.6 or earlier. This limitation will be fixed when time and resources permit.