Переход к предыдущей публикации FreeBSD Docs Обновление ПО во FreeBSD Переход к следущей публикации

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

Вторник, 27 ноября, 2007 15:42:14 EET

Исправления от 23 марта, 2009 09:36:08

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

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

Похожие публикации

Выделенные сервера дешевле обычного хостинга

Комментариев 6

Daemony 21 сентября, 2009 13:05:19 EEST .:. ID #17680 .:.

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

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

greenlol 10 сентября, 2009 13:50:16 EEST .:. ID #17226 .:.

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

Daemony 21 июля, 2009 16:15:44 EEST .:. ID #14609 .:.

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

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

Smith 10 июля, 2009 15:05:22 EEST .:. ID #13772 .:.

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

Daemony 4 сентября, 2008 10:36:12 EEST .:. ID #832 .:.

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

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

ehfy238 31 августа, 2008 10:47:23 EEST .:. ID #824 .:.

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

Возник вопрос по этой теме, или есть что добавить? Говорите!

  1. Зарегистрированным пользователям вводить защитный код (captcha) не приходится.
  2. Загрузить свою аватарку Вы сможете, зарегистрировавшись на сервисе www.gravatar.com
Публикуя комментарий Вы подтверждаете, что ознакомились c Правилами и принимаете их!
HOMOSAPIENS ONLY! :)