Re: Proposal: /etc /usr/etc /usr/local/etc
On Wed, 2 Jul 1997, Vadim Vygonets wrote:
> On Tue, 1 Jul 1997, Yann Dirson wrote:
> > So we agree it could be fine to have site-wide conffiles in
> > /usr/etc, that it would be fine to be able to override them in /etc
> > (though Vadim seems reluctant about that), and that it is a bad idea
> > to have symlinks from /ets to /usr/etc.
> I hope everybody understands why I don't like the symlinks idea (I've
> repeated it 6.9e42 times already:). I agree that symlinks is a bad idea.
> > Then I guess that having some sort of "search path" for config files,
> > that is looking first if /etc contains a conffile, and only if not,
> > taking the one installed in /usr/etc. This could even be made to use
> > conffiles for groups (sub-sites) of computers, by using
> > /etc:/nfs/mygroup/etc:/usr/etc as a search path.
> Cool. I agree it's cool. It will take more work than my simple
> standard solution, but it's nice.
[... remaindier elided ...]
This sounds to me like it'd take a lot of per-package hacking.
Also, it sounds like what's being argued here hinges on whether or
not debian should abandon Linux FSSTND compliance on this point.
4.5 /usr/etc : Site-wide system configuration
Storing configuration in /usr/etc for the software found in
/usr/bin and /usr/sbin is a problem. It makes the read-only
mounting of /usr through CD-ROM or NFS delivery very difficult
One possible solution that we considered was to completely
eliminate /usr/etc and specify that all configuration be stored
in /etc. A problem with this approach is that it does not
properly anticipate the possibility that many sites may want
to have some configuration files that are not machine-local.
We eventually decided that /etc should be the only directory
that is actually referenced by programs (that is, everything
should look for configuration in /etc and not in /usr/etc). Any
configuration files that need to be site-wide and are not needed
before /usr is mounted (or in an emergency situation) should
then be placed in /usr/etc. Then, specific files (in /etc)
on specific machines may or may not be symbolically linked
to appropriate configuration files located in /usr/etc. This
also means that /usr/etc is technically an optional directory
in the strictest sense, but we still recommend that all Linux
systems incorporate it.
It is not recommended for /usr/etc to contain symbolic links
that point to files in /etc. This is unnecessary and interferes
with local control on machines that share a /usr directory.
So, the package maintainer makes the determination of whether
his package is to be machine-local or site-wide configurable
by whether he places the config files in /etc or in /usr/etc.
If he places config files in /usr/etc, he places symlinks
to them in /etc. The programs in his package should look in
/etc for configuration files.
( begin digression
It occurs to me at this point to wonder if debian is ready for
prime time in networked systems of many machines each having
a machine-local root partition with /proc, /sbin, /bin, /boot,
/tmp, /var, /etc, ...; and a mount point for a common /usr.
By what standard debian installation mechanism do the root
partitions on all those machines lacking a local /usr directory
tree get set up? (Perhaps they're expected to have a standard
base-system-install /usr tree, with the common /usr directory
nfs-overmounted on that /usr leaf?) (Perhaps they're expected
to have "rm -rf /usr/*" done manually sometime after the
debian install?) (Is there not a less labor-intensive means
than a manual debian install to get the root partition onto
these machines? If not, should there not be some such means?)
What is the mechanism by which installation/upgrade/removal
of packages which affects the root partition gets propagated
to all these separate machines? (Surely not per-machine
Anyhow, assuming these machines have gotten debian installed
somehow, and that one common machine is providing a common
/usr filesystem which the other machines have mounted,
and the package admin issues have been dealt with, ....
A sysadmin might convert packages configured machine-local into
site-wide by moving the config files from /etc on the machine
which provides the common /usr directory tree into /usr/etc
on that machine. He must also emplace symlinks into /etc
on each separate machine. This could no doubt be mechanized.
He could also convert packages configured site-wide into
machine-local configuration by doing the reverse. Either
course would leave him with a configuration which would
probably require his manual attention when upgrading these
packages. Perhaps debian ought to provide some standard
procedures/mechanisms to assist sysadmins in this. OTOH,
perhaps debian ought to consider this sort of tweaking as
illegal and unsupported.
I just recently resubscribed to debian-devel, and I'm still
coming back up to speed on the state of things. It seems
to me, in my ignorance, that more basic issues relating
to debian installation and administration in networked
systems need to be nailed down here before discussion of
these details. (or do I misunderstand???)
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
Trouble? e-mail to firstname.lastname@example.org .