Страница 1 из 1

Обновление дерева портов в FreeBSD c помощью CVSup, Portsnap

Добавлено: 05 мар 2011, 08:51
zaka
Обновление дерева портов в FreeBSD 7.3 c помощью CVSup

Порт - это один из очень удобных способов установки программного
обеспечения для FreeBSD. Чтобы установить нужную программу достаточно
войти в директорию с нужным портом и дать всего одну команду make install.

CVSup это пакет программного обеспечения для распространения и обновления исходных текстов с основного репозитория CVS на удаленном сервере. Исходные тексты FreeBSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии. С помощью CVSup пользователи FreeBSD легко могут поддерживать собственные исходные тексты в актуальном состоянии.

Для обновления локального дерева портов нам понадобится пакет cvsup.
Установим его

Код: Выделить всё

# cd /usr/ports/net/cvsup/ 
# make install && clear
После инсталяции этого пакета приступаем к его настройке в каталоге /usr/share/examples/cvsup/ports-supfile есть дефаултный конфиг скопируем его в /etc/supfile

Код: Выделить всё

cp /usr/share/examples/cvsup/ports-supfile  /etc/supfile
и отредактируем:

Код: Выделить всё

ee /etc/supfile
(если хотите полностью обновить то тогда надо раскоментить строчку ports-all а если нет то тогда надо раскоментить по разделы как у мну ports-databases, и т.д.)

Код: Выделить всё

*default host=cvsup2.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
ports-all 
#ports-base
#ports-accessibility
#ports-arabic
#ports-archivers
#ports-astro
#ports-audio
#ports-benchmarks
#ports-biology
#ports-cad
#ports-chinese
#ports-comms
#ports-converters
#ports-databases
#ports-deskutils
#ports-devel
#ports-dns
#ports-editors
#ports-emulators
#ports-finance
#ports-french
#ports-ftp
#ports-games
#ports-german
#ports-graphics
#ports-hebrew
#ports-hungarian
#ports-irc
#ports-japanese
#ports-java
#ports-korean
#ports-lang
#ports-mail
#ports-math
#ports-mbone
#ports-misc
#ports-multimedia
#ports-net
#ports-net-im
#ports-net-mgmt
#ports-net-p2p
#ports-news
#ports-palm
#ports-polish
#ports-ports-mgmt
#ports-portuguese
#ports-print
#ports-russian
#ports-science
#ports-security
#ports-shells
#ports-sysutils
#ports-textproc
#ports-ukrainian
#ports-vietnamese
#ports-www
#ports-x11
#ports-x11-clocks
#ports-x11-drivers
#ports-x11-fm
#ports-x11-fonts
#ports-x11-servers
#ports-x11-themes
#ports-x11-toolkits
#ports-x11-wm
Запускаем обновление портов:

Код: Выделить всё

cvsup -g -L 2 /etc/supfile
Забиваем на cronta обнавление 1 раз в неделю
саздаем скрипт в cvsup_up.sh в /usr/local/sbin/ и поместим в него команду обновления портов

Код: Выделить всё

 /usr/local/bin/cvsup -g -L 2 /etc/supfile 
В /etc/crontab добавим следующую строчку

Код: Выделить всё

35 23 * * 6 root /usr/local/sbin/cvsup_up.sh
man crontab http://sysadmins.el.kg/viewtopic.php?f= ... it=crontab

Описание опции:
host=cvsup.FreeBSD.org - указывает, откуда мы хотим получать обновления. Этот путь можно изменить при и запуске программы cvsup, запуская ее с ключом -h hostname.
base=/usr - указывает, где будут размещаться файлы статуса (для поддержки истории обновлений). В указанном случае будет использоваться каталог /usr/sup.
prefix=/usr - указывает, где будут размещаться полученные файлы.
release=cvs - означает, что сервер должен получать информацию из главного репозитария FreeBSD CVS.
tag=. - версия исходных текстов. "Точка" означает current (текущую) версию. Для обновления портов используйте только "точку".
delete - дает возможность CVSup удалять файлы, чтобы поддерживать дерево портов в актуальном состоянии.
compress - включает использование gzip сжатия при передаче данных.
Слово default перед параметром означает, что он используется по умолчанию для всех далее перечисленных коллекций, которые мы хотим обновить.

