Установка, обновление и удаление (по необходимости) установленных программ – ключевые обязанности в повседневной жизни системного администратора. Когда машина подключена к Интернету, эти задачи можно легко выполнить, используя систему управления пакетами, такую как aptitude (или apt-get), yum или zypper, в зависимости от выбранного вами дистрибутива, как объяснено в Части 9 – Управление пакетами в Linux серии LFCE (Сертифицированный инженер Linux-фонда). Вы также можете загружать автономные файлы .deb или .rpm и устанавливать их с помощью dpkg или rpm соответственно.

Введение в программу сертификации Фонда Linux
Однако, когда машина не имеет доступа к всемирной паутине, требуются другие методы. Почему бы кто-то захотел сделать это? Причины варьируются от экономии интернет-трафика (тем самым избегая нескольких одновременных подключений к внешнему миру) до обеспечения безопасности пакетов, скомпилированных из исходного кода локально, а также возможности предоставления пакетов, которые по юридическим причинам (например, программное обеспечение, ограниченное в некоторых странах) не могут быть включены в официальные репозитории.
Именно здесь вступают в игру сетевые репозитории, которые являются центральной темой этой статьи.
Наша тестовая среда
Network Repository Server: CentOS 7 [enp0s3: 192.168.0.17] - dev1 Client Machine: CentOS 6.6 [eth0: 192.168.0.18] - dev2
Настройка сервера сетевого репозитория на CentOS 7
В качестве первого шага мы будем обрабатывать установку и настройку сервера репозитория на CentOS 7 [IP-адрес 192.168.0.17] и машины CentOS 6.6 в качестве клиента. Настройка для openSUSE практически идентична.
Для CentOS 7 следуйте статьям ниже, которые объясняют пошаговые инструкции по установке CentOS 7 и настройке статического IP-адреса.
Что касается Ubuntu, на этом сайте есть отличная статья, которая объясняет пошагово, как настроить собственный частный репозиторий.
Наши первые выбор будет связан с тем, как клиенты будут получать доступ к серверу репозитория – FTP и HTTP являются наиболее используемыми. Мы выберем последний, так как установка Apache была рассмотрена в Части 1 – Установка Apache этой серии LFCE. Это также позволит нам отображать список пакетов с помощью веб-браузера.
Далее нам необходимо создать каталоги для хранения пакетов .rpm. Мы создадим подкаталоги внутри /var/www/html/repos соответственно. Для нашего удобства мы также можем захотеть создать другие подкаталоги для размещения пакетов для различных версий каждого дистрибутива (конечно, мы всегда можем добавить столько каталогов, сколько потребуется позже) и даже различных архитектур.
Настройка репозитория
Важным моментом, который следует учитывать при настройке собственного репозитория, является то, что вам понадобится значительное количество доступного дискового пространства (~20 ГБ). Если у вас его нет, измените размер файловой системы, где вы планируете хранить содержимое репозитория, или, что еще лучше, добавьте дополнительное выделенное устройство хранения для размещения репозитория.
С этим сказанным, мы начнем с создания каталогов, которые нам понадобятся для размещения репозитория:
# mkdir -p /var/www/html/repos/centos/6/6
После того, как мы создали структуру каталогов для нашего сервера репозитория, мы инициализируем в /var/www/html/repos/centos/6/6 базу данных, которая отслеживает пакеты и их соответствующие зависимости с использованием createrepo.
Установите createrepo, если вы этого еще не сделали:
# yum update && yum install createrepo
Затем инициализируйте базу данных,
# createrepo /var/www/html/repos/centos/6/6

Обновление репозитория
Предполагая, что сервер репозитория имеет доступ к Интернету, мы загрузим онлайн-репозиторий, чтобы получить последние обновления пакетов. Если это не так, вы все равно можете скопировать все содержимое каталога Packages с установочного DVD CentOS 6.6.
В этом руководстве мы будем предполагать первый случай. Чтобы оптимизировать скорость загрузки, мы выберем зеркало CentOS 6.6 из местоположения, близкого к нам. Перейдите на Зеркало загрузки CentOS и выберите то, которое ближе к вашему местоположению (в моем случае – Аргентина):

Затем перейдите в каталог os внутри выделенной ссылки, а затем выберите соответствующую архитектуру. После этого скопируйте ссылку из адресной строки и загрузите содержимое в выделенный каталог на сервере репозитория:

# rsync -avz rsync://centos.ar.host-engine.com/6.6/os/x86_64/ /var/www/html/repos/centos/6/6/
В случае, если выбранное зеркало оказывается недоступным по какой-то причине, вернитесь и выберите другое. Ничего страшного.
Теперь пришло время, когда вы, возможно, захотите расслабиться и посмотреть серию вашего любимого телешоу, потому что создание зеркала онлайн-репозитория может занять довольно много времени.
После завершения загрузки вы можете проверить использование дискового пространства с помощью:
# du -sch /var/www/html/repos/centos/6/6/*

Наконец, обновите базу данных репозитория.
# createrepo --update /var/www/html/repos/centos/6/6
Возможно, вам также захочется запустить веб-браузер и перейти в каталог repos/centos/6/6, чтобы убедиться, что вы видите содержимое:

И вы готовы к началу – теперь пришло время настроить клиента.
Source:
https://www.tecmint.com/setup-yum-repository-in-centos-7/