Локальный репозиторий — это очень просто и удобно!

После получения пакета СПО и его апробации на экспериментальной машине возникает естественное желание установить дистрибутив на все компьютеры в учреждении, на которых это возможно. Дальнейшее желание — это установить дополнительное программное обеспечение, которое не всегда может находиться на полученном диске., но находиться в репозитории, расположенном на одном из серверов в Интернете (например ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/4.1/branch/). Либо обновить систему до более новой версии.

К концу 2008 года практически все школы России были подключены к сети Интернет. Не знаю как со скоростью подключения обстоят дела в других регионах, но в нашей школе скорость подключения составляет 128 Кб/c, зато безлимит. Теперь представим ситуацию, когда в учебном учреждении более 50 рабочих станций, и порядка 20 постоянно используют предоставленный канал для работы. Естественно устанавливать ПО в рабочее время с репозитория в сети Интернет на один компьютер более чем проблематично, тем более на 20 одновременно. А если нужно срочно?

«Погуглив» на просторах интернета и посоветовавшись с более опытными линуксоидами я пришёл к выводу, что необходимо создать собственный репозиторий в локальной сети, который бы ежедневно обновлялся и все машины в сети получали ПО с этого репозитория. Для решения данной задачи мне понадобился ftp-сервер с анонимным доступом в локальной сети, на котором я решил размещать хранилище пакетов (можно также использовать и http-протокол для доступа к репозиторию).

Итак теперь нужно создать сам репозиторий. Для его создания существует множество способов.

Первый из них, которым я воспользовался — это рецепт Дмитрия Кругликова (http://freesource.info/wiki/DmitriyKruglikov/Repository?v=f2g&). Но такое решение проблемы меня, вскоре, не устроило по уже выше указанным причинам — установка производиться в рабочее время и канал будет занят, хотя очень удобен в том случае, если вы хотите иметь маленький и компактный репозиторий, в котором только всё необходимое для работы ваших машин.

Второй способ предлагают разработчики ALTLinux — воспользоваться утилитой alterator-mirror. Установив которую командой apt-get install alterator-mirror, вы получите доступ к управлению зеркалирования локальных репозиториев через веб-интерфейс alterator:

mirror

Такой способ больше подходит для системных администраторов, которые только начинают свой переход на ОС Linux. Но так, как сохранение зеркала будет произведено в каталог /var/lib/alterator/mirror, поэтому необходимо следить за тем, чтобы корневой каталог не был переполнен, иначе это может вызвать сбои в работе операционной системы.

Тем же пользователям, которых не останавливают трудности работы в командной строке я покажу ещё один способ, который сам использую:

Использование связки ftp-сервер+rsync+crontab.

  1. Настраиваем ftp или http сервер на доступ анонимных пользователей к нужной нам директории (в моём случае это ftp://asosh2.edu/altlinux/4.1/branch/ — asosh2.edu мой сервер в локальной сети с адресом 192.168.0.10).

  2. Создаём скрипт для выкачивания нужного репозитория. Скрипт можно не создавать самому. Уважаемые пользователи форума http://forum.altlinux.org любезно его предоставили для всех желающих, за что выражаю им свою благодарность:

#!/bin/sh

rsync -avlpztc —exclude ‘SRPMS’ —exclude ‘x86_64’ —stats —delete-after —verbose rsync.altlinux.org::ALTLinux/4.1/branch/ /home/www/ftp/altlinux/4.1/branch

Где /home/www/ftp/altlinux/4.1/branch — та директория, куда помещается репозиторий

Скачать скрипт

rsync — (англ. Remote Synchronization) это программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодировку данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию. (http://ru.wikipedia.org/wiki/Rsync)

  1. Само выкачивание репозитория при наших скоростях может затянуться на долго, но его последующее обновление занимает намного меньше времени. Выкачивать и обновлять репозиторий можно в ночное время суток, когда канал свободен. Но так, как в мои планы совершенно не входило находиться в учреждении до того момента, когда все сотрудники закончат работу, то ещё немного «погуглив» и испросив совета у линуксоидов я поместил скрипт в каталог /cron.daily/ — находящиеся в ней скрипты буду запускаться раз в сутки в указанное в файле crontab время.

    cronдемонпланировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в заданное время (http://ru.wikipedia.org/wiki/Cron).

    Файл crontab можно подкорректировать так как нам удобно:

    # run-parts

    01 * * * * root run-parts /etc/cron.hourly

    02 20 * * * root run-parts /etc/cron.daily

    22 4 * * 0 root run-parts /etc/cron.weekly

    42 4 1 * * root run-parts /etc/cron.monthly

    В 02 20 * * * root run-parts /etc/cron.daily — указываем что скрипты будут запускаться в 20.02

  2. Осталось настроить машины на наш репозитрий и настроить автоматическое обновление. Первое можно сделать либо указав в Synaptic наш репозиторий, либо прописать в файле /etc/apt/sources.list необходимые строки (в моём случае это выглядит так:

    rpm ftp://asosh2.edu/altlinux/4.1/branch/ i586 classic

    rpm ftp://asosh2.edu/altlinux/4.1/branch/ noarch classic)

  3. Автоматическое обновление я настроил так — поместил в /cron.daily/ следующий скрипт:

    #/bin/sh/

    apt-get update

    apt-get dist-upgrade -y

    apt-get clean

    Его содержание мне также подсказали на форуме (хотя опытные администраторы предостерегли, что такой скрипт может, однажды, обрушить систему, но я рискнул и пока сбоев не наблюдалось smile ).

Вот так, используя инструменты ОС Linux можно разгрузить Интернет-канал в дневное время суток, обновлять и устанавливать ПО на машины в сети когда вам это заблагорассудиться с репозитория, размеренного в вашей локальной сети.

Дополнительный материал:

Интересная статья? Поделитесь ей с друзьями!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Мы в соцсетях

  • RSS