FreeBSD has arrived
4

FreeBSD has arrived

The server is back up and running, now under FreeBSD 6.2. First things first, I had forgotten how slow compiling packages is. And I’d forgotten about fun with dependencies. Getting the latest and greatest ports collection with portsnap was easy enough.

The first port I installed was vim and its installation led to a cascade of dozens of other packages that had to be installed first. Did you know that vim depends on the presence of Perl? Then of course it wanted to install GTK+ and that meant X11R6. Then it tried to install a package that has a known vulnerability, so it stopped the presses. (Yes, portaudit is really cool.) I found out that I hadn’t downloaded the latest and greatest index of ports yet, and that there’s a vim-lite package that leaves out all the X windows that’s not really needed when you just want to run vim in a shell.

I was also thrown briefly by the fact that FreeBSD doesn’t even have bash installed out of the box. The default shell under FreeBSD is csh, which is just awful. Fortunately that problem is easy to rectify.

Once I got my shell sorted out, my favorite editor installed, and a user created for myself, I installed the latest and greatest Postfix, Apache, PHP, MySQL, and so on. Installing ports is easy, as is rebuilding and reinstalling them, as I learned with Apache. I rebuilt Apache at least ten times, mainly trying to get suexec to work. I use suexec to enable Movable Type to write files to my Web directory without my having to make the whole thing world writable.

I had some minor mishaps with email. I never mess with my mail configuration, so every time I do anything to it I have to learn everything all over again. I forgot to install procmail, so Postfix couldn’t deliver email to the inboxes on the server. I copied the mail configuration from Fedora Core 4 and had to change up a bunch of stuff to get it to work. Eventually I did get mail working, but it was a chore.

Overall I’m quite happy with FreeBSD so far. I’m running PHP 5 and MySQL 5, two packages I couldn’t even get for Fedora Core 4. I’ve installed all of the Perl modules I’m using by way of the ports collection rather than the wretched CPAN interface. Movable Type seems more brisk than it ever did before, though I have no idea what would have made the difference there. I did have one problem with an old version of the PHP port of Markdown not working with PHP 5, but upgrading to the latest version took care of that.

I’m pretty excited to be running an operating system where I can play with the latest toys and still live within the confines of the operating system’s packaging system. Whether that leads to new, interesting features here remains to be seen.

4 thoughts on “FreeBSD has arrived

  1. You can set WITHOUT_X11 in /etc/make.conf to build a terminal only vim that won’t bring in GTK and X11 as dependencies.

    Another thing that’s really helped me on FreeBSD is portupgrade(1). I typically update ports using:

    portupgrade -rR -pb name ...

    This updates dependencies and keeps binary package backups under /usr/ports/packages/All. The portinstall command also takes the p and b arguments.

  2. I do not intend this as advocacy.

    The X11 thing is one of the nicer things about Gentoo’s portage system(/ripoff). Set in the use flags that you don’t want X11, and you don’t get it.

    It’s not unique to source-code UNIXes, either; I remember having trouble with Redhat with trying to install emacs without installing X, and I seem to recall it’s not really possible in Debian either, or at least wasn’t a while ago. (It might be fair to say it’s even worse in precompiled UNIXes since there’s almost no way at all to have a USE-flag-type feature, short of a parallel distro.)

  3. Jeremy, FWIW, most Linux distributions seem to have a ‘emacs-nox’ package — but knowing that that’s the magic incantation to avoid pulling in an X server as a dep is one of those “learn by doing” sorts of things…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>