Tutorial details | |
---|---|
Difficulty | Easy (rss) |
Root privileges | Yes |
Requirements | OpenBSD |
Time | 5m |
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... 129.128.5.191 Connecting to ftp.openbsd.org|129.128.5.191|: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 -C /usr/
Sample outputs:
ports ports/CVS ports/CVS/Repository ports/CVS/Entries ports/.cvsignore ports/INDEX ports/Makefile ports/README ports/archivers ports/archivers/CVS ports/archivers/CVS/Repository ports/archivers/CVS/Entries .... .. ... ports/x11/yeahlaunch/pkg ports/x11/yeahlaunch/pkg/CVS ports/x11/yeahlaunch/pkg/CVS/Repository ports/x11/yeahlaunch/pkg/CVS/Entries ports/x11/yeahlaunch/pkg/DESCR ports/x11/yeahlaunch/pkg/PLIST
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
OR
# cd /usr/ports/lang/php/7.0/
# make install clean
References
- See the OpenBSD ports system for more info.
- Man pages – pkg_add(1),ftp(1),signify(1)
🐧 5 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
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.
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.
you will need to install wget first before you try this in OpenBSD 4.7
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.
“# cd /usr/ports/shell/bash
# make install clean all”
Must be:
# cd /usr/ports/shells/bash
# make install clean all