On Sun, Apr 14, 2002 at 03:54:03PM -0700, Bart Schaefer wrote:
| On Sun, 14 Apr 2002, Duncan Findlay wrote:
| 
| > Configuration files should ALWAYS be under /etc/. Failure to do so is a
| > violation of the FHS (Filesystem Hierarchy Standard).
| 
| I'd love to agree with you, but what's /usr/local/etc for, then?

That's for configuration of software that is installed outside of the
package management system.  It's also only for the admin (root) to
play with.

| What about e.g. Apache with /usr/local/conf/?

Wrong.  Apache's config is in /etc/apache!  (Well, some systems have a
really good Policy and stick to it.  I pity the rest of you.)  Not
only that, but nothing belongs to /usr/local unless I put it there
manually.  That's why it is called "local".

| Configuration files for standard system software should always be
| under /etc/.

Yes.

| The question is whether it should be possible to install SA as
| something other than "standard system software."

Right.  I like the approach of
    $ ./configure --prefix=$HOME
    $ make
    $ make install

(for systems on which I don't have admin status; I haven't tried
installing SA on any of those)
 
| > What's wrong with
| > my $LOCAL_RULES_DIR = '$(PREFIX)/../etc/mail/spamassassin';
| 
| Many Perl installations have $Config{prefix} eq '/usr/local'.  The above
| would put local rules in /usr/etc/mail/spamassassin, which (from the
| standpoint of someone trying to isolate SA installation into /usr/local)
| is no better than forcing /etc/.
| 
| And for a non-root user installing with "make PREFIX=$HOME", the chances
| of $HOME/../etc being writable are no better.

$(PREFIX) should normally be '' (or '/' if paths are properly
normalized after expansion).  The config goes in
$(PREFIX)/etc/spamassassin, the standard rules go in
$(PREFIX)/usr/share/spamassassin, the documentation goes in
$(PREFIX)/usr/share/doc/spamassassin, the manpages in
$(PREFIX)/usr/share/man/man[0-9], the executables should be in
$(PREFIX)/usr/sbin or $(PREFIX)/usr/bin as appropriate, and finally
the perl modules in belong in $(PREFIX)/usr/share/perl5.  The last one
could change depending on the perl version being used, but AFAIK only
perl 5 is supported right now.  There is a pattern here.

Now, if I am root and am installing system software, $(PREFIX) is ''
or '/', and the installation follows the FHS.  If I am joe-user and I
set $(PREFIX) to $HOME, then it follows the FHS just as if I was root,
except that $HOME is the root of my filesystem.  Everything, then, is
nice and consistent and easy to follow.

Say, Duncan, are you reading this? <grin>

-D

-- 

Pleasant words are a honeycomb,
sweet to the soul and healing to the bones.
        Proverbs 16:24


_______________________________________________
Spamassassin-talk mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/spamassassin-talk

Reply via email to