16. Работа через proxy, mirror
По-умолчанию ОС использует утилиту fetch для загрузки файлов по протоколу HTTP и FTP во время установки/обновления (pkg_add, pkg_fetch, portupgrade) программ из портов. Для того, чтобы fetch устанавливал соединения через PROXY-сервер, необходимо установить аналогичные значения переменных окружения:
http_proxy
http://proxy.org:3128
ftp_proxy
http://proxy.org:3128
В данном случае, http proxy-сервер должен поддерживать ftp проксирование. Если данные переменные окружения записывать в нижнем регистре, то сохраняется совместимость с альтернативным менеджером закачек wget для работы через proxy.
Если в качестве shell используется csh/tcsh, то для определения указанных переменных окружения необходимо добавить в файл /etc/csh.cshrc такие строки (обязательно перелогиниться!):
setenv http_proxy
http://proxy.org:3128
setenv ftp_proxy
http://proxy.org:3128
При вызове процессов через Cron, по-умолчанию используется sh в качестве Shell. Поэтому необходимо добавить и в /etc/crontab строки:
http_proxy=http://proxy.org:3128
ftp_proxy=http://proxy.org:3128
Для установки зеркала пакетов по-умолчанию (pkg_add -r, pkg_fetch, portupgrade -PP, portinstall -PP) аналогично в файл /etc/csh.cshrc дописываем:
setenv PACKAGEROOT
http://package-mirror.org
Данный сайт должен содержать каталог /pub/FreeBSD/ports/$arch/packages-$release/ В противном случае переопределить сайт и каталог в переменной окружения PKG_SITES, добавляя в файл /etc/csh.cshrc запись:
setenv PKG_SITES
http://package-mirror1.org/packages/ \
http://package-mirror2.org/packages/ \
http://package-mirror3.org/packages/ \
Поиск пакетов происходит в каталоге All при указании полного имени пакета (с версией). Иначе - в каталоге Latest, в котором должны содержаться символические ссылки с именами без версий, ссылающиеся на полные имена пакетов в каталоге All.
Чтобы поиск distfiles (исходников) программ из портов изначально осуществлялся на альтернативных зеркалах, необходимо в файле /etc/make.conf определить значение переменной MASTER_SITE_OVERRIDE:
MASTER_SITE_OVERRIDE=http://ftp7.ua.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ \
http://ftp2.ua.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/