Re: PGSYSCONFDIR?

From: Steve Atkins <steve(at)blighty(dot)com>
To: John Sutton <johnericsutton(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org General" <pgsql-general(at)postgresql(dot)org>
Subject: Re: PGSYSCONFDIR?
Date: 2014-01-14 19:16:30
Message-ID: 456F3502-3A57-41D3-8DB3-FE55641A808E@blighty.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On Jan 14, 2014, at 10:58 AM, John Sutton <johnericsutton(at)gmail(dot)com> wrote:

> Hi there
>
> Having spent about 2 hours trying to solve a simple problem, I think it might be worthwhile to record my efforts. Perhaps someone can point out how extremely silly I have been… or is the documentation lacking?
>
> My original question was: where is the system-wide psqlrc file located?

The default is a compile-time configuration option.

You can get that for your installation using "pg_config --sysconfdir”

The environment PGSYSCONFDIR variable can override it if it’s set. Like a lot of client configuration settings it’s not really handled by the client, but by libpq. That’s good; makes for a nice consistent UI. What’s less good is that it means that they’re documented in the libpq docs - http://www.postgresql.org/docs/current/static/libpq-envars.html

>
> Some material on the web suggests that this is ~postgres/.psqlrc but this not true, this is just the postgres user’s user-specific config file.
>
> I tried putting it alongside pg_hba.conf etc but that didn’t work.
>
> The psqlrc.sample file contains the wording “Copy this to your sysconf directory (typically /usr/local/pqsql/etc) …” but that directory doesn’t exist on either of my target systems! (I’m using postgres 9.1 on Ubuntu and Mac OS X.)
>
> As a last resort (which surely shouldn’t be necessary) on the Ubuntu system I did:
>
> strings /usr/bin/psql | grep -i sysconf
>
> $ENV{'PGSYSCONFDIR'} = '/etc/postgresql-common' if !$ENV{'PGSYSCONFDIR’};

On Ubuntu that’s not really psql, it’s a shell script wrapper that runs the real psql - and it looks like they’re overriding whatever the built-in default is in their wrapper.

>
> So that’s where it needs to be: /etc/postgresql-common/psqlrc
>
> I’ve still no clue for Mac OS X however, since the same trick only finds a placeholder :( :
>
> strings /Applications/Postgres.app/Contents/MacOS/bin/psql | grep -i sysconf

satsuke:shared (develop)$ pg_config --sysconfdir
/Applications/Postgres.app/Contents/MacOS/etc

:)

Cheers,
Steve

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Alan Nilsson 2014-01-14 21:53:57 pg_basebackup failing
Previous Message Tom Lane 2014-01-14 19:15:19 Re: PGSYSCONFDIR?