What Linux distribution to choose for learning Ruby and Ruby

On Mon, Sep 10, 2007 at 02:05:59PM +0900, John J. wrote:

But while you’re at it, if you’re planning to do Rails, seriously
consider OS X as well, you can run Windows on the same machine these
days, so you have a one stop dev shop, and OS X is a BSD with a nice
Bash. It’s pretty popular in the Rails community, and for good
reason. It’s got a lot of good Rails development tools available, and
workflows well established.

MacOS X isn’t precisely a BSD Unix. It uses a Mach kernel (not a BSD
Unix kernel), and while it uses some basic BSD Unix environment stuff
(borrowed from FreeBSD) wrapped around that Mach kernel, the vast
majority of what you’ll interact with is the proprietary stuff wrapped
around that. The proprietary stuff, by the way, is basically just a
combination of things derived from classic MacOS and from NeXTSTEP
(Steve
Jobs’ non-Apple operating system from the early '90s).

MacOS X is really its own animal. It is not classic MacOS, it is not a
BSD Unix, and it is not NeXTSTEP, even though it combines elements from
all three. When developing GUI tools, it’s easy to pretend sometimes
that it’s NeXTSTEP; when sitting in front of it as an end-user, it’s
easy
to pretend sometimes that it’s classic MacOS; when doing command-line
sysadmin stuff and anything that verges on server work, it’s easy to
pretend sometimes that it’s a BSD Unix. In each case, though, all you’d
be doing is pretending.

It’s better, I think, to simply realize it’s not any of those other
OSes,
and just think of it as MacOS X.

Your mileage may vary, I suppose.

On Mon, Sep 10, 2007 at 07:32:50PM +0900, Mark G. wrote:

p.s. whichever you choose, make sure you create a separate /home
partition so you can easily install a new distribution without losing
your settings.

Also, keep backups. I’ve run into a couple of smaller derivative
distributions that will nuke your home directory on install without
bothering to ask if that’s what you want. It’s rare, but it does
occasionally happen.

Chad P. wrote the following on 10.09.2007 18:46 :

No . . . the “real source code action” would be in a BSD Unix (FreeBSD,
NetBSD, OpenBSD), not any Linux distribution. You can also get good
package-based software management, at least with FreeBSD and NetBSD (I’m
not familiar enough with OpenBSD to comment on it in this respect), if
you want that too. Back when I was a Debianista, my response to any
recommendation to give Gentoo a try was “If I wanted to use Gentoo, I’d
use FreeBSD instead.” Now, I use FreeBSD.

It would be nice if you actually wrote what real advantages there are to
go with *BSD instead of Gentoo or whatever. I’m actually interested
because Gentoo is my current preference for a Linux distribution but I
never had the time to play with *BSD in a meaningful way. I could write
pages about how Gentoo is very good for me but I don’t think that
would help much…

Or am I deceived and was it simple trolling around action? It can be
quite enjoyable, but please mark it then…

Lionel.

On Mon, Sep 10, 2007 at 12:07:42PM +0900, Trans wrote:

Ah, come on! SourceMage or Lunar is where the real source code action
is at :wink:

No . . . the “real source code action” would be in a BSD Unix (FreeBSD,
NetBSD, OpenBSD), not any Linux distribution. You can also get good
package-based software management, at least with FreeBSD and NetBSD (I’m
not familiar enough with OpenBSD to comment on it in this respect), if
you want that too. Back when I was a Debianista, my response to any
recommendation to give Gentoo a try was “If I wanted to use Gentoo, I’d
use FreeBSD instead.” Now, I use FreeBSD.

As for whether SourceMage or Lunar is a better source-based Linux
distribution than Gentoo – well, I’m highly skeptical of such a claim,
but I don’t have the experience with them to argue one way or the other.

On Sep 10, 9:46 am, Chad P. [email protected] wrote:

source. :slight_smile:
use FreeBSD instead." Now, I use FreeBSD.
I never quite understood the BSD fanfare. Is it really that much
different from Linux? My attempts at installation left me
disappointed. Obviously that has nothing to do with the core OS, but
nonetheless, from an end-user perspective I just didn’t see any
offsetting benefit. To me you can pretty much lump them all together
as “unix”.

As for whether SourceMage or Lunar is a better source-based Linux
distribution than Gentoo – well, I’m highly skeptical of such a claim,
but I don’t have the experience with them to argue one way or the other.

Well, I was just being funny. As for which source-based distro is
better, they are all very much alike really (after all you’re
compiling form source), but Gentoo has much better docs and a bigger
community, so it mostly “wins” for that reason alone.

Of course, real source code action would be LFS --which is an
interesting exercise (I’ve done it), but a hell of a lot of work.

T.

On Sep 10, 2007, at 1:16 PM, Lionel B. wrote:

better, they are all very much alike really (after all you’re
compare them, especially for gems handling by the distribution’s
Lionel.

perhaps headaches.

Trans wrote the following on 10.09.2007 19:40 :

IMHO (even if I consider the docs really important) what defines a
distribution is its package manager. I don’t know much about Lunar and
SourceMage (I find the terminology for this one entertaining though :
spells, casting, dispelling :slight_smile: ) and so can’t compare them to Gentoo
(I’ll let people with practical experience from both Gentoo and them
compare them, especially for gems handling by the distribution’s
package manager). It’s though to make gems handling simpler than
Gentoo’s though, on average I’ve only 4 to 6 lines to edit in a 20 lines
short template to package a new gem…

I was under the impression that Gentoo tried to get the best from
several packaging systems, including the port system so I’m curious
about what *BSD can bring to a Gentoo admin/user and especially one
having to deal with Ruby gems on a daily basis.

Lionel.

On Tue, Sep 11, 2007 at 02:40:04AM +0900, Trans wrote:

Or you could use Gentoo, where you have to recompile everything from
recommendation to give Gentoo a try was “If I wanted to use Gentoo, I’d
use FreeBSD instead.” Now, I use FreeBSD.

I never quite understood the BSD fanfare. Is it really that much
different from Linux? My attempts at installation left me
disappointed. Obviously that has nothing to do with the core OS, but
nonetheless, from an end-user perspective I just didn’t see any
offsetting benefit. To me you can pretty much lump them all together
as “unix”.

There are distinct differences between BSD Unix and Linux based OSes,
not
only under the hood but in the way the system is put together from a
sysadmin’s perspective. This is sorta the canonical “here are the
differences” essay:

BSD For Linux Users :: Intro

. . . in a manner similar to the way this is the canonical “here are the
differences” essay for people coming to Linux from MS Windows:

Linux is NOT Windows

While I do not 100% agree with everything in either of those essays,
they
raise some excellent points and are in general very worth the read.

Much has been made of the “integration” difference between Linux-based
OSes and BSD Unix-based OSes over the years. Back when I was a
dedicated
Debianista, I tended to mostly ignore such comments, thinking “How much
difference could that really make, anyway?” I justified my laziness
about giving a BSD Unix OS a more thorough chance than I already had in
part by reasoning that integration as discussed by BSD Unix advocates is
obviously not all it’s cracked up to be – judging by the results of
greater “integration” in the MS Windows and Apple MacOS X worlds, and
even with what closed source, proprietary UNIX systems I’d encountered.

Since starting to use FreeBSD more, however, I began to get a more
complete feel for what was meant by that “integration”. It means things
work together more predictably and reliably. It means the same skills I
develop in one task area more easily transfer to other task areas. It
means that there isn’t the huge gulf in configuration interfaces between
wired and wireless networking I’d come to expect when working with
Linux.
It means that custom kernel configuration is much easier to learn and
manage. It means that there’s more complete, cohesive, and clear
documentation, because the documentation reflects the design of the
system. It means a whole lot more than that, too, and I could probably
go on for hours.

I’m not saying a BSD Unix system is necessarily better than a Linux
distribution in all cases. There are instances where I would choose a
Linux system over a BSD Unix system for purposes of technical
capabilities (such as clustered computing – though it appears some BSD
Unix projects are catching up).

Obviously, the difference between BSD Unix and Linux distributions is
generally not as great as that between Linux distributions and MS
Windows. They’re much more alike than different, as measured against
the
Microsoft backdrop. There are differences, however, that to the
experienced unix-like system administrator are like night and day. It
is
in large part those differences that make me prefer FreeBSD (the BSD
Unix
operating system I’ve used the most) over Debian (the Linux-based
operating system that is, by far, my favorite Linux distribution).

As for whether SourceMage or Lunar is a better source-based Linux
distribution than Gentoo – well, I’m highly skeptical of such a claim,
but I don’t have the experience with them to argue one way or the other.

Well, I was just being funny. As for which source-based distro is
better, they are all very much alike really (after all you’re
compiling form source), but Gentoo has much better docs and a bigger
community, so it mostly “wins” for that reason alone.

It sounds like the reality is probably pretty close to what I would have
guessed (but, as indicated, would not by any stretch have claimed to
know with any certainty). Gentoo definitely has some nice advantages
to it, among Linux distributions.

Of course, real source code action would be LFS --which is an
interesting exercise (I’ve done it), but a hell of a lot of work.

No kidding. If you’re interested in a more Debian-ish philosophy on
system construction, you might also want to give DFS (Debian From
Scratch) a try. It, too, is an “interesting” exercise all its own.

On Tue, Sep 11, 2007 at 03:16:35AM +0900, Lionel B. wrote:

community, so it mostly “wins” for that reason alone.
Gentoo’s though, on average I’ve only 4 to 6 lines to edit in a 20 lines
short template to package a new gem…

I’d say there are really four primary aspects to separating
distributions
from one another:

  1. software management system (package manager, ports manager(s),
    whatever)

  2. installation system and procedures

  3. community and maintenance policies

  4. software archives and how they’re managed

Hopefully the reasons I made those choices are fairly obvious. In the
past, I’ve overlooked the “community and maintenance policies” item when
discussing the important differences between distributions, but I’ve
obviously seen the error of my ways.

I was under the impression that Gentoo tried to get the best from
several packaging systems, including the port system so I’m curious
about what *BSD can bring to a Gentoo admin/user and especially one
having to deal with Ruby gems on a daily basis.

I have had zero problems with Ruby that I haven’t had, either exactly or
in rough comparability of the nature of the issue, with any Linux
distribution. My experience so far is that Linux distributions tend to
want to override Ruby’s preferred management systems (such as gems) a
fair bit more than FreeBSD, though there are some exceptions.

More in general than that, the big wins FreeBSD provides for me over
Gentoo are related to stability, ease of ports management, and the
benefits it grants me over Linux distributions in general (which I’ve
addressed elsewhere in this thread today). As I’m so fond of saying
lately, your mileage may vary.

On Tue, Sep 11, 2007 at 03:45:41AM +0900, John J. wrote:

On Sep 10, 2007, at 1:16 PM, Lionel B. wrote:

I was under the impression that Gentoo tried to get the best from
several packaging systems, including the port system so I’m curious
about what *BSD can bring to a Gentoo admin/user and especially one
having to deal with Ruby gems on a daily basis.

perhaps headaches.

That door can really swing both ways, and may be more related to
unfamiliarity with a new system than anything else.

On Tue, Sep 11, 2007 at 01:54:42AM +0900, Lionel B. wrote:

It would be nice if you actually wrote what real advantages there are to
go with *BSD instead of Gentoo or whatever. I’m actually interested
because Gentoo is my current preference for a Linux distribution but I
never had the time to play with *BSD in a meaningful way. I could write
pages about how Gentoo is very good for me but I don’t think that
would help much…

FreeBSD, among other things, tends to provide far greater system
stability than Gentoo. As with a comparison with any Linux
distribution,
FreeBSD also presents a far greater sense of the system as an integrated
whole than Gentoo, as well – while not sacrificing significant
customization options (which should be fairly obvious considering it’s
at
heart still a source-based system). Its source-based software
management
is at least as easily managed as Gentoo’s, and even provides more
options
for how you may choose to manage it (portupgrade, portmaster, et
cetera),
but succeeds at this while still sticking closer to its “roots” in
source
code compilation, as all software management within the standard Ports
system can be very simply and easily handled via make, rather than
layering the idiosyncratic emerge system over everything to achieve ease
of management.

Additionally, FreeBSD provides more extensive software archives, and the
software in those archives (in the Ports tree, specifically) is
generally
more thoroughly tested (in other words, no “KDE is broken this week”
jokes). Most system and software management is more straightforward,
and
while Gentoo has some of the best online documentation in the Linux
world, FreeBSD documentation is the best I’ve ever seen – not only
because it covers pretty much every damned thing you can think of, but
also because it is so incredibly well organized. The FreeBSD community
may not be as extensive as what you’re used to with Linux, but it is
also
less scattered and fractious, which means you’ll probably never notice
the difference in how extensive it is unless you’re specifically looking
for a local community. Even having been ever-more heavily involved in
the more expert-oriented Linux communities in recent years, I find that
short of something like the Linux kernel hackers’ community or something
along those lines, the average knowledge level of the FreeBSD community
is greater than that of the Linux communities, too.

Obviously, your mileage may vary. I speak in large part simply from
personal experience. This is how it all seems to hash out from my
perspective, however.

Or am I deceived and was it simple trolling around action? It can be
quite enjoyable, but please mark it then…

It wasn’t intended as a troll. I just didn’t really have the time or
inclination to write a lengthy dissertation at the time. Hopefully I’ve
provided a little more of the substance you wanted, now.

Hi~

On Sep 9, 2007, at 9:12 PM, M. Edward (Ed) Borasky wrote:

I was running gentoo on a 700 mhz laptop til it died a couple of
big

Borders and pick up a book on Debian system administration that’s
current with “etch”, but you can find oodles of books on Red Hat
Enterprise Linux and Fedora. Of course, if you live in Portland,
you can
walk down to Powell’s Technical Books and get anything. :wink:

I have to step in here with a small data point about Gentoo on
servers. If you know what you’re doing then it can make some of the
most stable fast servers around. I’m currently running just under
1000 gentoo servers all serving Rails and ruby apps and I love it.

That said for learning linux and ror then probably ubuntu or fedora
are your safest bets. Gentoo requires quite a but of tweaking to get
right, but once you get it right it screams.

Gentoo is like a meta-distro, in the fact that you can take it and
bend it into your own targeted custom distros.

Cheers-
– Ezra Z.
– Founder & Ruby Hacker
[email protected]
– Engine Y., Serious Rails Hosting
– (866) 518-YARD (9273)

Thanks for the answer, that was an interesting reading. I’ve some
remarks though (maybe some things changed since the last time you tried
Gentoo).

To put it more on topic, could you describe briefly how you can
integrate gems in the package management system on *BSD? With me being
very familiar with Gentoo, the ease of integration of gems into Gentoo
was probably the biggest reasons why I switched all my servers to
Gentoo…
Does it build on gems like Gentoo or do you have to write messy
Makefiles like I suspect most other Linux distributions do?

Chad P. wrote the following on 10.09.2007 21:12 :

FreeBSD, among other things, tends to provide far greater system
stability than Gentoo.

?!? To be more stable would probably mean repairing the hardware for me!

Currently I have 3 desktops including my parents’ one (and trust me, I
don’t want to travel to fix their computer…) and 7 servers running
Gentoo (my business is only 4 months old, this will grow…). I started
using it 3 years ago and never had any software stability problems (of
course I don’t blindly update gcc or Apache 1.3 to Apache 2.0 without
reading the upgrading documentation beforehand, actually read the
installation notices/warnings and use a staging server for critical
stuff…).
I’ve some experience administering Linux (I’ve done it for more than 10
years now), so as you said: your mileage may vary :slight_smile: Of course I stay
away from unstable ebuilds as much as I can and test them thoroughly if
I really have to use them on production servers.

As with a comparison with any Linux distribution,
FreeBSD also presents a far greater sense of the system as an integrated
whole than Gentoo

I’m not sure if I understand this correctly. Let me rephrase to be sure:
the FreeBSD administration is more consistant across software packages,
the base system configuration is simpler.

If I understood correctly, it may be a good thing, yes. And it probably
isn’t Gentoo specific: most general purpose Linux distributions come
with roughly the same software and the same heterogeneous configuration
files too. On a positive note, I like the /etc/conf.d system in Gentoo:
it brings some consistency to this (even if it can’t address all
problems).

However I suppose there is some inconsistency in *BSD configuration too:
the first thing that comes to my mind is Apache configuration (which
configuration complexity could arguably be compared to the one of a
whole OS…).

, as well – while not sacrificing significant
customization options (which should be fairly obvious considering it’s at
heart still a source-based system). Its source-based software management
is at least as easily managed as Gentoo’s, and even provides more options
for how you may choose to manage it (portupgrade, portmaster, et cetera),

There are alternatives to emerge (paludis for example) in Gentoo (I
suppose there’s always a problem to fix for someone…).

but succeeds at this while still sticking closer to its “roots” in source
code compilation, as all software management within the standard Ports
system can be very simply and easily handled via make, rather than
layering the idiosyncratic emerge system over everything to achieve ease
of management.

That’s a matter of taste: make without emerge is a definitive no-no on
my servers and a real headache on any system that I don’t plan to
reinstall from scratch. In fact I don’t do reinstalls anymore since I
switched to Gentoo. I went further and don’t even do installs anymore
too as I keep base system images ready to detar on a partition. I found
it to be more reliable and quicker than distro-based installation
methods (of course the usual Gentoo install is painfully slow, which is
what motivated me in the first place).

Additionally, FreeBSD provides more extensive software archives,

I’m surprised to hear this, Gentoo software coverage is huge and truly
amazing if you consider the unstable part of the Portage tree.

and the
software in those archives (in the Ports tree, specifically) is generally
more thoroughly tested (in other words, no “KDE is broken this week”
jokes).

KDE broken? My parents would be on the phone in an instant (and I try
not to let their system lag too much behind the tree so they probably
used all Gentoo stable KDE versions for 18 months now).

Most system and software management is more straightforward,

That I can believe easily, there’s always room to improve there.

and
while Gentoo has some of the best online documentation in the Linux
world, FreeBSD documentation is the best I’ve ever seen – not only
because it covers pretty much every damned thing you can think of, but
also because it is so incredibly well organized.

The lack of organization is indeed a defect. Not big (it’s not a huge
pile where you spend hours looking for something) but it definitely
could be improved.

The FreeBSD community
may not be as extensive as what you’re used to with Linux, but it is also
less scattered and fractious, which means you’ll probably never notice
the difference in how extensive it is unless you’re specifically looking
for a local community. Even having been ever-more heavily involved in
the more expert-oriented Linux communities in recent years, I find that
short of something like the Linux kernel hackers’ community or something
along those lines, the average knowledge level of the FreeBSD community
is greater than that of the Linux communities, too.

That’s the problem when some technology becomes popular (don’t advertize
too much if you are an elitist :slight_smile: ).

Thanks again,

Lionel

(Okay, off topic we go, but I can’t help it…)

Le 10 septembre à 22:38, Lionel B. a écrit :

To put it more on topic, could you describe briefly how you can
integrate gems in the package management system on *BSD?

Basically, it requires to write a very simple makefile, a text
description, and generate a hash of the package.

You can find an actual makefile here :

http://www.freebsd.org/cgi/cvsweb.cgi/ports/mail/rubygem-actionmailer/Makefile?rev=1.10;content-type=text%2Fplain

If you want to take a look around, you have a list of all the gems
currently managed here :

http://www.freebsd.org/ports/rubygems.html

(Note that rubygem itself can be installed, and is somewhat integrated
into the system too.)

The FreeBSD ports is build around Makefiles, but very standardized, and
those will pilot the usual makefiles of each software or will launch
every other kind of stange command needed to build your software. From
an administrator’s point of view, it’s very easy (everything build with
make ; make install). From the porter (who maintains that magic layer
of glue between the software and the building management system), it’s
sometimes quite more complicated.

If you want all the gory details (and a sample of that great FreeBSD
documentation mindset) :

/…/

As with a comparison with any Linux distribution,
FreeBSD also presents a far greater sense of the system as an integrated
whole than Gentoo

I’m not sure if I understand this correctly. Let me rephrase to be sure:
the FreeBSD administration is more consistant across software packages,
the base system configuration is simpler.

Simpler, somewhat. The real winning point is that, on all my FreeBSD
machines, I can completely wipe out the installed packages with a ‘rm
-rf /usr/local’, and still have an usable, bootable system. Not that
it’s really useful, but it shows what Chad means with the integrated
system - you have a fully functional base that comes with the OS, and
the packages neatly separated. That also means that I can probably find
my way and manage the basics of any relatively recent FreeBSD system out
there : unless the administrator made some very ugly things, I’ll find
the basic tools needed to run the box.

Incidentally, since most of the packages’ makefiles are patched to force
the installation under /usr/local, the maintainers also usually put
files in “usual” places (config under /usr/local/etc, samples under
/usr/share/examples, docs under /usr/share/docs, etc) enforcing a
stricter cohesion - in my experience.

On the other hand, the FreeBSD ports system is not the universal
panacea, in my experience. I’ve had unstable systems and applications
using it, requiring sometimes to launch a lengthy re-compilation of many
ports, and the such. But it’s infrequent, and the base system is
usually next to indestructible in a server configuration. (I only have
one FreeBSD system in a desktop config.)

/…/

However I suppose there is some inconsistency in *BSD configuration too:
the first thing that comes to my mind is Apache configuration (which
configuration complexity could arguably be compared to the one of a
whole OS…).

No, no. The basics (which deamon to run at startup, and the
parameters to launch them) are centrally managed, but each package still
has its own configuration file, usually the sample file included with
the software, patched to reflect the strict directory structure.

/…/

Additionally, FreeBSD provides more extensive software archives,

I’m surprised to hear this, Gentoo software coverage is huge and truly
amazing if you consider the unstable part of the Portage tree.

I don’t know the numbers for GenToo, but FreeBSD has, at the moment,
17620 ports.

/…/

and
while Gentoo has some of the best online documentation in the Linux
world, FreeBSD documentation is the best I’ve ever seen – not only
because it covers pretty much every damned thing you can think of, but
also because it is so incredibly well organized.

The lack of organization is indeed a defect. Not big (it’s not a huge
pile where you spend hours looking for something) but it definitely
could be improved.

This is the point I really, really like about FreeBSD. Next to every
system utility and library has a man page, and port maintainers are
known to write or convert some for the packages that would lack those.
Aside from that, the FreeBSD handbook is well written, and a good basis
for many tasks.

Fred

On Tue, Sep 11, 2007 at 05:38:32AM +0900, Lionel B. wrote:

Thanks for the answer, that was an interesting reading. I’ve some
remarks though (maybe some things changed since the last time you tried
Gentoo).

To be perfectly fair . . . it has been a little while.

To put it more on topic, could you describe briefly how you can
integrate gems in the package management system on *BSD? With me being
very familiar with Gentoo, the ease of integration of gems into Gentoo
was probably the biggest reasons why I switched all my servers to Gentoo…
Does it build on gems like Gentoo or do you have to write messy
Makefiles like I suspect most other Linux distributions do?

In very superficial terms:

Specify a gems hierarchy, install the gem utility from ports, and use as
normal.

Chad P. wrote the following on 10.09.2007 21:12 :

FreeBSD, among other things, tends to provide far greater system
stability than Gentoo.

?!? To be more stable would probably mean repairing the hardware for me!

Again, it’s been a while for me – but the “KDE is broken this week”
joke
comes to mind.

years now), so as you said: your mileage may vary :slight_smile: Of course I stay
away from unstable ebuilds as much as I can and test them thoroughly if
I really have to use them on production servers.

One can always make up for stability failures with diligence,
intelligence, and hard work – and a bit of luck (of course). That
applies pretty much regardless of OS (especially if it’s an open source
OS with open source software running on it).

isn’t Gentoo specific: most general purpose Linux distributions come
with roughly the same software and the same heterogeneous configuration
files too. On a positive note, I like the /etc/conf.d system in Gentoo:
it brings some consistency to this (even if it can’t address all problems).

This is true, on all counts: my comment in this regard applies to all
Linux distributions I’ve encountered (not just the “general purpose”
distributions), even in a minimal install, and a well-organized /etc
helps immensely in unifying system administration procedures. On the
other hand, that’s not the whole of the matter. My favorite Linux
distribution is Debian, which is one of the better-organized
distributions available, but a sane filesystem hierarchy is only one
component among many of the sort of integration of system design I mean.

However I suppose there is some inconsistency in *BSD configuration too:
the first thing that comes to my mind is Apache configuration (which
configuration complexity could arguably be compared to the one of a
whole OS…).

Apache configuration is nontrivial, period. The OS on which it’s
installed doesn’t change that.

, as well – while not sacrificing significant
customization options (which should be fairly obvious considering it’s at
heart still a source-based system). Its source-based software management
is at least as easily managed as Gentoo’s, and even provides more options
for how you may choose to manage it (portupgrade, portmaster, et cetera),

There are alternatives to emerge (paludis for example) in Gentoo (I
suppose there’s always a problem to fix for someone…).

Too true. Frankly, I don’t find the wide range of options as important
as the design of the primary systems. As such the make and portupgrade
systems for FreeBSD are really the important part, from my perspective,
and they’ve proven to be quite pretty damned good tools.

switched to Gentoo. I went further and don’t even do installs anymore
too as I keep base system images ready to detar on a partition. I found
it to be more reliable and quicker than distro-based installation
methods (of course the usual Gentoo install is painfully slow, which is
what motivated me in the first place).

The whole ports system can be managed by make without in any way
interfering with the effectiveness of other tools such as portupgrade.
It’s essentially interchangeable. For instance, these two commands are
equivalent:

cd /usr/ports/print/scribus; make install clean

portinstall scribus

. . . and neither in any way precludes the other’s use or causes any
risk
of inconsistent states, et cetera. That’s sorta my point.

re: installation . . .
FreeBSD installs about as quickly as a minimal Debian install, too. I’m
less than enthused with any OS that takes longer than twenty minutes
(give or take) to install, these days. Debian spoiled me in that sense,
and FreeBSD hasn’t disappointed me following that precedent.

Additionally, FreeBSD provides more extensive software archives,

I’m surprised to hear this, Gentoo software coverage is huge and truly
amazing if you consider the unstable part of the Portage tree.

I have yet to see any system with as much software as in Debian’s
software archives – but FreeBSD comes surprisingly close. Again, it
has
been a while, but last I recall Gentoo didn’t have more than 15k ports.
FreeBSD does.

and the
software in those archives (in the Ports tree, specifically) is generally
more thoroughly tested (in other words, no “KDE is broken this week”
jokes).

KDE broken? My parents would be on the phone in an instant (and I try
not to let their system lag too much behind the tree so they probably
used all Gentoo stable KDE versions for 18 months now).

I gather, from that, one of two things is true:

  1. Their system doesn’t get software updates very often.

  2. Gentoo doesn’t break things with new software versions very often
    any longer.

Most system and software management is more straightforward,

That I can believe easily, there’s always room to improve there.

I’ve encountered a few instances where I wished something was a little
more straightforward with FreeBSD, but I haven’t yet encountered any OS
that provides an overall more-straightforward approach to system and
software management.

and
while Gentoo has some of the best online documentation in the Linux
world, FreeBSD documentation is the best I’ve ever seen – not only
because it covers pretty much every damned thing you can think of, but
also because it is so incredibly well organized.

The lack of organization is indeed a defect. Not big (it’s not a huge
pile where you spend hours looking for something) but it definitely
could be improved.

On that subject . . . you might find that some of the FreeBSD
documentation is of great help for experienced Linux admins, too.
That’s
particularly true with regard to software that’s common to both systems.
I actually originally got Greg Lehey’s book, “The Complete FreeBSD”
(from
O’Reilly), because it covered subjects woefully underdocumented in the
Linux world. I found it invaluable for Linux administration reference
material along with a couple other treasures I’ve encountered along the
way. The FreeBSD Handbook (an online reference that is actually
organized like a hardcopy book) is more FreeBSD-specific, but so well
organized and presented – and so complete – that it can’t help but be
useful at times for any Unix-like system. While I’m at it, there’s some
excellent material in Dru Lavigne’s “BSD Hacks” book (also from
O’Reilly) – again, even for Linux systems.

Manpage coverage is not quite as comprehensive as that of Debian, but
then again, what is? It gets awfully close, though (and doesn’t
occasionally tease you with a manpage that just points at an info page,
like Debian does once in a while).

That’s the problem when some technology becomes popular (don’t advertize
too much if you are an elitist :slight_smile: ).

True, of course.

I figure that by the time FreeBSD’s community online support degrades
appreciably, I’ll be using something else (“better”), anyway.

Thanks again,

My pleasure. Thanks to you, too.

On Tue, Sep 11, 2007 at 07:00:50AM +0900, Chad P. wrote:

been a while, but last I recall Gentoo didn’t have more than 15k ports.
FreeBSD does.

I just checked. Compared with Debian’s more than 18k packages (not sure
how many more – I haven’t checked lately) and FreeBSD’s more than 17k
ports, it looks like Gentoo provides just over 11k. I think that puts
Gentoo solidly in second place for Linux distributions, but well behind
FreeBSD.

On Tue, Sep 11, 2007 at 06:30:06AM +0900, F. Senault wrote:

(Note that rubygem itself can be installed, and is somewhat integrated
into the system too.)

That’s what I’ve used. I find it easier than to screw with creating my
own ports of gems.

On the other hand, the FreeBSD ports system is not the universal
panacea, in my experience. I’ve had unstable systems and applications
using it, requiring sometimes to launch a lengthy re-compilation of many
ports, and the such. But it’s infrequent, and the base system is
usually next to indestructible in a server configuration. (I only have
one FreeBSD system in a desktop config.)

How many desktop systems does one need, anyway?

I’ll have two soon – but one’s my laptop, and the other will be my
recreated “game machine”. Both will be FreeBSD. Otherwise, all I need
is servers.

No, no. The basics (which deamon to run at startup, and the
parameters to launch them) are centrally managed, but each package still
has its own configuration file, usually the sample file included with
the software, patched to reflect the strict directory structure.

. . . but the sort of basic utilities that are in many cases viewed as
separate packages in most Linux distributions are maintained as part of
the extended OS by the OS development community itself in FreeBSD, which
means that there are a lot of tools for FreeBSD that share a more
consistent interface and set of capabilities than one might have come to
expect from working with Linux systems. Such obviously doesn’t extend
as
far as software like Apache, but it makes the standard command line
tools
we all know and love seem just a bit more lovable (and knowable, for
that
matter).

This is the point I really, really like about FreeBSD. Next to every
system utility and library has a man page, and port maintainers are
known to write or convert some for the packages that would lack those.
Aside from that, the FreeBSD handbook is well written, and a good basis
for many tasks.

s/many/most common/

The range of tasks covered by the FreeBSD Handbook boggles my mind, and
the clarity with which it does so is . . . well. I’ll stop babbling
about it now. In short, it’s great.

I just checked. Compared with Debian’s more than 18k packages (not sure
how many more – I haven’t checked lately) and FreeBSD’s more than 17k
ports, it looks like Gentoo provides just over 11k. I think that puts
Gentoo solidly in second place for Linux distributions, but well behind
FreeBSD.

See the note about packages splitted in many subpackages in my reply to
Fred. I was thinking of Debian and Ubuntu when writing it… IIRC I had
to install around 10 packages on Ubuntu in March this year to get
roughly the same result than emerge ruby… I must admit I wasn’t happy
about it especially as at the time Rails was installed with rubygems
manually so all the missing deps where found with runtime failures :frowning:
In the end Rails didn’t even get to work correctly because of different
loadpaths in the gems and the deb packaged libraries. In short the
Ubuntu/Debian admin followed a Rails on Ubuntu tutorial and failed
because making the system consistant was hard even for plain simple
Rails. I sincerely hope Debian is better but I still have doubts (IIRC
the Ubuntu packages were the original Debian ones without any Ubuntu
patch).

At least the dependency hell on Debian is benign compared to Fedora. One
time I managed to have eclipse installed on a slow Gentoo box faster
than a colleague on a fast Fedora box without even trying… yum had to
fetch around 70 packages for him while my configuration only generated
15-20 dependencies !

On a positive note, it doesn’t seem FreeBSD was chopped in so many
pieces (at least for Ruby I only noticed a ruby18-doc that isn’t counted
in Gentoo but there anyway in the basic ruby ebuild).

Lionel

F. Senault wrote:

http://www.freebsd.org/ports/rubygems.html

Exactly the information I needed :slight_smile: I looked around, inspecting several
Makefiles and I find the process roughly as simple as a gentoo ebuild
based on the ruby and gems eclass.
The Makefile syntax isn’t exactly my personal preference but it’s a
matter of taste.

(Note that rubygem itself can be installed, and is somewhat integrated
into the system too.)

The FreeBSD ports is build around Makefiles, but very standardized, and
those will pilot the usual makefiles of each software or will launch
every other kind of stange command needed to build your software.

Brings back memories (I’ve actually briefly used FreeBSD long ago). From
a quick count (ruby + rubygems vs dev-ruby and other ruby-related
packages scattered across the Portage tree) it seems there’s about the
same ruby support in the ports and in the Portage tree.

[…]
Simpler, somewhat. The real winning point is that, on all my FreeBSD
machines, I can completely wipe out the installed packages with a ‘rm
-rf /usr/local’, and still have an usable, bootable system. Not that
it’s really useful, but it shows what Chad means with the integrated
system - you have a fully functional base that comes with the OS, and
the packages neatly separated.

I see you like clean and lean systems a lot too :slight_smile:

In a similar way you can use the /var/lib/portage/world as a reference
for all the packages you installed on top of the system on Gentoo too.
It’s a little different as you’ll use the package manager to clean the
system for you and not a simple rm -rf (I concede simple is hard to
argue against). But package managers has their virtues: you don’t lose
the configuration files modifications when uninstalling, you even get
archives created for you with 3-way merging of new configuration files
when upgrading, can track everything (the (un)installs are logged, all
files referenced, hashed for tampering checks) dependencies are
maintained (although I see ports supports deps too) and even dynamic
based on your configuration.
I like this world file a lot because it doesn’t store all your package
but only the ones you requested. Dependencies can be easily cleaned up
thanks to this (with a small dose of precaution involving a dynamic link
checker because of the nature of a source based distribution).

[…] That also means that I can probably find
my way and manage the basics of any relatively recent FreeBSD system out
there : unless the administrator made some very ugly things, I’ll find
the basic tools needed to run the box.

It’s probably true on any Unix system you mastered (I remember having an
HP admin and me in front of an HP-UX box and even though I had far more
experience, methodology and general CS knowledge, here I was the student
99% of the time…).

[…]
I don’t know the numbers for GenToo, but FreeBSD has, at the moment,
17620 ports.

Ok even if it can be difficult to compare, FreeBSD probably wins :slight_smile:
Gentoo has more than 12000 packages in the main tree. Many have several
stable versions, but it’s not more common to have what is called 'SLOT
'ed packages (packages where it’s meaningful to have several versions
installed simultaneously, some libs and autoconf are known for this)
than packages without any stable version at all.

