As complete as your OpenBSD system is, you may want to add any of several excellent third party software applications. There are several ways to do this. You can: 1) Obtain the source code and build the application based upon whatever installation procedures are provided with the application. 2) Use the OpenBSD ``ports'' collection to automatically get any needed source file, apply any required patches, create the application, and install it for you. 3) Use the OpenBSD ``package'' collection to grab a pre-compiled and tested version of the application for your hardware. If you purchased the OpenBSD CD-ROM you already have several popular ``packages'', the ``ports'' collection, and most of the ``ports'' source file releases. Instructions for installing applications from the various sources using the different installation methods follow. If emacs is to be installed it should be installed first as it creates the ``info'' directory file that may be modified by other applications. Installing applications from the CD-ROM package collection: The OpenBSD CD-ROM ships with applications pre-built for various hardware architectures. The applications and supported architectures are: i386 sparc amiga m68k alpha mips bash-2.01.1 yes yes yes yes yes yes emacs-20.2 yes yes yes yes yes no ghostscript-5.10 yes no no no no no gmake-3.76.1 yes yes yes yes yes yes id-utils-3.2 no yes yes yes yes no ircii-2.8.2-epic3.004 yes yes yes yes yes yes pine-3.96 yes yes yes yes yes yes screen-3.7.4 yes yes no yes yes yes tcsh-6.07.02 yes yes yes yes yes yes unzip-5.3.1 yes yes no yes yes no Note: If space becomes available other packages may be added to the CD-ROM. Check the packages directory on CD-ROM number 2 to see what packages are actually available for your hardware architecture. (the amiga is treated specially due to its 8k hardware pagesize aka NBPG, it's very well possible amiga will run the other m68k arch's binaries, but we make no guarantees at this point, better safe than sorry). To install one or more of these packages you must 1) become the superuser (root) 2) mount CD-ROM number 2 3) use the ``pkg_add'' command to install the software Example (in which we use su(1) to get superuser privileges, thus you have to be in group "wheel", see the manual page for su(1)). $ su Password: # mkdir -p /cdrom # mount /dev/cd0a /cdrom # pkg_add /cdrom/packages// # # umount /cdrom Your hardware architecture can be determined by issuing the command ``arch''. The response will be something like ``OpenBSD.sparc''. ``sparc'' is the architecture. Package names are usually the application name and version with .tgz appended, e.g. pine-3.96.tgz Installing applications from the ftp.openbsd.org package collection: The above packages, and others, have been placed on ftp.openbsd.org in the directory pub/OpenBSD/OSREV/packages// where is the supported hardware architecture. You may want to peruse the directory for your architecture to see what packages are available. The packages are also on the OpenBSD FTP mirror sites. See http://www.openbsd.org/ftp.html for a list of current ftp mirror sites. Installation of a package is very easy. 1) become the superuser (root) 2) use the ``pkg_add'' command to install the software ``pkg_add'' is smart enough to know how to download the software from the OpenBSD ftp server. Example: $ su Password: {:-#-:} pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/{:--:}OSREV/packages/MACHINE/emacs-20.2.tgz Note: there are both USA and INTERNATIONAL versions of ssh and pgp on the ftp server. Be sure to grab the correct version. The USA versions, ssh-usa-1.2.22.tgz and pgp-usa-2.6.3.tgz, use RSAREF, a legal requirement for use within the United States due to patent issues. Packages available {:-include-:}: bash-2.01.1.tgz pine-3.96.tgz emacs-20.2.tgz screen-3.7.4.tgz ghostscript-5.10.tgz ssh-intl-1.2.22.tgz gmake-3.76.1.tgz ssh-usa-1.2.22.tgz ircii-2.8.2-epic3.004.tgz tcsh-6.07.02.tgz pgp-intl-2.6.3.tgz unzip-5.3.1.tgz pgp-usa-2.6.3.tgz Note: these packages may not exist for all architectures; other packages may be added. Installing applications from the CD-ROM ports collection: The CD-ROM ``ports'' collection is a set of Makefiles, patches, and other files used to control the building and installation of an application from source files. The source files come from archives which are also, for the most part, on the OpenBSD CD-ROM. Creating an application from sources can require a lot of disk space, sometimes 50 megabytes or more. The first step is to determine which of your disks has enough room. Once you've made this determination read the file README.ports on CD-ROM 2 to see how to copy or mount the ports directory. To build an application you must: 1) become the superuser (root) 2) mount CD-ROM number 2 on the directory /cdrom. This is necessary to find the application source files. 3) cd to the ports directory containing the port you wish to build. To build samba, for example, where you'd previously copied the ports files into the /usr/ports directory: cd /usr/ports/net/samba 4) make FETCH_SYMLINK_DISTFILES=YES 5) make FETCH_SYMLINK_DISTFILES=YES install 6) make FETCH_SYMLINK_DISTFILES=YES clean The FETCH_SYMLINK_DISTFILES=YES parameter tells make not to copy the application's distribution sources from the cdrom to your hard disk, but instead create a symbolic link pointing to the CD-ROM. This is done to conserve disk space. Installing applications from the OpenBSD ports collection: See http://www.openbsd.org/ports.html for current instructions on obtaining and installing OpenBSD ports. Installing other applications: If an OpenBSD package or port does not exist for an application you're pretty much on your own. The first thing to do is ask ports@openbsd.org if anyone is working on a port -- there may be one in progress. If no luck there you may try the FreeBSD ports or NetBSD package collection. If you are on an i386 based machine it is quite possible that the FreeBSD port, if one exists, will work for you. If you can't find an existing port try to make your own and feed it back to OpenBSD. That's how our ports collection grows. Some details can be found at http://www.openbsd.org/porting.html with more help coming from the mailing list, ports@openbsd.org.