Subject: Re: Where is my app installed?

From: Tom Lane <[email-masked]>
Date: Thu, 22 Aug 2024 22:21:52 -0400

Adrian Klaver <[email-masked]> writes:
> On 8/22/24 17:36, Arbol One wrote:
>> After installing PostgreSQL on my Debian-12 machine, I typed 'postgres 
>> --version' and got this msg:
>> *bash: postgres: command not found*
>> 'psql --version', however, does work and gives me this message :
>> *psql (PostgreSQL) 16.3 (Debian 16.3-1.pgdg120+1)*
>> Obviously postgres is not in the path, but I don't know where the 
>> 'apt-get' installed it or why it did not add it to the path.

> As to where the  postgres command is:
> ls -al /usr/lib/postgresql/16/bin/

Theory 1: postgres is packaged in a "postgresql-server" package
and the OP only installed the base (client-side) package.

Theory 2: postgres is installed into some directory not in the OP's
PATH, such as /usr/sbin.  Since it's primarily used as a daemon,
this'd be a reasonable thing for a packager to do.

I'd bet a nickel on #1, though, because I've not seen too many
packagers put postgres somewhere other than where they put psql.
"Separate server package" is extremely common though.

			regards, tom lane

---

From: Adrian Klaver <[email-masked]>
Date: Thu, 22 Aug 2024 19:43:27 -0700

> this'd be a reasonable thing for a packager to do.

Yes in:

> "Separate server package" is extremely common though.

Correct. The missing part is that in Debian/Ubuntu packaging when you 
use psql you are actually doing:

ls -al /usr/bin/psql
lrwxrwxrwx 1 root root 37 Aug  8 07:37 /usr/bin/psql -> 
../share/postgresql-common/pg_wrapper

The Debian packaging routes most things through 
pg_wrapper/postgresql-common a Perl script that does the magic of 
finding the correct binaries for each Postgres version.

-- 
Adrian Klaver
[email-masked]

---

From: Muhammad Ikram <[email-masked]>
Date: Fri, 23 Aug 2024 09:57:39 +0500

Hi Arbol,

Try to find any binary  e.g.

find /usr -name pg_ctl
/usr/local/pgsql/bin/pg_ctl
/usr/lib/postgresql/16/bin/pg_ctl

 find /usr -name psql
/usr/bin/psql
/usr/local/pgsql/bin/psql
/usr/lib/postgresql/16/bin/psql

Later you may create a symlink or add in PATH.
Hope this helps.

Regards,
Ikram

-- 
Muhammad Ikram