Quantcast
Channel: dbi Blog
Viewing all articles
Browse latest Browse all 2879

PostgreSQL client only installations from source code

$
0
0

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.

Cet article PostgreSQL client only installations from source code est apparu en premier sur Blog dbi services.


Viewing all articles
Browse latest Browse all 2879

Trending Articles