There may be a catch: I don’t know for FreeBSD, but other distributions
get more packages because they split some packages in several
sub-packages (client, server, libs, headers, doc,
-lib…), Gentoo never does this and always ship
one and only one package which may install only what the admin needs
according to the global system configuration.
Some may want to count Gentoo overlays, but very few have what I
consider production quality software.

In short, I’m pleasantly surprised.

known to write or convert some for the packages that would lack those.

For Gentoo it’s a requirement to document software. IIRC it’s a policy
violation to mark undocumented software stable in the tree.

Aside from that, the FreeBSD handbook is well written, and a good basis
for many tasks.

Fred

Thanks, you cleared up some misconceptions (or outdated impressions) of
mine. At this point I guess I’ll have to install FreeBSD on a system to
play with (in the end, it’s always a matter of taste and you can’t get
the taste without a test…).

Lionel

On Tue, Sep 11, 2007 at 08:34:38AM +0900, Lionel B. wrote:

roughly the same result than emerge ruby… I must admit I wasn’t happy
about it especially as at the time Rails was installed with rubygems
manually so all the missing deps where found with runtime failures :frowning:
In the end Rails didn’t even get to work correctly because of different
loadpaths in the gems and the deb packaged libraries. In short the
Ubuntu/Debian admin followed a Rails on Ubuntu tutorial and failed
because making the system consistant was hard even for plain simple
Rails. I sincerely hope Debian is better but I still have doubts (IIRC
the Ubuntu packages were the original Debian ones without any Ubuntu patch).

