Свой репозиторий пакетов (distfiles) FreeBSD в локальной сети

команды, freebsd, настройка, установка, сервер, server, ubuntu

В один прекрасный день мне надоело ждать пока качается очередной пакет из интернета необходимый для инсталяции приложения и решено было сделать единое место их хранения, а потом быстро раздавать всем в своей подсети. Реализовать решил задуманное (скачивание и синхронизацию с авторизованными серверами FreeBSD) с помощью rsync, а уже раздачу с помощью обычного ftp. В общем то стандартное решение.

Создаём директорию, куда будут качаться пакеты:
mkdir -p /mnt/pools/dsk00/backup/repository/fbsd/pub/FreeBSD/distfiles/

Концовка pub/FreeBSD/distfiles/ в директории должна присутствовать(см. команду выше), так как она соответствует такой же директории на удалённом сервере, с которым будем синхронизироваться.

Запускаем rsync:
rsync -vaz ftp2.ru.FreeBSD.org::FreeBSD/distfiles/ /mnt/pools/dsk00/backup/repository/fbsd/pub/FreeBSD/distfiles/

здесь:
v — выводить подробную информацию
a — простой способ указать скачивать рекурсивно
z — сжимать передаваемое[/hidepost]

В офф документации указано,что FTP-набор рекомендуется синхронизировать раз в сутки, но с ftp.FreeBSD.org синхронизироваться нельзя.
Когда докачается, а размер на данный момент порядка 138 ГБ, делаем на сервере куда синхронизировали пакеты:

добавляем пользователя ftp, выполнив от имени root’а:
adduser

Username: пишем "ftp" без ковычек
Full name: пишем "anonymous ftp" без ковычек
Uid (Leave empty for default): просто жмём Enter
Login group [ftp]: опять жмём Enter
Login group is ftp. Invite ftp into other groups? []: жмём Enter
Login class [default]: жмём Enter
Shell (sh csh tcsh nologin) [sh]: пишем "nologin" без ковычек
Home directory [/home/ftp]: жмём Enter
Home directory permissions (Leave empty for default): жмём Enter
Use password-based authentication? [yes]: жмём Enter
Use an empty password? (yes/no) [no]: пишем "yes" без ковычек и жмём Enter
Lock out the account after creation? [no]: жмём Enter
Username : ftp
Password :
Full Name : anonymous ftp
Uid : 1002
Class :
Groups : ftp
Home : /home/ftp
Home Mode :
Shell : /usr/sbin/nologin
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (ftp) to the user database.
Add another user? (yes/no): пишем "no" и жмём Enter
Goodbye!

Пользователь добавлен, можно проверить:
cat /etc/passwd

там появится строчка с пользователем ftp.
Раскомментируем(уберём символ «#» в начале строки) в /etc/inetd.conf строку:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l

пеерстартую демона itend:
killall -HUP inetd

правим /etc/ftpchroot:
ee /etc/ftpchroot

добавляем:
ftp /mnt/pools/dsk00/backup/repository

здесь:
/mnt/pools/dsk00/backup/repository -это путь, куда мы предоставляем доступ по ftp.

Потом на машинке на которой будем ставить программы, которая будет у нас клиентом ФТП сервера добавляем в /etc/make.conf строку:
MASTER_SITE_OVERRIDE=ftp://IP_сервера_куда_синхронизировались,т.е._фтп_сервера/fbsd/pub/FreeBSD/distfiles/${DIST_SUBDIR}/

Всё, можно ставить из портов используя локальный репозиторий на FTP-серврере.

Добавить комментарий