Далее идет перечень коллекций, которые будут участвовать в обновлении:
ports-all - для обновления всей коллекции портов.
Чтобы обновить только определенные ветви коллекции портов, следует закомментировать строку ports-all и раскомментировать требуемые, например: ports-base, ports-net и т.д. (ports-base раскомментировать обязательно, чтобы всегда обновлялась структура самого дерева портов).

Где:
-g - указывает не использовать GUI (графическую оболочку).
-L - уровень вывода сообщений:
0 - не выводить никаких сообщений, кроме об ошибках;
2 - выводить информацию о каждом производимом обновлении.

(для получения информации о всех ключах используйте ключ -H)

Основные CVSup-серверы FreeBSD:

cvsup.FreeBSD.org
cvsup2.FreeBSD.org
cvsup3.FreeBSD.org
Основные CVSup-серверы в России:
cvsup.ru.FreeBSD.org
cvsup2.ru.FreeBSD.org

У мну все получилось ;)
Лицензия: GPL
Литература:
http://www.unixdoc.ru
http://www.ofnet.ru
http://www.freebsd.org

Re: Обновление дерева портов в FreeBSD 7.3 c помощью CVSup

Добавлено: 05 мар 2011, 11:18
Raven
zaka
*THUMBS UP*

Re: Обновление дерева портов в FreeBSD 7.3 c помощью CVSup

Добавлено: 24 июн 2011, 13:09
zaka
Таак идем дальше сегодня наткнулся на вот такую штуку portsnap
Portsnap -- система для защищенного распространения дерева портов FreeBSD. Примерно раз в час генерируется ''снэпшот'' дерева портов, который затем архивируется и подписывается электронной подписью. Полученные файлы затем распространяются при помощи HTTP.

Подобно CVSup, portsnap использует активную (pull) модель обновлений: упакованное и подписанное дерево помещается на веб-сервер, откуда его должны забирать клиенты.

portsnap на FreeBSD версии 5.5 и выше идет с коробки (ставиться по умолчанию). В первый раз она скачает достаточно много, порядка 45 мегабайт, но потом будет обновлять только измененные порты, а это совсем небольшой трафик. Первый запуск:
Скачиваем БД для portsnap из инета:
(При первом запуске утилите portsnap(8) потребуется загрузить упакованный снэпшот полного дерева портов в каталог /var/db/portsnap/ (/usr/local/portsnap/, если Portsnap был установлен из Коллекции портов). На начало 2006 года размер снэпшота составляет около 41 МБ.)

Код: Выделить всё

portsnap fetch 
Распаковка БД:
После загрузки снэпшота из него может быть развернуто основное дерево портов. Это необходимо, даже есть каталог /usr/ports/заполнен каким-либо другим способом, например при помощи CVSup, поскольку позволяет установить точку отсчета, от которой portsnap будет определять необходимый объем изменений.

Код: Выделить всё

portsnap extract 
Обновляем порты:
После того как первоначальный снэпшот дерева портов будет развернут в каталог /usr/ports/, обновление дерева портов будет состоять из двух шагов: загрузки (fetch) обновлений к упакованному снэпшоту и последующего обновления (update) основного дерева. Оба шага могут быть выполнены одним запуском portsnap:

Код: Выделить всё

portsnap update 
Последующие запуски:

Код: Выделить всё

portsnap fetch update
Примечание: Portsnap отлично работает с прокси сервером CVSup зависает и т.д.

Re: Обновление дерева портов в FreeBSD c помощью CVSup, Port

Добавлено: 24 июн 2011, 21:49
Gen1us2k
portsnap user