I personally don't care for the PBI concept mostly because it's not updated often enough and the selection obviously pales in comparison to the 30,000+ ports available. I'm also concerned that if I ever update the packages/ports some PBIs may break since some are not entirely self-contained I believe, and depend on installed packages. But PCBSD is still great as it installs and configures a lot of stuff that would take weeks to get right the old way.
Using the port system isn't all that daunting if you know a few tricks.
Here are five great articles that explain how to manage the ports:
Interesting New Ports
Cleaning and Customizing Ports
Browsing Through The Ports Collection
You can find more great articles like this here
Pity the DesktopBSD tools port is marked 'broken' and won't compile properly as those tools are quite useful for managing packages and ports (used as the basis for PCBSD's competitor, Desktop BSD). Also the various GUI package/port managers like Kports lack the power of most of these tools, especially portupgrade and some are quite buggy.
In addition the following bit of advice is useful. (Be aware though of strange disconnects between what Freshports is saying is current and what is actually on the FreeBSD server - I got bit that way recently trying to install Firefox 220.127.116.11 as a package and ended up with the 3.02 devel version which curiously was marked "ignore" in Freshports.)
Some FreeBSD pkg_add Magic (from Dru Lavigne's BSD Blog
In a recent comment a reader asked how he could install xorg 7.2 instead of xorg 6.9 on his FreeBSD 6.2 system. Normally pkg_add would do this, but xorg was updated to 7.2 after the release of FreeBSD 6.2, so the default behaviour is to install the version of xorg (6.9) which matches the release of the operating system. The answer is easy, but a bit of background information is useful.
If you go to this section of the FreeBSD ftp site, you'll see that there are several subdirectories containing packages for different branches of the operating system:
Note that there is a difference between packages-6-stable (which contains the latest packages for the 6 branch) and packages-6.2-release (which contains the packages released with that version of the operating system).
You can also see which ftp directory your FreeBSD system is currently using by reading the error received when you try to install a bogus package:
# pkg_add -r abc
Error: FTP Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports ... st/abc.tbz
: File unavailable (e.g., file not found, no access)
pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-release/Latest/abc.tbz' by URL
In this case, the system is using packages-6-release/Latest which contains the 6.9 version of xorg instead of packages-6-stable which contains the latest or 7.2 version of xorg. Take a peek in both directories on the ftp site, you'll see for yourself.
You can ask pkg_add to go to a different location by modifying the PACKAGESITE environmental variable by typing this as one line:
setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports ... le/Latest/
Don't forget the trailing slash at the end and make sure you choose a directory meant for your operating system's branch. For example, you don't want current which is the unstable testing version of 7.0 anymore than you want the 4.x version of packages on a 6.x system. Typing that setenv command at the command line will only work for that one session; if you wish to change permanently, add that line to the setenv section of /root/.cshrc .
This trick is also handy if you want to change to a faster, geographically closer mirror or if you have your own repository of packages on another system in your network.