Local repository HOW-TO (Русский)
В этом документе излагается один из способов распространения пакетов Arch linux по сети. Лучший способ это создание локального хранилища с ABS и gensync, доступного по всей локальной сети с использованием NFS или FTP. Этот документ может быть отредактирован, чтобы описать процесс подробно. Пока, подлинник HOWTO оставлен целым ниже:
Дабы распространить все загружаемые вами пакеты, в вашу локальную сеть, сохранить все параметры сети, пропускную способность, дисковое пространство и время сделайте "pacman -Sy" команда для синхронизации с вашим локальным хранилищем. "pacman -S pkgname" команда для загрузки и установки пакета с локального хранилища, если пакета не существует, он загрузится с сервера указанного в списке /etc/pacman.conf и сохранится на локальном хранилище. "alsync" команда для синхронизации и обновления локального хранилища с ftp.archlinux.org
Настройки для моей сети serverip=192.168.14.3 network=192.168.14.0/255.255.255.0 Теперь займёмся вашими:
Contents
Настройка локального сервера
На вашем сервере создайте nfs(протокол сетевого доступа к файловым системам) доступ с возможностью чтения и записи для любого компьютера вашей сети.
Если ваш локальный сервер под управлением Arch Linux, сделайте следущее:
pacman -S rpcbind pacman -S nfs-utils
отредактируйте /etc/exports добавьте строку
/var/cache/pacman/pkg 192.168.14.0/255.255.255.0 (rw,no_root_squash,sync)
добавте rpcbind, nfs-common и nfs-server в секцию DAEMONS в /etc/rc.conf
запустите сервисы:
# /etc/rc.d/rpcbind start # /etc/rc.d/nfs-common start # /etc/rc.d/nfs-server start
проверьте что nfsshare и "exportfs" запущены на локальном сервере.
Настройте hosts.allow и hosts.deny
Всё работает очень просто:
hosts.deny ALL: ALL: DENY
hosts.allow ALL: 192.168.14.
Пояснение:
hosts.deny deny описывает все несуществующие соединения в hosts.allow. hosts.allow allow описывает соединение с с локальной сетью 192.168.14.0/255.255.255.0
Для ваших клиентов
- переименуйте /var/cache/pacman/pkg в /var/cache/pacman/pkgorg
- создайте новый /var/cache/pacman/pkg и смонтируйте там nfs
- запустите "mount -o rw,nolock 192.168.14.3:/var/cache/pacman/pkg /var/cache/pacman/pkg"
- если команда монтирования не сработала, добавьте опцию "nfsvers=3"
или если вы хотите, чтобы всё автоматически монтировалось после перезагрузки, добавьте эту строчку в /etc/fstab
192.168.14.3:/var/cache/pacman/pkg /var/cache/pacman/pkg nfs rw,nolock
- если монтирование не работает, снова попробуйте добавить эту опцию nfsvers=3 в запись fstab.
- запустите "mount -a"
- запустите "df" чтобы проверить монтирование
- переместите все ваши уже выбранные пакеты из
/var/cache/pacman/pkgorg в /var/cache/pacman/pkg
- отредактируйте /etc/pacman.conf и добавьте все эти строки:
{current} Server = file:///var/cache/pacman/pkg
и затем
{extra} Server = file:///var/cache/pacman/pkg
Я пропустил последние 3 шага, поскольку у меня уже всё настроено и работает, так как я хочу.
Синхронизация вашего локального хранилища с archlinux.org
Используйте *"alsync" для соединения, входа в систему, и корректирования вашей базы данных пакетов на локальном nfs сервере.
pacman -S openssl pacman -S wget
- создайте фаил /bin/alsync и добавьте эти строки
cd /var/cache/pacman/pkg wget -N ftp://ftp.archlinux.org/current/.db. wget -N ftp://ftp.archlinux.org/extra/.db.
- chmod 777 /bin/alsync
скопируйте этот файл вашим клиентам
- чтоб запустить с правами root на первом клиенте
alsync pacman -Sy pacman -S new-pkgname
- перейдите к следующему клиенту и запустите
pacman -Sy pacman -S new-pkgname