Nov 17 2008

FreeBSD Ports Review

It’s time to use the awesome marketing power of my blog to plug one of my other web sites: FreeBSD Ports Review.  This is an idea I came up with over a year ago, but it’s been percolating around in my head for a while, and I finally decided how I wanted to do it.  But first, some technical background that 99% of my readers won’t care about:

My operating system (OS) of choice is FreeBSD.  For those who have heard of Linux, FreeBSD is another Unix-like OS, but with a more structured development process and design than Linux.  (Or to put it another way, Linux is like FreeBSD for hippies.  Which is funny, since the B in BSD stands for Berkeley, the center of the hippie universe.  But I digress.)  FreeBSD is particularly excellent for servers, but I run it on my desktop workstation, and the only thing I’m missing is Flash 9 capability, which is probably just as well.

One of the best features of FreeBSD is its ports tree.  A ‘port’ is simply a few small files that automate the process of getting and installing a particular program.  There are currently over 19,000 ports in the FreeBSD ports tree, arranged in a simple two-level directory.  For example, there is a ‘games’ directory, and in that you’ll find about a thousand games.  You can simply go into a port’s directory and type “make install,” and that program will be built to match your system, installed, and made ready to use.  Just “cd games/xlogical; make install” and in a few minutes you can be playing XLogical (a solid clone of a great old C64 game) without any need to go track down the game, download it, run some installer wizard, figure out what other programs you need to install first, or any of that mess.  Any dependencies are handled automatically, and the entire thing is slick as can be.

The good news is there are 19,000 ports, ready to be installed as easy as you please.  The down side is….there are 19,000 ports.  If you know what program you want to install—no problem.  But if you don’t already have a program in mind, it can be hard to find what you need.  Anyone willing to learn the ports system can submit a port (I created games/xlogical, thank you very much) so there can be some pretty obscure stuff in there.  If you just want to install a game, how do you figure out which of the 1000+ games would be most fun?  If you need to install an MySQL database, which of the six versions in the ports tree works best on FreeBSD?

FreeBSD Ports Review was created to solve this problem.  It provides a searchable database of all the ports, but there are lots of sites that already do that.  What’s new here is that it lets people write reviews.  Soon it will also collect ratings, probably on a five-star system.  With time, I hope it will collect enough reviews and ratings that FreeBSD users can quickly see which ports are recommended by their fellow users, and read about the experiences others have had with them.

Even more technical jargon:  I created this site with HTML::Mason, an extremely cool perl module that works with mod_perl to allow you to embed perl code in your web pages, but in much more powerful ways than PHP scripting, and with none of the evil you get with PHP.  I’ve wanted to do something in Mason for a long time, but never got around to it.  There are turnkey programs for so many things nowadays that it rarely makes sense to write your own for anything; but in this case, I wanted to interface directly to the ports tree, and none of the usual content management systems would have done that easily.  It came together very quickly in Mason, considering I was learning how to use it as I wrote the program.  It looks like it’s going to be very easy to extend it to add more features.

I plan to add a ‘featured port’ section, a 5-star rating system like I mentioned, and other new features.  I’ll also be improving the style, adding a real logo and things like that, as quickly as I can squeeze that much artistry out of my brain.  Please comment if you think of anything else it should do, or should do better.

If you enjoyed this article, why not rate it and share it with your friends on Twitter, Facebook, or StumbleUpon?

GD Star Rating

WordPress Themes