Postgres source installation v23
TPA will compile and install Postgres from source if you set
src. This feature is meant for use
in development and testing, and allows you to switch between packaged
and source builds within an identically-configured cluster.
Even here, you do not need to change the defaults, which will give you a working cluster with debugging enabled.
The default settings will build and install Postgres from the community
Git repository, using the
REL_xx_STABLE branch corresponding to your
postgres_version. You can specify a different repository or branch
(any valid git reference) as follows:
The default git.postgresql.org repository does not require authentication, but if necessary, you can use SSH agent forwarding or an HTTPS username/password to authenticate to other repositories.
The repository will be cloned into
/opt/postgres/src/postgres), or updated with
git pull if the
directory already exists (e.g., if you are re-deploying).
By default, TPA will configure and build Postgres with debugging
enabled and sensible defaults in
/opt/postgres/build/postgres). You can change various settings to
customise the build:
This will run
./configure with the options in
postgres_extra_configure_opts and the settings from
postgres_extra_configure_env defined in the environment. Some
options are specified by default (e.g.,
--with-debug), but can be
negated by the corresponding
--without-openssl is not supported.
If required, you can also change the following default build commands:
tpaexec deploy … --skip-tags build-clean in order to reuse the
build directory when doing repeated deploys. (Otherwise the old build
directory is emptied before starting the build.) You can also configure
local source directories
to speed up your development builds.
Whenever you run a source build, Postgres will be restarted.
Even if you install Postgres from packages, you can compile and install
extensions from source. There's a separate page about how to configure
If you install Postgres from source, however, you will need to install extensions from source as well, because the extension packages typically depend on the Postgres package(s) being installed.
There's a separate page about
installing Postgres and Postgres-related packages
postgres_installation_method: pkg (the default).