In my experience, Debian is much better about making sure things like
that work. Debian does tend to divide up some packages, of course, so
that you can get only the parts you actually want if you don’t want the
whole shmear (like if you want Ruby and Rails, but not irb, for some
reason). Source-based OSes get a little bit of a free pass on that sort
of thing (at least if they’re well-managed) because you can configure
compilation to use, or not use, components you do or don’t want via the
makefile, make configuration interface, or the software management
system
itself in some cases – without having to separate components into
separate packages.

Still . . . Debian (not Ubuntu) has a tremendous number of packages,
and not by any means simply because certain installable software options
are divided up into two or three packages where they might only be one
somewhere else.

At least the dependency hell on Debian is benign compared to Fedora. One
time I managed to have eclipse installed on a slow Gentoo box faster
than a colleague on a fast Fedora box without even trying… yum had to
fetch around 70 packages for him while my configuration only generated
15-20 dependencies !

Dependency management is quite slick in Debian, in general. APT is an
excellent tool. The worst problems I’ve had with it were during a
period
when it was contending with A) an uncharacteristic push to get a new
Stable release out the door “on time”, B) the height of package
maintainer defections to Ubuntu, and C) probably something else that
escapes my memory at the moment, too. That was about the time that I
findally found the motivation to give FreeBSD a more serious shot than I
had previously, too.

Having used YUM and APT back-to-back a fair bit, I think Fedora could
have done a lot better with a software management toolset choice. I
can’t help but wonder if Fedora’s choice to go with YUM rather than the
APT-RPM that was becoming popular about that time had something to do
with a “not invented here” political issue, since APT as the canonical
DEB management tool was long seen as RPM’s “competition”.

A friend of mine actually benchmarked APT and YUM under a number of
different sets of conditions, and found that YUM takes something like
50-1000 times as long to complete install operations (a widely varying
difference, but some depressing numbers nonetheless).

On a positive note, it doesn’t seem FreeBSD was chopped in so many
pieces (at least for Ruby I only noticed a ruby18-doc that isn’t counted
in Gentoo but there anyway in the basic ruby ebuild).

FreeBSD doesn’t tend to play silly buggers with software packaging, I’ve
noticed. It’s one of the things I like about it.