[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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.

>From FSSTND-1.2:

  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
  at best.

  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 
  manual twiddling)
  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, ....
end digression)

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
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .

Reply to: