OpenBSD Ports and Packages
The OpenBSD ports system began as a fork of the FreeBSD ports tree, and is very similar. The biggest difference between the two is one of attitude. On OpenBSD, compiling from source is considered a last resort. An OpenBSD system is expected to work out-of-the-box, so the procedure for installing ports is slightly different. On FreeBSD, a package is built by installing the port, creating the package from the installed files, and then uninstalling the port. On OpenBSD, a port is installed by building the package and then installing it.
Until recently, OpenBSD package management has been a weak point of the project, with many users recommending NetBSD’s pkgsrc over the native OpenBSD packages. The standard upgrade instructions for OpenBSD began with uninstalling all packages and ended with reinstalling the ones you were using. Beginning with 3.8, however, the OpenBSD pkg_add tool supported upgrading packages. While this new version was undergoing testing, the tool would only provide a command to run, which would fetch the new packages and perform the upgrade, making upgrading a two-step process. The next release, 3.9, is expected to have working upgrade functionality.