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 some of the ``ports'' source file releases. NOTE: Some important packages which are not permitted on the CD (due to patents) are available on our FTP servers. In particular, we provide the USA and international versions of both SSH and PGP. The filenames are: ssh-usa-1.2.27.tgz ssh-intl-1.2.27.tgz pgp-usa-2.6.3.tgz pgp-intl-2.6.3.tgz You are STRONGLY urged to install one of the above ssh packages and use ssh instead of telnet, rlogin, or rsh. See below for instructions on installing packages using ftp. 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 several applications pre-built for various hardware architectures. The number of applications vary according to available disk space. Check the directory OSREV/packages/MACHINE to see which packages are available for your hardware architecture. That directory will be on the same CD-ROM containing the OS installation files for your architecture. To install one or more of these packages you must 1) become the superuser (root) 2) mount the appropriage CD-ROM 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/OSREV/packages/MACHINE/ # # umount /cdrom Package names are usually the application name and version with .tgz appended, e.g. emacs-20.3.tgz Installing applications from the ftp.openbsd.org package collection: All available packages for your architecture have been placed on ftp.openbsd.org in the directory pub/OpenBSD/OSREV/packages/MACHINE/ You may want to peruse this 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.3.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.26.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-:} (at least): ImageMagick-4.2.0.tgz m4-1.4.tgz Xaw3d-1.3.tgz mm-2.7.tgz aalib-1.2.tgz mpeg_lib-1.2.1.tgz afm-1.0.tgz mpeg_play-2.4.tgz autoconf-2.13.tgz netpbm-19940301.tgz bash-2.03.tgz netpipes-4.1.1-export.tgz bison-1.25.tgz nmh-1.0.tgz bzip2-0.9.0c.tgz pgp-2.6.3-intl.tgz compface-1.0.tgz pgp-2.6.3-usa.tgz cucipop-1.31.tgz pine-4.10.tgz dejagnu-1.3.tgz png-1.0.3.tgz egcs-1.1.2.tgz psutils-1.17-a4.tgz emacs-20.3.tgz psutils-1.17-letter.tgz enscript-1.6.1.tgz screen-3.7.6.tgz ethereal-0.5.1.tgz sharutils-4.2.tgz expect-5.28.tgz sniffit-0.3.5.tgz fetchmail-4.7.9.tgz ssh-1.2.27-intl.tgz freetype-1.2.tgz ssh-1.2.27-usa.tgz gettext-0.10.35.tgz tar-1.12.tgz ghostscript-5.10.tgz tcl-8.0.5.tgz gimp-1.1.4.tgz tcsh-6.08.00.tgz glib-1.2.1.tgz teTeX-0.4.tgz glimpse-4.1.tgz tiff-3.4.tgz gmake-3.77.tgz tk-8.0.5.tgz gnuplot-3.7.tgz transfig-3.2.1.tgz gtk+-1.2.1.tgz unzip-5.40.tgz gv-3.5.8.tgz viewfax-2.3.tgz id-utils-3.2.tgz wget-1.5.3.tgz idled-1.16.tgz xcolors-1.3.tgz iozone-2.01.tgz xfig-3.2.2.tgz ircii-2.8.2-epic3.004.tgz xntp3-5.93e-export.tgz ispell-3.1.20.tgz xpaint-2.5.5.tgz jove-4.16.tgz xpdf-0.80.tgz jpeg-6b.tgz xphoon-91.9.18.tgz lesstif-0.88.0.tgz xspread-2.1.tgz libslang-1.2.2.tgz xv-3.10a.tgz Note: these packages may not exist for all architectures; other packages may be added. Some packages are only available via ftp. 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.