Re: Thoughts on the location of configuration files - Mailing list pgsql-hackers
| From | mlw |
|---|---|
| Subject | Re: Thoughts on the location of configuration files |
| Date | |
| Msg-id | 3C1FD1D4.2199AD9B@mohawksoft.com Whole thread Raw |
| In response to | Thoughts on the location of configuration files (Peter Eisentraut <peter_e@gmx.net>) |
| List | pgsql-hackers |
Peter Eisentraut wrote:
>
> After reading through the strong opinions about the location of the
> configuration files in the current and in previous threads, I must concede
> that despite the best intentions, the current "everything in one place"
> system is obviously not addressing the needs of the user. So while we're
> at it we might as well consider more sweeping changes to bring the
> system in line with the "expected" or "standard" behaviour.
>
> Consider the following points:
>
> 1. Most users will probably only run one server -- especially new users.
Agreed
>
> 2. Most users will expect configuration files somewhere under =~ /etc/ --
> including new users.
Agreed
>
> 3. To run more than one server, special knowledge and configuration is
> required anyway.
Agreed
>
> Therefore, a wired-in configuration file location near /etc would be
> helpful or at least indifferent for most users.
>
> I suggest that we wire-in the location of the configuration files into the
> binaries as ${sysconfdir} as determined by configure. This would default
> to /usr/local/pgsql/etc, so the "everything in one place" system is still
> somewhat preserved for those that care. For the confused, we could for a
> while install into the data directory files named "postgresql.conf",
> "pg_hba.conf", etc. that only contain text like "This file is now to be
> found at @sysconfdir@ by popular demand."
Great!
>
> Furthermore, I suggest that we wire-in the default location of the data
> files as ${localstatedir} as determined by configure. This would default
> to /usr/local/pgsql/var, which is not quite the same as the customary
> /usr/local/pgsql/data but it doesn't matter because with both "initdb" and
> "postmaster" defaulting to this directory and the configuration files
> elsewhere you don't really need to know except on few occasions. Having
> this default would also save me a lot of typing during development. ;-)
I guess that is OK, but I would also like a setting in the config file for the
datadir location, as well as hba and ident. That way a single "-C" can set the
whole world.
>
> Surely we can also add a -C option to override the sysconfdir just as -D
> overrides localstatedir. Those that refuse to convert can also set -C
> equal to -D and have the old setup. Or the user can only specify -C to
> point to the former -D and use the proposed 'datadir' parameter to find
> the data area.
>
> But I find a wired-in configuration file location better than having to
> use -C everytime you want a "standard" setup because this way we force
> users to have consistent setups.
However, I wish "-C" to point to a specific file.
>
> What does this mean for multiple-server setups? Basically you add a -C to
> each invocation or you replace -D by -C as explained above. Or if you
> want to share the configuration file you only need to add the right -p
> option to each invocation. This probably means someone will need to
> change their scripts but as we hear they don't like them anyway. Someone
> that currently relies on a -D being sufficient will at least get a clean
> failure when the ports conflict.
pgsql-hackers by date: