URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 58831
[ Назад ]

Исходное сообщение
"Как обновлять софт во FreeBSD без портов?"

Отправлено VIadimir , 03-Авг-05 10:39 
Надо настроить около 10 роутеров с прокси, впн итд на базе FreeBSD. Возникла проблема как обновлять на них этот софт - места для коллекции портов на них нет, каждый раз компилить из исходников с применением патчей неинтересно как-то совсем на 10 роутерах.
что тут можно придумать?

Содержание

Сообщения в этом обсуждении
"Как обновлять софт во FreeBSD без портов?"
Отправлено AMDmi3 , 03-Авг-05 10:58 
>Надо настроить около 10 роутеров с прокси, впн итд на базе FreeBSD.
>Возникла проблема как обновлять на них этот софт - места для
>коллекции портов на них нет, каждый раз компилить из исходников с
>применением патчей неинтересно как-то совсем на 10 роутерах.
>что тут можно придумать?

- Packages, собирать на другой машине.
- Монтировать коллекцию портов на роутеры по NFS.
- Где-нибудь обрезать коллекцию портов до тех, что нужны на роутерах + зависимости и любым образом доставлять на роутеры (ftp/ssh/rsync/...)
- Монтировать всю файловую систему роутера по NFS на другую машину, и работать с ней. Например, так:

# mount_nfs router:/ /mnt
# export LOCALBASE=/mnt/usr/local
# export PKG_DBDIR=/mnt/var/db/pkg
# export PORT_DBDIR=/mnt/var/db/ports

После чего все pkg_* команды, make install и portupgrade, если я ничего не забыл, должны работать с портами, установленными на роутере. Также можно всю систему обновлять: make installworld DESTDIR=/mnt.

Не забывать про make.conf, особенно CPUTYPE.

- Если роутеры совсем одинаковые, можно еще более облегчить жизнь, собрать готовый образ диска/флешки где-нибудь, а потом разливать его по роутерам. Можно поискать сопутствующий софт. Например, я бы посмотрел sysutils/dolly.


"Как обновлять софт во FreeBSD без портов?"
Отправлено VIadimir , 03-Авг-05 11:21 
Спасибо за ответ

Роутеры хоть и одинаковые, но будут распределены по России от Хабаровска до Питера, в общем придется коллекцию портов резать судя по всему.
И, насколько я понял, в supfile для cvsup нельзя указать, что надо обновлять  только конкретные порты, а только целы ветки, например ports-ftp ports-www
или можно указать, что только конкретный порт из всей ветки?


"Как обновлять софт во FreeBSD без портов?"
Отправлено aliv , 03-Авг-05 11:27 
Что то я не пойму. а сколько у Вас вообще места?
Порты - текстовые файлы и места много не занимают.
Если такой серьезный проект, то наверное можно изыскать 10 HDD по 10 Гиг (хватило бы и 3 мне кажеться)
Или я что то не понимаю в постановке задачи

"Как обновлять софт во FreeBSD без портов?"
Отправлено lavr , 03-Авг-05 11:32 
>Спасибо за ответ
>
>Роутеры хоть и одинаковые, но будут распределены по России от Хабаровска до
>Питера, в общем придется коллекцию портов резать судя по всему.
>И, насколько я понял, в supfile для cvsup нельзя указать, что надо
>обновлять  только конкретные порты, а только целы ветки, например ports-ftp
>ports-www
>или можно указать, что только конкретный порт из всей ветки?

с обновлением ОДНОГО или НЕСКОЛЬКИХ портов через CVSUP, могут быть проблемы
индивидуальные обновления с обновлением зависимостей, делают через
portupgrade

Если хочется единообразия всех рутеров - нужно на них установить ОДИН
релиз и вести их одинаково, если софт везде одинаковый - на одном
собирать из портов packages и устанавливать на остальных.
Если все рутеры будут иметь достаточно хорошие каналы связи друг с другом, можно организовать NFS или GEOM-GATE(>= 5.x) под общие порты
или локальные пакеты или синхронизировать их cvsup'ом/rsync'ом с
одного основного. Опять же если каналы будут достаточной ширины, организовать туннелинг между ними.


"Как обновлять софт во FreeBSD без портов?"
Отправлено AMDmi3 , 03-Авг-05 12:08 
>Роутеры хоть и одинаковые, но будут распределены по России от Хабаровска до Питера, в общем придется коллекцию портов резать судя по всему.
>И, насколько я понял, в supfile для cvsup нельзя указать, что надо
>обновлять  только конкретные порты, а только целы ветки, например ports-ftp ports-www или можно указать, что только конкретный порт из всей ветки?

man cvsup на предмет refuse. Можно исключить любой path, т.е. например, целую категорию портов. Но если в категории нужен 1 порт, то придется исключать остальные порты по одному. Это все не рекомендуется, так как если какой-то порт обновится, и у него в зависимостях добавится порт из необновленных, могут случиться неприятные вещи.

Лучше где-нибудь обновлять коллекцию целиком, и делать tar только тех частей дерева, которые нужны. Либо поднять свой cvs/cvsup сервер с обрезанным деревом.

На вашем месте, я бы все-таки остановился на использовании packages - дешево и сердито.


"Как обновлять софт во FreeBSD без портов?"
Отправлено aliv , 03-Авг-05 12:21 
посмотрел сколько занимают порты - 1,5 Гиг.
Это критично?

"Как обновлять софт во FreeBSD без портов?"
Отправлено VIadimir , 03-Авг-05 12:27 
>посмотрел сколько занимают порты - 1,5 Гиг.
>Это критично?

да, места 512 мег всего.
В общем начну с делать с packages, а там посмотрим


"Как обновлять софт во FreeBSD без портов?"
Отправлено AMDmi3 , 03-Авг-05 12:43 
>посмотрел сколько занимают порты - 1,5 Гиг.
>Это критично?

На самом деле порты целиком занимают

% du -hs /usr/ports
276M    /usr/ports

Директории work надо удалять чаще, а правильнее вообще в другом месте держать (WRKDIRPREFIX). А дистфайлы после установки пакета становятся не нужны.