≡ Menu

OpenBSD Install Ports Tree Collection

I have installed OpenBSD operating system but ports collection is missing at /usr/ports directory. How do I install ports from ftp / http site under OpenBSD?

Port collection is essential for OpenBSD server or desktop/laptop based system. You can use the OpenBSD Ports Collection to create binary packages for third party applications.

Method # 1: Install ports from OpenBSD CDROM

If you have OpenBSD CDROM type the following command to copy out the contents of the ports tree to /usr/ports; you would mount the CD-ROM with ports on it on /cdrom and issue a command like follows:
# mount /cdrom
# cd /usr
# tar zxf /cdrom/ports.tar.gz

Method # 2: Install OpenBSD ports from FTP / HTTP mirror site

Use wget command (not installed by default on OpenBSD) or ftp command client and grab ports.tar.gz, enter:
$ cd ## go to home dir ##
$ wget http://ftp.usa.openbsd.org/pub/OpenBSD/$(uname -r)/ports.tar.gz
$ wget http://ftp.usa.openbsd.org/pub/OpenBSD/$(uname -r)/SHA256.sig

OR use the ftp command:
$ cd ## go to home dir ##
$ ftp http://ftp.usa.openbsd.org/pub/OpenBSD/$(uname -r)/ports.tar.gz
$ ftp http://ftp.usa.openbsd.org/pub/OpenBSD/$(uname -r)/SHA256.sig

OR use OpenBSD mirror from here:
$ cd ## go to home dir ##
$ ftp ftp://mirror.planetunix.net/pub/OpenBSD/$(uname -r)/ports.tar.gz
$ ftp ftp://mirror.planetunix.net/pub/OpenBSD/$(uname -r)/SHA256.sig

Sample output:

--11:44:39--  ftp://ftp.openbsd.org/pub/OpenBSD/6.0/ports.tar.gz
           => `ports.tar.gz'
Resolving ftp.openbsd.org...
Connecting to ftp.openbsd.org||:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD /pub/OpenBSD/6.0 ... done.
==> PASV ... done.    ==> RETR ports.tar.gz ... done.
Length: 11,184,931 (11M) (unauthoritative)
100%[=================================================================================================================>] 11,184,931   236.83K/s    ETA 00:00
11:45:29 (230.09 KB/s) - `ports.tar.gz' saved [11184931]

Extract ports tree on a OpenBSD

Verify ports.tar.gz file with signify command, enter:
## match your openbsd version here (openbsd-60-base.pub) ##
$ signify -C -p /etc/signify/openbsd-60-base.pub -x SHA256.sig ports.tar.gz

Sample outputs:

Signature Verified
ports.tar.gz: OK

To extract ports.tar.gz use the tar command as root user:
# tar -zxvf ports.tar.gz
Sample outputs:


Once extracted, you can delete ports.tar.gz file using rm command as follows:
$ rm ports.tar.gz SHA256.sig

How do I use ports on a OpenBSD?

To use ports, cd into /usr/ports/ directory:
$ cd /usr/ports
$ ls

Sample outputs:

.cvsignore      biology         emulators       lang            productivity
CVS             books           fonts           mail            security
INDEX           cad             games           math            shells
Makefile        chinese         geo             meta            sysutils
README          comms           graphics        misc            telephony
archivers       converters      infrastructure  multimedia      tests
astro           databases       inputmethods    net             textproc
audio           devel           japanese        news            www
base            editors         java            plan9           x11
benchmarks      education       korean          print

To install bash shell from ports (or configure user with proper file permissions as described in the official docs), type:
# cd /usr/ports/shells/bash
# make install clean all

How do I search the ports tree?

Use the following syntax:
$ cd /usr/ports
$ make search key={KEY-WORD-HERE}

To search for php-gd package, enter:
$ make search key=php-gd
Sample outputs:

Port:   php-gd-5.5.37p0
Path:   lang/php/5.5,-gd
Info:   image manipulation extensions for php5
Maint:  Robert Nagy <robert@openbsd.org>
Index:  lang www
L-deps: devel/t1lib graphics/jpeg graphics/png
B-deps: archivers/bzip2 devel/autoconf/2.69 devel/metaauto www/apache-httpd
R-deps: php-5.5.37:lang/php/5.5
Archs:  any
Port:   php-gd-5.6.23p0
Path:   lang/php/5.6,-gd
Info:   image manipulation extensions for php5
Maint:  Robert Nagy <robert@openbsd.org>
Index:  lang www
L-deps: devel/t1lib graphics/jpeg graphics/png
B-deps: archivers/bzip2 devel/autoconf/2.69 devel/metaauto www/apache-httpd
R-deps: php-5.6.23:lang/php/5.6
Archs:  any
Port:   php-gd-7.0.8p0
Path:   lang/php/7.0,-gd
Info:   image manipulation extensions for php5
Maint:  Robert Nagy <robert@openbsd.org>
Index:  lang www
L-deps: graphics/jpeg graphics/png
B-deps: archivers/bzip2 devel/autoconf/2.69 devel/bison devel/metaauto www/apache-httpd
R-deps: php-7.0.8:lang/php/7.0
Archs:  any

You can install php-gd-7.0.8p0 using the following command:
# pkg_add php-gd-7.0.8p0
# cd /usr/ports/lang/php/7.0/
# make install clean

Share this tutorial on:
{ 5 comments… add one }
  • Knight August 22, 2009, 4:21 pm

    Thank you very much for this. I had trouble getting OpenBSD kicking with a GUI but with ports it is a snap. I used “ftp” however, instead of wget, as 4.5 did not come with wget by default. Cheers.

  • kenpem September 2, 2009, 8:37 am

    I wish your page had ranked higher in my search results! Just wasted hours on other obscure things. This tells me exactly what I needed to know. Thanks.

  • purpleoptic August 8, 2010, 6:04 pm

    you will need to install wget first before you try this in OpenBSD 4.7

  • Doug December 27, 2010, 11:51 pm

    and as I just discovered, you can install wget on OpenBSD by doing this:

    1. ftp http://ftp.openbsd.org/OpenBSD/x.y/ports.tar.gz for your release version x.y
    2. cd /usr
    3. tar xvfz /path/to/ports.tar.gz
    4. cd /usr/ports/net/wget
    5. make

    If a non-noob can recommend a more glitzy way to do this, please follow up. Thanks.

  • wmoreno3 November 5, 2015, 10:23 pm

    “# cd /usr/ports/shell/bash
    # make install clean all”

    Must be:

    # cd /usr/ports/shells/bash
    # make install clean all

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">

   Tagged with: , , , , , , , , , , , , ,