On Tue, Dec 18, 2007 at 03:26:53PM -0600, Mike Miller wrote:
> On Tue, 18 Dec 2007, Dan Rue wrote:
>
>> FreeBSD has a *very* strict file hierarchy (man hier in freebsd or see
>> http://www.freebsd.org/cgi/man.cgi?query=hier&apropos=0&sektion=0&manpath=FreeBSD+6.3-RELEASE&format=html).
>> What this means is that there is strict separation between the core
>> operating system and third party packages.  The core OS includes the
>> kernel, but also a couple of editors (vi and ee), a couple of shells
>> (tcsh, csh, sh), core libs, bind 9, and a few other things.  The nice
>> thing about that is that those things are guaranteed by the FreeBSD team
>> and you never have to worry about the most basic parts of your OS being
>> damaged by a package upgrade, for instance.
>>
>> I remember a few years ago watching dselect in debian remove the entire 
>> OS, including the kernel and dselect itself.  While it was a PEBKAC/user 
>> error - that can never happen in FreeBSD (using package tools).  In fact, 
>> you can mount the base part of freebsd read-only, to really prevent such 
>> occurrences.
>
> This would be someone logged on as root, I assume (i.e., the sys admin). Is 
> it not possible to mount corresponding files in the Linux system as 
> read-only?
>
>
>> One nice thing about all of this from my (the admin's) perspective, is
>> that FreeBSD's base config files live in /etc, and ALL third party
>> configurations live in /usr/local/etc.  In fact, all third party
>> ports/packages get installed to /usr/local.  No matter how badly you
>> hose up your box, it is safe to rm -rf /usr/local/ and (and /var/db/pkg
>> and maybe one or two other spots) and start over.
>
> Can't things also be installed on a Linux system so that they are entirely 
> within /usr/local?  That's what I usually do with
>
> ./configure prefix=/usr/local
>
> But that is the typical default path, so the prefix is usually not 
> specified.  I like your idea but I don't see why it can't be done in Linux 
> too.  Maybe it's a lot easier to pull it off in FreeBSD.
>

With respect, I think you missed the point.  

Sure, it's possible to do these things in Linux.  It's an open source
OS, you can do whatever you want.  But in FreeBSD, it's not only
default, it's very strict and the same no matter who's maintaining the
machines (unless they go out of their way to break it, that is).

So if linux packages by default go in /usr/local, what goes in /?  I
know linux configs always go to /etc.  I imagine some packages will
install to /bin, and some to /usr/local/bin?  Is it just ad-hoc based on
the mood of the maintainer?   This is what I mean by having a *strict*
hierarchy.  A freebsd port maintainer would get beat if they installed
something to /etc, or to /bin, or to /lib, .. etc.

Dan