Как часто мы обновляем порты? Раз в день, неделю? Я их обновляю как минимум раз в неделю. И уже давно стал замечать, что на это уходит достаточно много времени. Пока войдешь в систему, пока обновишь порты, пока обновишь софт… Очень долго. Тут я опишу два метода, которые позволят ускорить процесс.
Метод 1. Метод упрощения.
Данный метод позволяет обновлять порты, находясь в папке /usr/ports, командой
# make update
Для этого надо отредактировать файл /etc/make.conf:
...
SUP_UPDATE=
SUP=/usr/bin/scup
SUPFLAGS=-g -L 2
SUPHOST=cvsup2.ru.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile
...
Метод 2. Метод частичной автоматизации.
Для этого метода надо создать скрипты и добавить их выполнение в крон. В принципе, все тут должно быть понятно. Приведу пример скрипта, который обновляет порты и выводит список софта, который надо обновить, в файл.
Создаем файл /var/scripts/portsupdate.sh:
#!/bin/sh
rm /var/logs/portsupdate.log
cd /usr/ports
make update >> /var/log/portsupdate.log
make fetchindex
pkg_version -v -l '<' >> /home/av3nger/needs_updating
Тут мы сначала удаляем старые логи, потом обновляем порты, потом записываем названия программ, которые надо обновить в файл needs_updating, который находится в моей домашней папке.
Далее, надо сделать:
# chmod 755 /var/scripts/portsupdate.sh
И добавить скрипт в cron:
5 0 * * * /var/scripts/portsupdate.sh
Это означает, что скрипт будет исполняться каждый день в 00:05. Для меня это удобно, т.к. каждое утро перед работой я могу быстро проверить, что надо обновить на домашнем серваке.
Забыл сказать, что для второго метода необходимо добавить строчки в make.conf из первого метода. Или модифицировать скрипт таким образом, чтобы он обновлял порты через файл ports-supfile.
Если пойти еще дальше, то таким же образом можно настроить обновление мира раз в месяц, например. Я, правда, так делать не стал. Но раз в месяц я, все же, скачиваю обновленную версию исходников.