Re: location of the configuration files - Mailing list pgsql-hackers

From Kevin Brown
Subject Re: location of the configuration files
Date
Msg-id 20030214022005.GN1833@filer
Whole thread Raw
In response to Re: location of the configuration files  (Vince Vielhaber <vev@michvhf.com>)
List pgsql-hackers
Vince Vielhaber wrote:
> On Thu, 13 Feb 2003, Lamar Owen wrote:
> 
> > On Thursday 13 February 2003 18:07, Vince Vielhaber wrote:
> > > Actually FHS says the opposite.  If the distribution installs PostgreSQL
> > > then the config files belong in /etc/postgresql.  If the admin does then
> > > they belong in /usr/local/etc/postgresql.  FHS is out of their tree.  If
> > > PostgreSQL or any other package is not critical to the basic operation of
> > > the operating system, it's config files shouldn't be polluting /etc.
> >
> > PostgreSQL is as critical as PHP, Apache, or whatever other package is being
> > backended by PostgreSQL.  If the package is provided by the distributor,
> > consider it part of the OS.  If it isn't, well, it isn't.
> 
> You completely miss my point, but lately you've been real good at that.
> 
> Can the system boot without PHP, Apache, PostgreSQL, Mysql and/or
> Pine?

Yep.

> Can the root user log in without PHP, Apache, PostgreSQL, Mysql
> and/or Pine?

Hopefully.

> Can any user log in without PHP, Apache, PostgreSQL, Mysql and/or
> Pine?

That depends, doesn't it?  There exist PAM modules that allow
authentication against a database, for instance.  If you're using them
and the database doesn't come up, the users can't log in.  So suddenly
the database config files belong in /etc?

The mission of the box is what counts.  If the mission of the box is
to be a web server then I'm probably not going to care whether
non-root users can log into it: that simply doesn't factor into the
mission profile.  The web server process is going to be as critical to
the mission of the box as almost anything else on it, as will anything
the web server process depends on -- which may well include a
database.

> Note, I'm not even including an MTA here.  I said BASIC OPERATION.

So by your reasoning sendmail.cf doesn't belong in /etc??  I dare say
that's news to most of us.  Where, then, *does* it belong?

> If a package is not critical as I just outlined, it shouldn't matter
> who installed it.

Oh, it matters a great deal, because people upgrade their OS installs
from time to time.  Many OS distributions come with a lot of packages
that aren't "critical" as you define them but which nevertheless will
cause much pain and suffering for the sysadmin if they install
themselves over what the sysadmin has previously built by hand.

The purpose for differentiating between a package that was compiled
and installed from the source by the sysadmin and a prebuilt package
that was provided to the sysadmin by the vendor is to keep them from
stepping on each other -- if the sysadmin went to the trouble of
compiling and installing a package from the source instead of using a
prebuilt version from the vendor, then he probably did so for a very
good reason, and is going to be *really* annoyed if an OS upgrade
blows away his work.


There are some good reasons for putting all the config files in /etc,
one of them being that it gives you *one* directory full of config
files to worry about backing up instead of many.  If you've got other
ideas I'm certainly interested in hearing the reasoning behind them.
But from the point of view of maintaining a widely deployed package
like PostgreSQL, the conventions the distributions and sysadmins use
matter a great deal, whether or not you happen to agree with those
conventions.



-- 
Kevin Brown                          kevin@sysexperts.com


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: PostgreSQL Tuning Results
Next
From: Tom Lane
Date:
Subject: Re: More benchmarking of wal_buffers