Создание хранилища пакетов Redhat
Введение
Если ваш сервер Redhat не подключен к официальным репозиториям RHN, вам нужно будет настроить свой собственный частный репозиторий, который вы позже сможете использовать для установки пакетов. Процедура создания хранилища Redhat - довольно простая задача. В этой статье мы покажем вам, как создать локальный файловый репозиторий Redhat, а также удаленный HTTP-репозиторий.
Использование официального Redhat DVD в качестве хранилища
После установки по умолчанию и без регистрации вашего сервера в официальных репозиториях RHN у вас не останется шансов установить новые пакеты из репозитория redhat, поскольку в вашем списке репозиториев будет показано 0 записей:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repolist: 0
На данный момент проще всего подключить установочный DVD Redhat в качестве локального репозитория. Для этого сначала убедитесь, что ваш RHEL DVD смонтирован:
# mount | grep iso9660
/dev/sr0 on /media/RHEL_6.4 x86_64 Disc 1 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
Каталог, который нас больше всего интересует в данный момент, - это « /media/RHEL_6.4 x86_64 Disc 1 / repodata », так как это каталог, который содержит информацию обо всех пакетах, найденных на этом конкретном DVD-диске.
Далее нам нужно определить наш новый репозиторий, указывающий на « /media/RHEL_6.4 x86_64 Disc 1 / », создав запись репозитория в /etc/yum.repos.d/. Создайте новый файл с именем /etc/yum.repos.d/RHEL_6.4_Disc.repo с помощью редактора vi и вставьте следующий текст:
[RHEL_6.4_Disc]
name=RHEL_6.4_x86_64_Disc
baseurl="file:///media/RHEL_6.4 x86_64 Disc 1/"
gpgcheck=0
После создания файла ваш локальный репозиторий Redhat DVD должен быть готов к использованию:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id repo name status
RHEL_6.4_Disc RHEL_6.4_x86_64_Disc 3,648
repolist: 3,648
Создание локального файла Redhat репозитория
Обычно для начала работы достаточно иметь DVD-репозиторий Redhat, единственным недостатком является то, что вы не можете каким-либо образом изменять свой репозиторий и, следовательно, не можете вставлять в него новые / обновленные пакеты. Для решения этой проблемы мы можем создать локальный файловый репозиторий, расположенный где-то в файловой системе. Чтобы помочь нам с этим планом, мы будем использовать утилиту createrepo .
По умолчанию createrepo не может быть установлен в вашей системе:
# yum list installed | grep createrepo
#
Отсутствие вывода означает, что эти пакеты в настоящее время отсутствуют в вашей системе. Если вы следовали предыдущему разделу о том, как прикрепить официальный DVD RHEL в качестве репозитория вашей системы, то для установки пакета createrepo просто выполните:
# yum install createrepo
Приведенная выше команда установит утилиту createrepo вместе со всеми необходимыми условиями. Если вы еще не определили свой репозиторий, вы можете установить createrepo вручную:
Для использования установленного RedHat DVD сначала установите необходимые условия:
# rpm -hiv /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/deltarpm-* # rpm -hiv /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/python-deltarpm-*
с последующей установкой фактического пакета createrepo:
# rpm -hiv /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/createrepo-*
Если все прошло хорошо, вы должны увидеть пакет createrepo, установленный в вашей системе:
# yum list installed | grep createrepo createrepo.noarch 0.9.9-17.el6 installed
На этом этапе мы готовы создать свой собственный локальный файловый репозиторий Redhat. Создайте новый каталог с именем / rhel_repo:
# mkdir /rhel_repo
Затем скопируйте все пакеты с вашего смонтированного RHEL DVD в новый каталог:
# cp /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/* /rhel_repo/
Когда копирование будет завершено, выполните команду createrepo с единственным аргументом, которым является имя вашего нового локального каталога репозитория:
# createrepo /rhel_repo/
Spawning worker 0 with 3648 pkgs
Workers Finished
Gathering worker results
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
Вы также можете создавать репозиторий Redhat в любой Debian-подобной системе Linux, такой как Debian, Ubuntu или mint. Процедура та же, за исключением того, что установка утилиты createrepo будет такой: # apt-get install createrepo
В качестве последнего шага мы создадим новую запись репозитория yum:
# vi /etc/yum.repos.d/rhel_repo.repo
[rhel_repo]
name=RHEL_6.4_x86_64_Local
baseurl="file:///rhel_repo/"
gpgcheck=0
Ваш новый репозиторий теперь должен быть доступен:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel_repo | 2.9 kB 00:00 ...
rhel_repo/primary_db | 367 kB 00:00 ...
repo id repo name status
RHEL_6.4_Disc RHEL_6.4_x86_64_Disc 3,648
rhel_repo RHEL_6.4_x86_64_Local 3,648
Создание удаленного HTTP-репозитория Redhat
Если у вас есть несколько серверов Redhat, вы можете создать один репозиторий Redhat, доступный для всех других серверов в сети. Для этого вам понадобится веб-сервер apache. Подробная установка и настройка веб-сервера Apache выходит за рамки данного руководства, поэтому мы предполагаем, что ваш демон httpd (веб-сервер Apache) уже настроен. Чтобы сделать ваш новый репозиторий доступным через http, настройте свой apache с каталогом / rhel_repo /, созданным в предыдущем разделе, как корневой каталог документа или просто скопируйте весь каталог в: / var / www / html / (корневой каталог по умолчанию).
Затем создайте новую запись репозитория yum в своей клиентской системе, создав новый файл конфигурации репо:
vi /etc/yum.repos.d/rhel_http_repo.repo
со следующим содержимым, где мой хост - это IP-адрес или имя хоста вашего сервера хранилища Redhat:
[rhel_repo_http]
name=RHEL_6.4_x86_64_HTTP
baseurl="http://myhost/rhel_repo/"
gpgcheck=0
Подтвердите правильность вашего нового хранилища:
# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id repo name status
rhel_repo_http RHEL_6.4_x86_64_HTTP 3,648
repolist: 3,648
Вывод
Создание собственного репозитория пакетов дает вам больше возможностей для управления пакетами в вашей системе Redhat даже без платной подписки RHN. При использовании удаленного HTTP Redhat репозитория вы также можете настроить GPGCHECK как часть вашего репозитория, чтобы убедиться, что ни один из пакетов не был подделан до их установки.