Централизованная сетевая система обновления программного обеспечения средствами NFS в Sabayon Linux.

1. Введение. Архитектура системы обновления программного обеспечения в Sabayon Linux.

Portage — система управления пакетами в Sabayon Linux (Унаследована из Gentoo). Представляет собой набор утилит на Python и Bash, призванных облегчить и упорядочить
установку программного обеспечения из исходных кодов или бинарных пакетов, с учетом всех зависимостей.
Основной пользовательский интерфейс Portage — консольная программа emerge, которая позволяет устанавливать новые пакеты с учетом зависимостей и с возможностью
управления вариантами установки — например с поддержкой определенных функций или без поддержки ненужных функций (управление параметрами сборки осуществляется через так называемые USE-флаги),
удалять ненужные пакеты, обновлять установленные пакеты, проводить синхронизацию с деревом портежей (по протоколу rsync) и т. д. Программа ebuild служит интерфейсом низкого уровня к Portage,
а emerge — высокоуровневая оболочка для неё.

Entropy - это система управления бинарными пакетами в Sabayon Linux, это целостная инфраструктура, состоящая из текстового клиента Equo, графического клиента Sulfur.

layman - программа управляющая overlay'ями.

/usr/portage (в этой директории находятся: ebuilds, distfiles; для системы управления ПО Portage)   
/usr/local/portage (для локальных ebuilds (которых нет в основном дереве portage); для системы управления ПО Portage)
/var/lib/entropy/packages/x86 (в этой директории находятся бинарные пакеты; для системы управления ПО Entropy(Equo/Sulfur))
/var/lib/entropy/packages-nonfree/x86 (в этой директории находятся не свободные бинарные пакеты; для системы управления ПО Entropy(Equo/Sulfur))
/var/lib/entropy/packages-restricted/x86 (в этой директории находятся закрытые бинарные пакеты; для системы управления ПО Entropy(Equo/Sulfur))
/var/lib/entropy/client/database/x86/sabayonlinux.org (в этой директории находится Entropy DataBase; для системы управления ПО Entropy(Equo/Sulfur))

2. Cервер.

  2.1 Экспортирование директорий. Настройка nfs сервера. Обновление ПО.

    2.1.1 Перед тем как настраивать nfs необходимо проверить чтобы пути (до экспортируемых директорий) не содержали точку, поэтому до монтирования следует создать символьную ссылку с sabayonlinuxorg на sabayonlinux.org

    # ln -s /var/lib/entropy/client/database/x86/sabayonlinux.org /var/lib/entropy/client/database/x86/sabayonlinuxorg
    
    2.1.2 В настройках nfs требуется указать какие директории отдавать по сети, в файле /etc/exports

    /usr/portage 192.168.1.0/24(subtree_check,no_root_squash,sync,rw)
    /usr/local/portage 192.168.1.0/24(subtree_check,no_root_squash,sync,rw)
    /var/lib/entropy/packages/x86 192.168.1.0/24(subtree_check,no_root_squash,sync,rw)
    /var/lib/entropy/packages-nonfree/x86(subtree_check,no_root_squash,sync,rw)
    /var/lib/entropy/packages-restricted/x86(subtree_check,no_root_squash,sync,rw)
    /var/lib/entropy/client/database/x86/sabayonlinuxorg 192.168.1.0/24(subtree_check,no_root_squash,sync,rw)

    Примечание: главное не забыть написать sabayonlinuxorg без точки!
    
    2.1.3 Использованные опции монтирования.

    subtree_check - Если экспортируется подкаталог фаловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге.
    no_root_squash - root (uid0) на стороне клиента, выглядит как nobody (uid 65534) на стороне сервера, это называется смещением root т.к. позволяет защитить файлы, владельцом которых
    является root от изменений клиентами NFS. Опция no_root_squash отменяет такое поведение, и позволяет пользотелю root (на стороне клиента) иметь доверенный полный доступ к разделу.
    Данная опция может использоваться только в случае доверия.
    sync - синхронный режим работы, ответы на запросы происходят только после того, как данные надежно будут записаны на диск. Надежность выше, производительность меньше.
    rw - даёт клиентам право на запись.

    2.1.4 Полезные команды.

    Для перезапуска службы nfs.

    # /etc/init.d/nfs restart

  2.2 Обновление програмного обеспечения
    
    Обновим списки пакетов основного дерева portage, дополнительного оверлея sabayon и бинарного репозитория entropy:
 
    # emerge --sync && layman -S && equo update
    
    Перед тем как начинать обновлять сами пакеты следует обновить пакетный менеджер до последней версии:

    # equo install entropy equo --nodeps

    Обновление всех пакетов до последних версий - это приведёт Вашу систему в актуальное состояние:

    # equo upgrade

    или

    # equo world

    После чего обновить конфигурационные файлы.

    # equo conf update


