Примеры практического использования YUM

Аватар пользователя Mimino

yum

Примеры практического использования YUM

Итак, всенародные выборы Чем лучше создавать свой репозитарий? закончились перевесом сторонников "ручной работы" - примерно 43% против 35%.

Хотя число участников голосования невелико, но общая тенденция ощутима - все норовят оперировать командной строкой и конфигами, игнорируя всякие "ускорители" ручного труда.

Для таких победителей выборов администрация Клуба подготовила примеры использования YUM с использованием документации.

Примеры отличаются предельной простотой, наглядностью и базируются на операционной системе ASPLinux v.11.2.

1. Для чего это надо?


По сравнению с установкой и обновлением пакетов с официальных FTP/HTTP-сайтов работа с локальным репозитарием происходит в сотни-тысячи раз быстрее из-за высокой скорости обмена. Благодаря устойчивости такого канала обмена исключаются сбои и прерывания процессов управления пакетами.

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

2. Использование локального репозитария на одиночном компьютере


2.1. Постановка задачи

Создание локального репозитария, с которого локальный компьютер будет обновляться со своего жесткого диска.

Локальный репозитарий, в свою очередь, будет периодически обновляться с официального репозитария фирмы ASPLinux по заданному расписанию.

2.2. Необходимые компоненты

Нам понадобятся следующие компоненты:
createrepo - утилита для создания репозитария
rsync - утилита автоматической синхронизации файлов
cron - демон-шедулер и
компьютер с достаточным дисковым пространством
Все из этого, кроме компьютера, находится в дистрибутиве.

В качестве каталога для репозитария будем использовать каталог /home/soft/asplinux11.2

2.3. Реализация

2.3.1. Создаем каталог /home/soft/asplinux11.2

2.3.2. В котором, в свою очередь, создаем подкаталоги

/RPMS - для базовых файлов дистрибутива и

/updates - для файлов обновлений.

В итоге получаем:

/home/soft/asplinux11.2/RPMS

/home/soft/asplinux11.2/updates

2.3.3. В каталог /home/soft/asplinux11.2/RPMS помещаем базовые файлы дистрибутива, которые можно взять на зеркалах компании ASPLinux, например, на ftp://ftp.asplinux.ru/pub/i386/11.2/asplinux/ASPLinux/RPMS/ либо просто скопировать их с компакт-дисков дистрибутива: /media/cdrecorder/ASPLinux/RPMS

2.3.4. Проводим индексацию базовых файлов дистрибутива, для чего запускаем команду

createrepo /home/soft/asplinux11.2/RPMS

Выполненная команда создаст в этом каталоге подкаталог /repodata с метаданными дистрибутивных RPM-пакетов.

Поскольку оригинальные пакеты дистрибутива производителем в дальнейшем не модифицируются, данную команду достаточно выполнить один раз.

2.3.5. Подготавливаем планировщик cron таким образом, чтобы он давал команду утилите rsync ежедневно проверять и закачивать с официального сайта обновления.

Для этого создаем в каталоге /etc/cron.daily запускаемый файл updates.sh, в который помещаем строчку:

rsync -avH  --delete  --exclude=SRPMS  rsуnc://ftp.asplinux.ru/ASPLinux/i386/updates/11.2/ /home/soft/asplinux11.2/updates/

Благодаря такой команде один раз в день в наш локальный репозитарий /home/www/soft/asplinux11.2/updates/ будут закачиваться обновления (без исходников).

2.3.6. Теперь настраиваем наш компьютер таким образом, чтобы он обращался за RPM-пакетами не на далекий сайт, а на свой локальный репозитарий.

Для этого корректируем строки baseurl файлов настроек, лежащие в каталоге /etc/yum.repos.d, следующим образом:

- для базовых файлов asplinux.base.repo:

baseurl=file:///home/soft/asplinux11.2/RPMS/

- для файлов обновлений asplinux.updates.repo:

baseurl=file:///home/soft/asplinux/11.2/updates

2.4. Итоги

Итак, теперь ваш компьютер подключен к локальному репозиторию кратчайшим и быстрым путем, и вы можете использовать утилиту yum либо pirut ("Установка и удаление программ") для быстрой установки и обновления необходимых программных пакетов.

3. Использование репозитария по протоколу FTP


3.1. Постановка задачи

Создание репозитария на выделенном компьютере, с которого сетевые компьютеры будет обновляться по протоколу FTP.

Репозитарий, в свою очередь, будет периодически обновляться с официального репозитария компании ASPLinux по заданному расписанию.

Данный вариант идентичен тому, который использует компания ASPLinux для предоставения своего репозитария.

3.2. Необходимые компоненты

