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

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'е в этой главе.

После обновления дерева портов, можно перейти к проверке актуальности версий установленного в системе программного обеспечения и, в случае необходимости, его обновления.

Понравился материал? Добавьте к себе в:

Тэги: , , , , , , , , ,

Об авторе Daemony

Это мой персональный Блог! Веду его с переменным успехом с 2007 года. Пишу здесь обо всем, что мне интересно. Среди моих интересов: системное администрирование *nix систем, компьютерные технологии, фотография и многое другое. Подробнее можно почитать на странице "О блоге". Связаться со мной можно через форму обратной связи на этом сайте. Спасибо, за то, что посетили My Live Blog!
Подпишитесь на новые комментарии к этой публикации.

Комментариев: 9

  1. а чем CVSup лучше portsnap fetch update?

  2. попытался обновить с ports-all пишет пустой файл

  3. greenlol: Вот только требует libz.so.2 для cvsup, не подскажете где ее можно получить ?

    Это системная библиотека. Она должна быть в каталоге /usr/lib/
    Какая версия операционной системы?
    Возможно, дерево портов очень древнее…
    Попробуй поставить cvsup через pkg_add -r а потом уже обновиться.

  4. Вот только требует libz.so.2 для cvsup, не подскажете где ее можно получить ?

  5. Smith: А разве в supfile для обновления документации prefix не /usr/share? Я не уверен, но если я правильно понял логику в handbook — нужно указать в префиксе каталог, в котором размещена коллекция. Если доки лежат в /usr/share/doc, то doc подразумевается коллекцией, а в префиксе получается /usr/share/ Am I right?

    В /usr/share/examples/cvsup/doc-supfile на эту тему написано… :wink:

  6. А разве в supfile для обновления документации prefix не /usr/share? Я не уверен, но если я правильно понял логику в handbook — нужно указать в префиксе каталог, в котором размещена коллекция. Если доки лежат в /usr/share/doc, то doc подразумевается коллекцией, а в префиксе получается /usr/share/
    Am I right?

  7. Результат: коннект закрыт по таймауту… (Inactivity timeout) Почему, неизвестно. Может cvsup сервер проблемный, либо проблемы с каналом в Инет. Я наталкивался на такое когда-то… Поменял cvsup сервер в настройках и больше такого не было.

    Что касается актуальности доков, то что-то я не замечал частых обновлений в ней. Потому cvsup -g -L 2 /cvsup/doc-all я сейчас делаю раз в месяц, а то и в два…

  8. 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
    Непонятен результат. Порты док-тов не обновились же?

Поделиться мнением

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Перед тем, как нажать кнопку "Отправить" введите проверочный код с изображения