3. Клиент.

  3.1 Монтирование директорий. Настройка nfs клиента.

  Для того, чтобы клиентской машине было доступно ПО (в системах Entropy и Portage) следует смонтировать следующие директории сервера в соответсвующие локальные директории.

    3.1.1 Монтирование директорий вручную.

    # mount ip_server:/usr/portage /usr/portage
    # mount ip_server:/usr/local/portage /usr/local/portage
    # mount ip_server:/var/lib/entropy/packages/x86 /var/lib/entropy/packages/x86
    # mount ip_server:/var/lib/entropy/packages-nonfree/x86 /var/lib/entropy/packages-nonfree/x86
    # mount ip_server:/var/lib/entropy/packages-restricted/x86 /var/lib/entropy/packages-restricted/x86
    # mount ip_server:/var/lib/entropy/client/database/x86/sabayonlinuxorg /var/lib/entropy/client/database/x86/sabayonlinux.org
    
    Примечание: Стоит внимательно монтировать последнюю дерикторию: sabayonlinuxorg следует писать без точки, тогда как аналогичную локальную директорию через точку.

    3.1.2 Настройки автомонтирования.
 
    Для автомонтирования необходимо добавить следующие строки в /etc/fstab:

    ip_server:/usr/portage    /usr/portage    nfs     defaults        0 0
    ip_server:/usr/local/portage    /usr/local/portage      nfs     defaults        0 0
    ip_server:/var/lib/entropy/packages/x86    /var/lib/entropy/packages/x86   nfs     defaults        0 0
    ip_server:/var/lib/entropy/packages-nonfree/x86    /var/lib/entropy/packages-nonfree/x86   nfs     defaults        0 0
    ip_server:/var/lib/entropy/packages-restricted/x86    /var/lib/entropy/packages-restricted/x86   nfs     defaults        0 0
    ip_server:/var/lib/entropy/client/database/x86/sabayonlinuxorg    /var/lib/entropy/client/database/x86/sabayonlinux.org   nfs     defaults        0 0

    3.1.3 Полезные команды.

    Для того, чтобы посмотреть какие директории отдаёт на монтирование сервер:

    # showmount -e ip_server

    Для того, чтобы посмотреть какие директории смонтированы в данный момент:

    # df -h

    Для перезапуска службы nfsmount:

    # /etc/init.d/nfsmount restart

  3.2 Обновление программного обеспечения.

    3.2.1 После успешного монтирования, можно обновить программное обеспечение. Перед тем как Вы начнёте обновлять сами пакеты следует обновить пакетный менеджер до последней версии:

    # equo install entropy equo --nodeps

    3.2.2 Обновление всех пакетов до последних версий, это приведёт Вашу систему в актуальное состояние:

    # equo upgrade (старая команда # equo world)

    3.2.3 После успешного обновления всех пакетов, обновите конфигурационные файлы:

    # equo conf update

©mohado
Используются технологии uCoz