Рано или поздно каждому админу, который развивается в этом качестве, надоедает обновлять порты вручную. Такое случилось и со мной.
Наиболее популярны (у меня на слуху) для этой задачи две утилиты: portupgrade и portmaster. Поскольку portupgrade тянет за собой lang/ruby18 и databases/ruby-bdb, а ставить их на сервер ради одной программы не хотелось, остановился на portmaster.
В /usr/local/etc/portmaster.rc поставил
# Always save the backup packages of the old port (-b)
BACKUP=bopt
#
# Make and save a package of the new port (-g)
MAKE_PACKAGE=gopt
№
# Log actions taken by portmaster with a date/time stamp
PM_LOG=/var/log/portmaster.log
Запускаю
$ portmaster -r isc-dhcp41-server-4.1.2_2,1
Порт обновился до isc-dhcp41-server-4.1.e,2. Но вопрос в другом - а где мои package, старый и новый? В /usr/ports/distfiles только dhcp-4.1-ESV-R2.tar.gz и dhcp-4.1.2-P1.tar.gz и это исходники.
Ещё обновлял PHP. В зависимостях был Perl. Поскольку Perl собирать из исходников не хотел, создал файл /var/db/pkg/perl*/+IGNOREME. Portmaster задолбал спрашивать подтверждение, что perl игнорируем, но, как написано в man'е, с этим ничего не поделаешь.
А в целом - доволен тем, что освоил новый инструмент. Думаю, его использование позволит сэкономить время.