Re: Re: Debian BSD.. cool idea
On Sun, 30 Jan 2000, Raul Miller wrote:
# On Sun, Jan 30, 2000 at 01:52:49PM -0500, Dan Papasian wrote:
# > It isn't a bad thing. But the UNIX way always has been put the
# > software that is part of the base OS's into /usr, and software
# > installed over it into /usr/local.
# Remember that the goal of debian has always been to build a coherent,
# free distribution from the variety of available sources. That most of
# these sources aren't BSD sources shouldn't affect their logical placement.
With FreeBSD all of /usr is software that is maintained by the
FreeBSD team in their CVS tree. Not all of that software is
from BSD sources. We  have gcc-2.95, groff, perl, sendmail,
... See /usr/src/contrib for a more exhaustive list. The point
Dan was trying to make (I believe) was that all of the software
in /usr is maintained by FreeBSD and if you have a problem with,
fix for, or question about it, then the FreeBSD team will help.
All the code there is subjected to security audits and extensive
release testing before it makes it into a FreeBSD release. This
core set of software is what we believe to be minimum requirement
to have a fully functional Un*x OS. Sure there are things there
which many will find useless or constitute bloat, but generally
addons or newer versions of existing software (gcc-2.95, patch, etc)
are easily obtained from the ports tree.
Debian and FreeBSD have a very similar philosophy, except that
Debian maintains a smaller set of "required core software". You
could for instance have a box with just a kernel, dpkg, and a
handful of config files. Does this make a fully functional
Un*x OS? Depends on what you need. FreeBSD has a bigger set
of core software which limits your freedom a bit. However the
hope is that the set you get is well tested, secure, stable. It
is impractical to believe you can deliver a stable OS where you
can't extensively test all the bits that constitute it. Take
a simple example with 2 shells, 2 compilers, and 2 makes. You'd
have to release test 8 configurations! Now consider that there
are several hundred (thousand?) programs each with one or more
alternatives (versions) and you begin to see why FreeBSD's
philosophy of having a bigger core set falls in line with it's
goals and the laws of Murphy. Please don't take this as being
deragotory to Debian. When I use Linux, I use Debian. Just
trying to highlight the differences and provide some insight
into the way I believe FreeBSD ended up as it did.
The software in /usr/local on the other hand is all from 3rd
party sources. We make efforts to ensure that this software
plays well with FreeBSD, but we really can't vouche for it being
secure (or even usable :). There are over 3000 such programs
in FreeBSD's ports tree right now and it would be nearly impossible
to give it the same level of support as we do the rest of the bits
that we keep in cvs.
As for putting things like mySQL in /usr. You can still do this
with the following command on FreeBSD.
make PREFIX=/usr install
pkg_add -p /usr -r mysql-server-3.22.30
In fact since I happen to be the person that builds FreeBSD's
ports collection for the Alpha port, I routinely set PREFIX to
/opt for the few things oustide the base system that I like to
have on my box. Putting them in /opt instead of /usr/local means
they don't get clobbered when I startup a parallel build of all
3000+ packages on my box. The point being that you can set
PREFIX to anything that you want. It is /usr/local by default
because FreeBSD wants to make a clear distinction between what
FreeBSD maintains and what is maintained outside the project.
We make the distinction possible but you are free to choose to
ignore it if you want.
 By using 'we' I speak only for myself. I am not a member of
-core, but I do have cvs commit privileges and am an active
member of the FreeBSD project. I use 'we' because I believe
what I wrote is widely held within the project. Then again
I could be way out in the weeds so that take it as my words
and not some sort of FreeBSD official policy. :)