CVSup - обновление портов
Порты во FreeBSD - это коллекция переносимых приложений. Порты не содержат самого ПО, однако каждый порт содержит опреденного рода инструкции по сборке пакета из “сырцов” - исходных кодов, написанных в основном на языке программирования C и С++. Более подробно про установку программного обеспечения во FreeBSD можно почитать в Руководстве.
Поскольку все в мире течет и все меняется то и коллекция портов периодически требует обновления. Ведь разработчики не стоят на месте и периодически вносят какие-либо изменения в то или иное программное обеспечение. Для поддержания дерева портов в актуальном состоянии во FreeBSD используется утилита cvsup. Посредством CVSup можно обновлять не только порты. Ее используют также для обновления исходных кодов операционной системы в каталоге /usr/src и документации в каталоге /usr/share/doc.
# cd /usr/ports/ # make search name=”cvsup” Port: cvsup-16.1h_3 Path: /usr/ports/net/cvsup Info: General network file distribution system optimized for CVS (GUI version) Maint: jdp@FreeBSD.org B-deps: compositeproto-0.4 ... WWW: http://www.cvsup.org/ Port: cvsup-mirror-1.3_6 Path: /usr/ports/net/cvsup-mirror Info: A kit for easily setting up a FreeBSD mirror site using CVSup Maint: jdp@FreeBSD.org B-deps: R-deps: cvsup-without-gui-16.1h_3 WWW: http://www.cvsup.org/ Port: cvsup-without-gui-16.1h_3 Path: /usr/ports/net/cvsup-without-gui Info: General network file distribution system optimized for CVS (non-GUI version) Maint: jdp@FreeBSD.org B-deps: ezm3-1.2_1 R-deps: WWW: http://www.cvsup.org/ Port: cvsupchk-19990209_2 Path: /usr/ports/net/cvsupchk Info: Check a CVSup directory hierarchy against the checkouts file Maint: matthias.andree@gmx.de B-deps: python25-2.5.1_1 R-deps: python25-2.5.1_1 WWW: Port: fastest_cvsup-0.2.9_5 Path: /usr/ports/sysutils/fastest_cvsup Info: Finds fastest CVSup server Maint: nivo+kw+ports.bfa274@is-root.com B-deps: perl-5.8.8_1 R-deps: perl-5.8.8_1 WWW: http://fastest-cvsup.sourceforge.net/ Port: net/cvsupit Moved: Date: 2003-08-06 Reason: port was marked broken for 3 months with no fix submitted
GUI version нам не подходит. Ну, если только Вы настраиваете себе десктоп систему, тогда можно и GUI. Для сервера нам понадобится cvsup-without-gui
# cd /usr/ports/net/cvsup-without-gui # make install clean
После того, как cvsup установлен, необходимо создать так называемые sup файлы, в которых будут описаны инструкции: что обновлять, откуда и какую версию использовать. Для примера можно использовать файлы в каталоге /usr/share/examples/cvsup
# ls -la /usr/share/examples/cvsup total 40 drwxr-xr-x 2 root wheel 512 17 янв 2007 . drwxr-xr-x 40 root wheel 1024 12 авг 2006 .. -r--r--r-- 1 root wheel 1180 17 янв 2007 README -r--r--r-- 1 root wheel 5274 17 янв 2007 cvs-supfile -r--r--r-- 1 root wheel 2773 17 янв 2007 doc-supfile -r--r--r-- 1 root wheel 2427 17 янв 2007 gnats-supfile -r--r--r-- 1 root wheel 3903 17 янв 2007 ports-supfile -r--r--r-- 1 root wheel 349 17 янв 2007 refuse -r--r--r-- 1 root wheel 1918 17 янв 2007 refuse.README -r--r--r-- 1 root wheel 4013 17 янв 2007 stable-supfile -r--r--r-- 1 root wheel 3174 17 янв 2007 standard-supfile -r--r--r-- 1 root wheel 2498 17 янв 2007 www-supfile
Сделаем по примерам 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.
CVSup и приемы его использования очень хорошо описаны в Handbook’е в этой главе.
После обновления дерева портов, можно перейти к проверке актуальности версий установленного в системе программного обеспечения и, в случае необходимости, его обновления.
Похожие публикации
Теги: cvsup, FreeBSD, ports, supfile, unix, update, конфиги, обновление, программы, система


Это системная библиотека. Она должна быть в каталоге /usr/lib/
Какая версия операционной системы?
Возможно, дерево портов очень древнее…
Попробуй поставить cvsup через pkg_add -r а потом уже обновиться.
Вот только требует libz.so.2 для cvsup, не подскажете где ее можно получить ?
В /usr/share/examples/cvsup/doc-supfile на эту тему написано…
А разве в supfile для обновления документации prefix не /usr/share? Я не уверен, но если я правильно понял логику в handbook - нужно указать в префиксе каталог, в котором размещена коллекция. Если доки лежат в /usr/share/doc, то doc подразумевается коллекцией, а в префиксе получается /usr/share/
Am I right?
Результат: коннект закрыт по таймауту… (Inactivity timeout) Почему, неизвестно. Может cvsup сервер проблемный, либо проблемы с каналом в Инет. Я наталкивался на такое когда-то… Поменял cvsup сервер в настройках и больше такого не было.
Что касается актуальности доков, то что-то я не замечал частых обновлений в ней. Потому cvsup -g -L 2 /cvsup/doc-all я сейчас делаю раз в месяц, а то и в два…
Password:
server# cvsup -g -L 2 /cvsup/doc-all
Parsing supfile “/cvsup/doc-all”
Connecting to cvsup7.us.FreeBSD.org
Connected to cvsup7.us.FreeBSD.org
Server software version: SNAP_16_1g
Negotiating file attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection doc-all/cvs
Checkout doc/bn_BD.ISO10646-1/articles/new-users/article.sgml
Checkout doc/da_DK.ISO8859-1/Makefile
Checkout doc/da_DK.ISO8859-1/articles/Makefile
Checkout doc/da_DK.ISO8859-1/articles/Makefile.inc
Checkout doc/da_DK.ISO8859-1/articles/euro/Makefile
Checkout doc/da_DK.ISO8859-1/articles/euro/article.sgml
Checkout doc/da_DK.ISO8859-1/articles/ipsec-must/Makefile
Checkout doc/da_DK.ISO8859-1/articles/ipsec-must/article.sgml
Checkout doc/da_DK.ISO8859-1/articles/pxe/Makefile
Checkout doc/da_DK.ISO8859-1/articles/pxe/article.sgml
Cleaning up …
Inactivity timeout
Will retry at 18:57:26
Непонятен результат. Порты док-тов не обновились же?