Some Useful Information on Ports - Yu-Shun Wang (Aug 8, 2005) ------------------------------------------------------------- Whenever we need a software or application, the first thing we do is to check the FreeBSD port tree to see if it's already in port. Chances are, if it's useful/popular/common/important, it'll be there. There are currently more than 13K ports in the tree, i.e., 13K apps/libs/pkgs. The good thing about ports is that if you install from the port tree, the dependency will be taken care of, and it'll make sure the correct library paths, header files, etc. are set properly. And you can easily upgrade them later with portupgrade. It will even tell you when a port you want to install is either already installed or not or whether it conflicts with some other ports already installed. A couple of resources: >> man pages: o ports(7) has the intro, corresponding make targets, and other useful bits regarding the port system. One important thing is how to search the port tree in command line. (Quick note: "cd /usr/ports && make search name=PATTERN", or key=PATTERN) o portupgrade(1) is the man page of the portupgrade util. It will do the source upgrade of any ports in the port tree and update all the dependency info for upstream and downstream requirements. It's not part of the base system, but we install them by default on all our machines. >> web pages: On the freebsd.org site, a couple of useful docs regarding ports: In the "FreeBSD Handbook" - http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports.html This covers the intros on how to _use_ ports. - http://www.freshports.org has an easier interface of searching the port tree for apps you need. And it tracks the changes better. Some caveats: 1. FreeBSD ports are usually up-to-date, but not always. The delay could range from a couple of days to months, depending on how crucial the ports are. It's mostly fine, unless you really need the newest, just-releasd-yesterday versions of something. 2. Not everything is in ports. E.g., some CPAN Perl modules are not included. It's possible you will need something that isn't in the port tree. It's not difficult to write a simple port skeleton to "port" it, though.