Well, it finally happened. My partner has gotten fed up with the snail's pace at which the latest versions of many apps become unmasked -- or even show up -- in portage. PHP 5, MySQL 5, Cocoon 2.1, etc., etc.
He's gotten to the point -- helped along by a couple portage gaffes lately (PHP/SNMP conflict causing apache not to start, a MySQL upgrade killing libmysqlclient and breaking a number of apps, and my struggles (though probably my fault) with courier the other day) -- where he wants to explore other options. A *nix-geek friend of his has been raving about FreeBSD... and I have to admit that just about everything I've looked for is in the ports collection.
However, since I've been doing 99% of the maintenance of this server, I want to know what I'm in for. So, I'm curious if anyone on the list also runs or has run FreeBSD? If so, what were your impressions? What pitfalls are there? What are the big differences? If you left BSD for Gentoo, why?
It seems like the ports collection offers everything that portage does (it was the inspiration for portage, after all), but their devs are making the latest versions available and stable faster. Is doing "cvsup" is really the same as "emerge sync" and "make install" in a given apps directory the same as "emerge <thatapp>"? Seems like FreeBSD is a winner... what's the catch?
Any and all thoughts welcome...
I hate to say it, but it sounds like *less* maintenence and change would fix most of your problems. I'm running most of the same services you are yet I haven't had a problem because I either test on my private server or don't do immediate upgrades. Usually I do both of those. Waiting 1-2 weeks before touching production packages like mysql, apache, etc would have avoided almost every one of your problems.
Take the courier-imap issue. I saw the upgrade from 3.x to 4.x and decided to wait a few days. Gentoo has had some gothcas for almost every major update. Postfix 1.1 to 2.0, Mysql 3 to 4, Apache 1 to 2, etc. I generally expect that and don't really blame Gentoo that much. Changing a major application within a running OS is *hard* and worse when you're linking against it. And it's even messier when you don't have a fantastic reverse dependency checker and rebuilder. Gentoo has improved much, but it's still a nontrivial problem and you should admin you systems with this in mind. I did the upgrade to courier-imap 4 yesterday on my personal server after it looked like things had settled down on the forums. This week it'll get rolled out on the work server, followed by next week on the production customer servers.
Mysql 5? Still alpha. Mysql 4.1? Thinking about it, but no cuostmer is pushing it and frankly I'm just starting to get comfortable with Mysql 4.
I can understand having to use PHP5 if you have to have the mysqli stuff in Mysql 4.1. Unfortunately as new as those are it's not going to be cake walk on any OS. That php/snmp bug was an upstream bug which was fixed in 5.0.3, if I'm reading the PHP5 changelog right. Hell look at the changelog of the most recent versions of PHP5 and PHP4. 30 bugs fixed in 4.3.10 and over 60 in 5.0.3. Not what I'd call a production package. Interestingly 5.0.1 and 5.0.2 show only about 30 bugs fixed a piece. To me that indicates that people are just starting to really use PHP5.
I want to temper this by saying I've got 8 years of ISP admin exp. So when I see a new package called courier-authlib and a new major version of courier-imap I think, "there's an update I'm not doing untill I see what people break." I think that because I had zone files refuse to load when we went from Bind 4 to Bind 8. Because v.90 RAS firmware more often than not didn't work with x2 or 56k modems. Because SP2 broke DUN in NT 4.0. Because touching MIME-Tools without rebuilding spamassassin will eat your mail. Because I upgraded daily when IOS 12.0.x was released trying to get a version that supported the hardware I had and features I needed that was capable of running a day before crashing. Because I went through 4 different brands of load balancers that were all incapable of pushing the traffic we needed with in 6 months. Because Postgres 7.2 and anything later are practically two separate programs. In summary I expect things to be broken, take steps to find the ways in which they are broken, and usually manage to avoid breaking things that customers notice... not that I haven't learned stuff the hard way. :-)
That's just my take on it, but I'm running Apache 1.3, Mysql 4.0 in testing and Mysql 3x in production, Postfix 2.0.x and Courier 3.x is still running the mail people pay for, mod_php4, and mod_perl1. Is that fairly conservative? Yes. Have I had customer noticable downtime in the past year? No.
YMMV.
kashani
