HOWTO portage & NFS
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
Содержание |
[править] Постановка проблемы
Несколько компьютеров в локальной сети обновляют портеджи слишком долго. Тратится много трафику, занимается канал...
[править] Решение
Доступный всем NFS раздел с /usr/portage. Один компьютер синхронизирует портеджи каждый день, а остальные монтируют через NFS папку с ними.
[править] Вкратце
- Включить поддержку NFS в ядре.
- Установить nfs-utils.
- Отредактировать /etc/fstab для автомонтирования папки с портеджами.
[править] Преимущества
- Только один компьютер должен синхронизировать портеджи.
- Не нужно устанавливать никакие rsync-серверы.
- Общая папка /usr/portage/distfiles/ избавляет от необходимости скачивать из интернета/локального фтп-сервера одни и теже файлы
[править] Предварительная настройка
- Необходимо включить поддержку NFS в ядре на всех компьютерах, на которых будет использоваться NFS-раздел.
| Code: Built-in Config |
File systems ---> Network File Systems ---> <*> NFS file system support [*] Provide NFSv3 client support [ ] Provide NFSv4 client support (EXPERIMENTAL) [ ] Allow direct I/O on NFS files (EXPERIMENTAL) <*> NFS server support [*] Provide NFSv3 server support [ ] Provide NFSv4 server support (EXPERIMENTAL) [ ] Provide NFS server over TCP support (EXPERIMENTAL) ... |
- Также необходимо установить пакет nfs-utils
emerge nfs-utils
и добавить их в автозагрузку
#rc-update add nfs default #rc-update add portmap default #rc-update add netmount
[править] Настройка NFS и cron'а
- На компьютере, который будет выступать в качестве сервера, добавим экспортируемые папки:
| Файл: /etc/exports |
... /usr/portage/ YOUR.LAN.IP.RANGE/MASK(sync,rw,no_root_squash) ... |
- На компьютерах, которые будут использовать NFS раздел с портеджами, добавим в /etc/fstab следующее:
| Файл: /etc/fstab |
... SERVER_IP:/usr/portage /usr/portage nfs bg,hard 0 0 ... |
После рестарта сервисов, компьютеры будут использовать 1 общий NFS раздел с /usr/portage/. Осталось добавить в cron автоматическую синхронизацию портеджей на главном компьютере, а на всех остальных - обновление метаданных.
На NFS сервере:
#crontab -e 0 0 * * * emerge --sync > /dev/null 2>&1 || true --nospinner
На клиентах:
#crontab -e 10 0 * * * emerge --metadata
Теперь каждую полночь на сервере будет выполняться синхронизация портеджей. А в 00-10 будут обновляться метаданные у клиентов.
[править] Дополнительная информация
- О Crontab
