Ports, searching
I know what I want but I don't know what it's called
Fear not: the ports tree is searchable for relevant stuff without having to resort to find, grep or going through each section in the most mind-numbing way possible.
samizdata# make search key=browser | more
... will search for any ports that have anything to do with the key word "browser", or
I know what it's called but I don't know where it is
samizdata# make search name=lynx | more
will search for any packages by the name you supply, send the output to your screen and pipe it to the more command.
Updating the search index manually
This step isn't usually necessary, because part of the ports-base collection which you will usually be cvsup-ing on a regular basis is the INDEX-5 file itself, pregenerated for you by the nice folks who maintain the master tree. It's also not really recommended where unnecessary, because it can take quite a lot of time to run, especially when using older/slower disks. But if you suspect your index got corrupted, or if you're running some sort of odd non-standard ports tree (for example you don't maintain local copies of several branches of the tree, etc) you can follow this procedure to generate your own search index.
First, go into /usr/ports as root and make the search index -- making the index can take a while, so go get some coffee or something. Do all of this after you Update_the_ports_tree.)
dave@samizdata% su - password: samizdata# cd /usr/ports samizdata# make index &
which will make the index so that you can search the ports tree, and run it in the background so that you can do other things. After that finishes, you can search for programs by keyword(s) or by name using your locally-generated index.