Skip to content

Building PostgreSQL 16.x

linuxonz edited this page Sep 4, 2025 · 15 revisions

Building PostgreSQL

Below versions of PostgreSQL are available in respective distributions at the time of creation of these build instructions:

  • RHEL 8.10 has 10.23
  • RHEL (9.4, 9.6) have 13.22
  • RHEL 10.0 has 16.10
  • SLES (15 SP6, 15 SP7) have 16.10
  • Ubuntu 22.04 has 14.18
  • Ubuntu 24.04 has 16.9
  • Ubuntu 25.04 has 17.5

The instructions provided below specify the steps to build PostgreSQL version 16.10 on Linux on IBM Z for

  • RHEL (8.10, 9.4, 9.6)
  • Ubuntu (22.04, 24.04, 25.04)

General Notes:

  • When following the steps below please use a standard permission user unless otherwise specified.
  • A directory /<source_root>/ will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it.

1. Build using script

If you want to build postgreSQL using manual steps, go to STEP 2.

Use the following commands to build postgreSQL using the build script. Please make sure you have wget installed.

wget -q https://raw.githubusercontent.com/linux-on-ibm-z/scripts/master/PostgreSQL/16.10/build_postgresql.sh

# Build PostgreSQL
bash build_postgresql.sh   [Provide -t option for executing build with tests]

If the build completes successfully, follow the notes at the end of the script and go to STEP 3. In case of error, check logs for more details or go to STEP 2 to follow manual build steps.

2. Build and Install PostgreSQL

2.1. Install dependencies

export SOURCE_ROOT=/<source_root>/
  • RHEL (8.10, 9.4, 9.6)

    sudo yum install -y git wget gcc gcc-c++ tar make readline-devel zlib-devel bison flex glibc-langpack-en procps-ng diffutils patch curl libicu-devel
    
  • Ubuntu (22.04, 24.04, 25.04)

    sudo apt-get update
    sudo apt-get install -y bison flex wget build-essential git gcc tar make zlib1g-dev libreadline-dev patch curl
    

2.2. Create postgres user

sudo useradd postgres -m -U
sudo passwd postgres

Note: Please note that /usr/sbin is available in PATH environment variable.

2.3. Download PostgreSQL source code

cd $SOURCE_ROOT
wget https://ftp.postgresql.org/pub/source/v16.10/postgresql-16.10.tar.gz
tar xf postgresql-16.10.tar.gz

2.4. Build and Install PostgreSQL

cd $SOURCE_ROOT/postgresql-16.10
./configure --without-icu
make
make check
sudo make install

Note: Before you run make check make sure LANG environment variable is not set. unset LANG if it is already set.

2.5. Update the PATH variable

export PATH=$PATH:/usr/local/pgsql/bin

3. Set up PostgreSQL server (Optional)

3.1. Create PostgreSQL data directory to store data and make postgres user as the owner

sudo mkdir -p /usr/local/pgsql/data
sudo chown postgres:postgres /usr/local/pgsql/data

3.2. Initialize PostgreSQL data directory as postgres user

su postgres -s /bin/bash
export PATH=$PATH:/usr/local/pgsql/bin
cd /home/postgres/
initdb -D /usr/local/pgsql/data/

Note: Please make sure the directory /usr/local/ has sufficient read and execute permissions when initializing.

3.3. Start the PostgreSQL server

pg_ctl -D /usr/local/pgsql/data/ -l logfile start

References:

Clone this wiki locally