Came across this apologia by a FreeBSD fan
<http://www.over-yonder.net/~fullermd/rants/bsd4linux/bsd4linux1.php>. The
key point I get from this is that *BSD follows a centralized development
model, Linux a distributed one. This difference turns up over and over
again. For example:
Linux has never had any sort of separation between what is the "base
system" and what is "addon utilities". The entire system is "addon
utilities". MySQL is no different from ls from KDE from whois from dc
from GnuCash from ... Every bit of the system is just one or another
add-on package.
...
The entire base system is developed together. To be sure, there're parts
of the base system like sendmail and BIND and tcpdump and ssh and such,
which are in fact individual packages which are developed elsewhere.
There are even some GNU packages like groff and gcc and gzip and such,
which will be immediately recognizable to any Linux user. But these are
treated specially, in that versions are imported into the tree, then
molded to fit the rest of the system.
So BSD takes these add-ons, and adapts them to fit its way of doing things.
Whereas Linux adapts itself to their way of doing things. Seems to me
there’s a lot less work involved in doing things the Linux way.
I guess what's important here is to realize that the difference between
ports and RPM's isn't just that ports compile and RPM's just install.
Ports are designed to cover the full range of bits and pieces of
installing stuff; encoding and tracking and installing dependencies,
packaging, installing and deinstalling, local changes necessary to build
on your system, compile-time configuration tweaks... all those things.
An RPM is just a binary package. If you want to auto-install
dependencies, you have to have a higher-level tool like urpmi or apt-get
to do it. And, since it's binary, you have to deal with library
versioning conflicts, or missing compile options, or any of the other
limitations you incur by not building it on your own system.
Which all current major Linux distros I’m aware of are quite capable of
handling as a matter of course.
... you can poke around FreeBSD's entire source tree online at
http://cvsweb.freebsd.org/src/, and see all the history of every file.
This surprised the hell out of me. Yes, I know the article is a few years
old now, but they’re still using CVS!?? Yes, that link still works! I see
alternative links from that page to Subversion and Perforce versions of the
repository, but judging from the design of those pages, they seem like
afterthoughts; looks like the CVS version is still the master.
So, no sign of support for distributed version control—no Git, not even
Mercurial, nothing.
In a nutshell, I think Linux is about embracing the future, *BSD is about
sticking with the past.