Нам понадобятся следующие компоненты:
vsftpd - защищенный FTP-сервер
createrepo - утилита для создания репозитария
rsync - утилита автоматической синхронизации файлов
cron - демон-шедулер
выделенный компьютер в качестве сервера с достаточным дисковым пространством
Все из этого, кроме компьютера, находится в дистрибутиве. Пусть наш сервер имеет сетевой адрес, например, 192.168.1.5

В качестве каталога для репозитария будем использовать каталог /home/www/soft/asplinux11.2

3.3. Реализация

3.3.1. Первым делом организуем FTP-сервер.
Для этого будем использовать vsftpd

Почему именно он? vsftpd сервер является быстрым FTP-сервером с богатым набором возможностей, включая SSL-шифрование, IРv6, синхронизацию по пропускной способности, PAM-интеграцию, поддержку виртуальных пользователей, виртуальных IP и возможность конфигурирование для каждого пользователя/для каждого IP-адреса. На серьезных Internet-проектах обычно используют vsftpd.

Но главная его особенность - высокий уровень защищенности, тогда как другие сервера, например, WU-FTP, являются дырявыми, что создаст угрозу взлома вашего сервера.

Настройка FTP-сервера для нашей задачи будет минимальной, тем, кому понадобятся остальные возможности vsftpd, может обратиться к статье Настройка VsFTP с локальной аутентификацией.

3.3.2. Итак, создаем на сервере каталог для хранения всех файлов, которые нужно опубликовать на FTP.
Пусть это будет /home/www/

3.3.3. Создаем каталог для файлов дистрибутива ASPLinux:

/home/www/soft/asplinux11.2

3.3.4. В котором, в свою очередь, создаем подкаталоги

/RPMS - для базовых файлов дистрибутива и

/updates - для файлов обновлений.

В итоге получаем:

/home/www/soft/asplinux11.2/RPMS

/home/www/soft/asplinux11.2/updates

3.3.5. Корректируем строку файла /etc/passwd на путь, где находятся файлы, которые нужно опубликовать на FTP:

ftp:x:14:50:FTP User:/home/www/:sbin/nologin

3.3.6. В каталог/home/soft/asplinux11.2/RPMS помещаем базовые файли дистрибутива, которые можно взять на зеркалах компании ASPLinux, например, на ftp://ftp.asplinux.ru/pub/i386/11.2/asplinux/ASPLinux/RPMS/

либо просто скопировать их с компакт-дисков дистрибутива /media/cdrecorder/ASPLinux/RPMS

3.3.7. Задаем необходимые права доступа для каталогов и файлов FTP, для чего заходим в каталог /home/www/soft/asplinux11.2 и выполняем команды:

find . -type d | xargs chmod 755 - для каталогов
find . -type f | xargs chmod 644 - для файлов

3.3.8. Проводим индексацию базовых файлов дистрибутива, для чего выполняем команду

createrepo /home/www/soft/asplinux11.2/RPMS

Выполненная команда создаст в этом каталоге подкаталог /repodata с метаданными дистрибутивных RPM-пакетов.

Поскольку оригинальные пакеты дистрибутива производителем в дальнейшем не модифицируются, данную команду достаточно выполнить один раз. Причем, индексацию лучше проводить даже не под рутом, а под тем пользователем, на которого будет настроена работа FTP-сервера - сразу получатся необходимые права файлов.

3.3.9. Подготавливаем планировщик cron таким образом, чтобы он давал команду утилите rsync ежедневно проверять и закачивать с официального сайта обновления.

Для этого создаем в каталоге /etc/cron.daily запускаемый файл updates.sh, в который помещаем строчку:

rsync -avH  --delete  --exclude=SRPMS  rsуnc://ftp.asplinux.ru/ASPLinux/i386/updates/11.2/ /home/www/soft/asplinux11.2/updates/

Благодаря такой команде один раз в день в наш локальный репозитарий /home/www/soft/asplinux11.2/updates/ будут закачиваться обновления (без исходников).

3.3.10. Теперь настраиваем наши сетевые компьютеры таким образом, чтобы они обращался за RPM-пакетами на наш FTP-сервер.

Для этого корректируем строки baseurl файлов настроек, лежащие в каталоге /etc/yum.repos.d, следующим образом:

- для базовых файлов asplinux.base.repo:

baseurl=ftp://192.168.1.5/pub/soft/asplinux11.2/RPMS/

- для файлов обновлений asplinux.updates.repo:

baseurl=ftp://192.168.1.5/soft/asplinux/11.2/updates/ 

3.4. Итоги

Итак, теперь ваши сетевые компьютеры будут обращаться к репозитарию на вашем FTP-сервере, что обеспечит высокую скорость обновления, и вы можете использовать утилиту yum либо pirut ("Установка и удаление программ") для быстрой установки и обновления необходимых программных пакетов.

4. Авторы:


Mimino, Tigro

Продолжение следует...

Your rating: Нет Average: 9 (11 votes)
RSS-материал