Skip to content

PostgreSQL client only installations from source code

During our PostgreSQL DBA Essentials workshops we install PostgreSQL from source code. We do that, to provide the participants all the options they have. There is nothing wrong with using a packaged distribution of PostgreSQL, don’t get me wrong, but knowing how it is working in the background is always a good idea. One question that comes up quite frequently is, how you can compile/install only the client. but not the server itself. Not a big deal, lets have a look:

We usually set three environment variables before we configure the source tree:

PGHOME=/u01/app/postgres/product/14/db_2/
SEGSIZE=2
BLOCKSIZE=8

The meaning of those variables is:

  • PGHOME: This is the target directory for the installation
  • SEGSIZE: This is the segment size, which defines how large a PostgreSQL data file can grow on disk (2GB in this example)
  • BLOCKSIZE: The size of PostgreSQL block, 8k

Once we have that, we configure the source tree like this (this is for PostgreSQL 14):

./configure --prefix=${PGHOME} 
            --exec-prefix=${PGHOME} 
            --bindir=${PGHOME}/bin 
            --libdir=${PGHOME}/lib 
            --sysconfdir=${PGHOME}/etc 
            --includedir=${PGHOME}/include 
            --datarootdir=${PGHOME}/share 
            --datadir=${PGHOME}/share 
            --with-pgport=5432 
            --with-perl 
            --with-python 
            --with-openssl 
            --with-pam 
            --with-ldap 
            --with-libxml 
            --with-libxslt 
            --with-segsize=${SEGSIZE} 
            --with-blocksize=${BLOCKSIZE} 
            --with-llvm LLVM_CONFIG='/usr/bin/llvm-config' 
            --with-uuid=ossp 
            --with-lz4 
            --with-gssapi 
            --with-systemd 
            --with-icu 
            --with-system-tzdata=/usr/share/zoneinfo 

To install the client only, all you have to do is this:

postgres@debian11pg:/home/postgres/postgresql/ [pgdev] make -C src/bin install
postgres@debian11pg:/home/postgres/postgresql/ [pgdev] make -C src/include install
postgres@debian11pg:/home/postgres/postgresql/ [pgdev] make -C src/interfaces install

This will give you all the client utilities but not the server itself:

postgres@debian11pg:/home/postgres/postgresql/ [pg15] ls /u01/app/postgres/product/14/db_2/bin/
clusterdb   dropdb    initdb             pg_basebackup  pg_config       pg_dump     pg_receivewal   pg_restore     pg_test_timing   pg_waldump  vacuumdb
createdb    dropuser  pg_amcheck         pgbench        pg_controldata  pg_dumpall  pg_recvlogical  pg_rewind      pg_upgrade       psql
createuser  ecpg      pg_archivecleanup  pg_checksums   pg_ctl          pg_isready  pg_resetwal     pg_test_fsync  pg_verifybackup  reindexdb

That’s it, pretty easy.

Let’s work together

Ready to operate at
the next level?

Tell us about your challenge. We’ll bring the depth, the expertise, and the Swiss precision.

Open source Team

Open source Team

Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.View Author posts

721 posts since September 2011

Most read in Database

The Database posts our readers open most: the all-time favourites, and what is trending right now.

Leave a Comment

Your email address will not be published. Required fields are marked *