CVSup — обновление портов FreeBSD


Все время забываю команду "# cvsup -g -L 2 /путь/к/sup_файлу". А служит она для обновления дерева портов во FreeBSD.

Порты во FreeBSD — это коллекция переносимых приложений, я бы сказал, что это сборник ссылок на всевозможные программы для FreeBSD, позволяющий устанавливать их "одним кликом", ну на самом деле парой команд. К тому же эти программы перед внесеним в список проходят проверку, так что проблем с установкой практически не бывает.

Поскольку все в мире течет и все меняется то и коллекция портов периодически требует обновления. Ведь разработчики не стоят на месте и периодически вносят какие-либо изменения в то или иное программное обеспечение. Для поддержания дерева портов в актуальном состоянии во FreeBSD используется утилита cvsup. Посредством CVSup можно обновлять не только порты. Ее используют также для обновления исходных кодов операционной системы в каталоге /usr/src и документации в каталоге /usr/share/doc.


Ищем CVSup в портах:
# cd /usr/ports/
# make search name=”cvsup”

GUI version нам не подходит. Ну, если только Вы настраиваете себе десктоп систему, тогда можно и GUI. Для сервера нам понадобится cvsup-without-gui
# cd /usr/ports/net/cvsup-without-gui
# make install clean

После того, как cvsup установлен, необходимо создать так называемые sup файлы, в которых будут описаны инструкции: что обновлять, откуда и какую версию использовать. Для примера можно использовать файлы в каталоге /usr/share/examples/cvsup

Сделаем по примерам sup файлы для получения обновлений портов, документации и исходных кодов системы, а после поместим в каталог, например, /cvsup
Supfile для обновления портов:
# cat /cvsup/ports-all

# Ports collection supfile
*default host=cvsup3.ua.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress ports-all
Supfile для обновления документации:
# cat /cvsup/doc-all

# Doc supfile
*default host=cvsup2.ua.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress doc-all
Supfile для обновления исходных кодов ядра:
# cat /cvsup/src-sys

# Kernel source supfile
*default host=cvsup3.ua.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_6
*default delete use-rel-suffix
*default compress src-sys
Supfile для обновления исходных кодов всей системы:
# cat /cvsup/src-all

# System source supfile
*default host=cvsup3.ua.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7_0_0_RELEASE
*default delete use-rel-suffix
*default compress src-all

Запуск команды выглядит следущим образом:
# cvsup -g -L 2 /путь/к/sup_файлу

В принципе, обновлять регулярно мне нужно только коллекцию портов. Обновлять исходные коды ядра можно перед его очередной пересборкой, если появилась такая необходимость. Ну, а исходные коды всей системы я последний раз обновлял тогда когда переходил с версии FreeBSD 6.1 на FreeBSD 6.2.

Для обновления коллекции портов регулярно, в /etc/crontab нужно добавить строчку:
00 03 * * * root cvsup -g -L 2 /cvsup/ports-all >/dev/null 2>&1

Таким образом, по cron’у раз в сутки в 3 часа утра обновляются порты.

А для обновления документации раз в неделю:
30 03 * * 6 root cvsup -g -L 2 /cvsup/doc-all >/dev/null 2>&1

но понаблюдав пару раз за "обновлениями" пришел к выводу, что в этом нет особой необходимости. Документация обновляется не так часто, как этого хотелось бы. По крайней мере, русская KOI8-R.

Хорошее описание утилиты на официальном сайте: http://www.freebsd.org/

Русские зеркала CVSup:
cvsup.ru.FreeBSD.org
cvsup2.ru.FreeBSD.org
cvsup3.ru.FreeBSD.org
cvsup4.ru.FreeBSD.org
cvsup5.ru.FreeBSD.org
cvsup6.ru.FreeBSD.org
cvsup7.ru.FreeBSD.org

По материалам: http://live.daemony.org/

http://www.brimz.ru/cvsup-obnovlenie-portov-freebsd.html#more-168

Обновлено: 12.03.2015