Portsnap - рекомендуемый метод обновления исходных текстов дерева портов. Тем более, что с 28 февраля 2013 года поддержка cvs прекращена.
Для начала начала ознакомимся с тем, как работает portsnap. Стоит отметить, что portsnap, не работает напрямую с основным деревом портов, которое расположено в /usr/ports, а использует рабочий каталог (по-умолчанию /var/db/portsnap), куда скачивается сжатая копия (snapshot) дерева портов, а оттуда уже обновляется основное дерево портов. Конфигурационный файл - /etc/portsnap.conf, который можно не трогать, однако если надумаете внести какие-то изменения, то все довольно хорошо прокомментировано.
Утилита portsnap имеет в своем распоряжении несколько команд:
Итак, если у нас уже есть загруженное дерево портов, удалим директорию /usr/ports, поскольку возможно возникновение ошибок, если ранее пользовались другими способами обновления:
# rm -R /usr/ports |
При первом запуске утилиты portsnap необходимо использовать такую последовательность команд (возможно довольно долгое выполнение процедуры, поскольку утилита копирует архив всей системы портов; в дальнейшем же, будут загружаться только обновления):
# portsnap fetch # portsnap extract |
Для всех дальнейших запусков:
# portsnap fetch # portsnap update |
По завершению обновления, индексация портов будет выполнена автоматически.
Для автоматизации процесса обновления существует специальная команда portsnap cron, о которой упоминалось выше. Имейте ввиду, что portsnap fetch, запущенный из cron'а работать не будет. И это не случайность. Сделано это специально, чтобы снизить количество одновременно подключающихся пользователей к серверу обновлений, поскольку portsnap cron, после запуска, до загрузки чего-либо, отсчитывает произвольный интервал времени от 1 до 3600 секунд.
# echo '# Ports update' >> /etc/crontab # echo '22 2 * * * root /usr/sbin/portsnap cron > /dev/null 2>&1' >> /etc/crontab |
Также, настоятельно не рекомендуется прописывать в cron команду portsnap update, поскольку может получится неприятная ситуация, например, если вы компилируете какую-то программу а cron запустит в этот момент обновление портов, что приведет к конфликту. Однако, не забывайте, что в данном варианте не обновляется дерево портов. Для обновления самих портов нужно вручную выполнить команду portsnap update, из командной строки.
Однако, лично мое мнение - все же стоит поставить update в промежутке времени между 4 и 5 часами утра. Даже если работаю допозна, то в это время, обычно, уже сплю. Иначе, что это за автоматизация, если некоторые команды все же время от времени необходимо вводить с консоли!
# echo '12 4 * * * root /usr/sbin/portsnap update > /dev/null 2>&1' >> /etc/crontab |
Последние комментарии
21 неделя 6 дней назад
46 недель 20 часов назад
2 года 46 недель назад
3 года 16 недель назад
3 года 39 недель назад
4 года 2 недели назад
4 года 3 недели назад
4 года 6 недель назад
4 года 18 недель назад
4 года 22 недели назад