jumper777 писал(а):
Есть 2 диска freebsd 6.0 release (linuxcenter)
Вопрос: Как можно организовать установку packages с местного ftp сервера.
Установка оси по сети с местного ftp сервера проходит на Ура! А как с пакаджами? ругаеться что Index файл не существует
Где копать? Мне кажется что то очень простое:)
посмотреть на обоих CD файл INDEX в packages, если
одинаковые - взять любой, если разные - сделать ОДИН
общий, после чего на ftp сделать структуру аналогичную
той что на CD или на ftp.freebsd.org
ну а дальше все просто: man pkg-add - ключ -r и
переменные среды PACKAGEROOT и PACKAGESITE
короче лень по сто раз одно и тоже расписывать, вот
что я на одном из форумов расписывал на очередной
подобный вопрос:
Код:
есть еще ряд переменных: PKG_PATH - путь по которому будет произведен
поиск пакетов, PACKAGEROOT и PACKAGESITE откуда будут вытягиваться
пакеты для установки.
Все дело в том, что pkg-add по умолчанию использует в качестве
PACKAGEROOT=ftp://ftp.freebsd.org/ и автоматически дополняет
полный путь URL=ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages-X.Y-release
или packages-N-stable packages-X.Y-release или packages-current
X,Y - цифры релиза, возможные значения N=3,4,5
Таким образом мы можем изменить PACKAGEROOT на НУЖНЫЙ нам чтобы
пакеты брались оттуда.
PACKAGESITE используется сразу для КОНКРЕТНОГО URL site:/path_to_packages
и соответственно отменяет автоматическое определение установленной у
нас системы и автоматического формирования пути, соответственно
export PACKAGESITE=ftp://unix1.jinr.ru/pub/allpack - будет полный
маршрут с какого сайта и из какой директории будут вытягиваться
пакеты через anonymous-ftp
Пример (ну скажем чтобы посмотреть работу переменных в комплексе):
дано: несколько компактов с packages
имеем небольшой диск на который не влазят ВСЕ packages
делаем следующее (используем bash в качестве shell):
export PACKAGES=/pub/allpack - сюда скачиваем пакеты, допустим один CD
допустим мы можем через SAMBA или NFS подмонтировать еще один CD
с пакетами на удаленной машине в директорию /mnt, тогда пишем:
export PKG_PATH=/pub/allpack:/mnt
допустим имеем работающую локалку (TCP/IP) машину с FTP доступом
и местом куда кладем еще CD:
export PACKAGESITE=ftp://packhost.domain/pub/otherpack
теперь можем с командной строки использовать:
pkg_add -r ... (который просмотрит все переменные среды и сам будет
искать зависимости по указанным местам)
Не уверен что /stand/sysinstall смотрит ВСЕ переменные, но можно
посмотреть sources или попробовать на практике.
итого, можно свалить все пакеты в локальную директорию
и задать переменную среды PACKAGES=/pkg_path,
тогда достаточно выполнять pkg_add package_name,
можно свалить на удаленной машине и подмонтировать
к локальной: mount_nfs или mount_smbfs, далее работать
как с локальной.
Можно по ftp, тогда если не соблюдена структура, то
задать перменную PACKAGESITE с полным адресом и путем
к директории, после чего pkg_add -r будет брать пакеты
оттуда и устанавливать вместе с зависимостями
Не забывать про файл INDEX для пакетов.
Все верхнее расписано в man pkg_add