How to create local yum repository on centos 7 / rhel 7 using dvd

Использование прокси для организации локального репозитория

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

  • на какой-либо клиентской машине в обычном порядке запрашивается какой-либо пакет для установки/обновления через компьютер-сервер;
  • запрошенный пакет скачивается сервером, сохраняется в специально отведённом хранилище-кеше и далее становится доступным всем остальным клиентам;
  • в качестве распространителя пакетов клиентам выступает веб-сервер Apache, поэтому его установка обязательна.

Итак, для начала необходимо установить всё необходимое, т. е. веб-сервер и саму утилиту кеширования пакетов:

$ sudo apt-get install apache2 apt-cacher

При установке apt-cacher будет показан диалог настройки, в котором можно настроить нужное поведение утилиты, например задать автозапуск и работу в режиме демона. Также эти и некоторые другие важные настройки можно сделать (например с помощью редактора nano) в конфигурационном файле . Для включения автозапуска apt-cacher нужно установить параметр AUTOSTART в значение «1»:

$ sudo nano /etc/default/apt-cacher
. . .
# Set to 1 to run apt-cacher as a standalone daemon, set to 0 if you are going
# to run apt-cacher from /etc/inetd or in CGI mode (deprecated). Alternatively,
# invoking "dpkg-reconfigure apt-cacher" should do the work for you.
#
AUTOSTART=1
. . .

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

$ sudo nano /etc/apt-cacher/apt-cacher.conf
. . .
## Uncomment and set the IP range ##
allowed_hosts = 192.168.1.105 - 192.168.1.125
#denied_hosts =
. . .

Как можно видеть, просто указывается диапазон нужных IP-адресов. После сохранения сделанных настроек необходимо перезапустить веб-сервер Apache:

$ sudo service apache2 restart

Или:

$ sudo systemctl restart apache2

Теперь необходимо указать клиентам, куда им нужно обращаться для установки пакетов и обновлений. Для этого на клиентских машинах нужно создать файл с помощью того же редактора nano:

$ sudo nano /etc/apt/apt.conf.d/01proxy

И добавить в него строку со следующей инструкцией:

Acquire::http::Proxy "http://192.168.1.100:3142";

Здесь в качестве адреса сервера, на котором установлен и работает apt-cacher указывается 192.168.1.100. Конечно, это может быть любой другой адрес, настроенный для этого сервера.

Теперь можно проверить работу локального репозитория (а точнее удалённого, но доступного через прокси), выполнив команду обновления данных о доступных пакетах:

$ sudo apt-get update

Шаг 4: Тестирование локального репозитория

11. На этом этапе вы должны запустить очистку временных файлов, хранящихся в репозиториях, с помощью следующей команды.

# yum clean all ИЛИ # dnf clean all

12. Затем убедитесь, что созданные репозитории отображаются в списке включенных репозиториев.

# dnf repolist ИЛИ # dnf repolist -v #shows более подробная информация

Проверьте локальный репозиторий в RHEL 8

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

# dnf install git

Установить пакет из локального репозитория Yum

Если посмотреть на вывод вышеуказанной команды, пакет git устанавливается из репозитория LocalRepo_AppStream, как показано на скриншоте. Это доказывает, что локальные репозитории включены и работают нормально.

Настройка веб-сервера

Репо­зи­то­рий для загруз­ки и уста­нов­ки паке­тов пред­став­ля­ет из себя хра­ни­ли­ще фай­лов, доступ к кото­рым осу­ществ­ля­ет­ся по http про­то­ко­лу. Для это­го нам пона­до­бить­ся раз­вер­нуть веб-сервер.

В каче­стве послед­не­го мы будем исполь­зо­вать nginx. Для его уста­нов­ки, уста­нав­ли­ва­ем репо­зи­то­рий epel:

yum install epel-release

После ста­вим сам nginx:

yum install nginx

Раз­ре­ша­ем запуск веб-сервера:

systemctl enable nginx

Запус­ка­ем его:

systemctl start nginx

Откры­ва­ем бра­у­зер и пере­хо­дим по адре­су http://<IP-адрес сер­ве­ра> — мы долж­ны уви­деть при­вет­ствие NGINX:

Как работают репозитории пакетов в системах Linux?

Разработчики для поддержки своих дистрибутивов и комфортной работы пользователей снабжают системы управления пакетами (СУП) специальными ссылками. Они указывают на удалённые сервера, на которых хранятся самые актуальные и протестированные разработчиками пакеты ПО для данного дистрибутива. Благодаря этим ссылкам СУП «знает» когда и откуда загрузить и установить обновления пакетов. Эти ссылки могут указывать как на удалённый ресурс, так и на локальный. Во втором случае это может быть как другой компьютер в локальной сети, так и локальный накопитель и/или даже, если постараться — оптический привод.

Сами эти ссылки хранятся в файле sources.list, который в Ubuntu расположен по адресуt. Сама ссылка (для Ubuntu) выглядит примерно так:

deb http://ru.archive.ubuntu.com/ubuntu/ bionic universe

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

deb https://repos.codelite.org/ubuntu/ bionic universe

Это репозиторий, созданный разработчиком среды разработки CodeLite, специально для Ubuntu. И эта ссылка была добавлена в файл sources.list уже вручную самим пользователем-администратором компьютера. После чего становится возможной автоматическая установка актуальных и стабильных версий пакетов CodeLite, а также их обновление. А вот так может выглядеть ссылка на репозиторий, хранимый на оптическом носителе:

deb cdrom:/ bionic main multiverse restricted universe

Как видно, ключевым словом, определяющим протокол доступа является значение, следующее после «deb». Для оптического носителя это «cdrom», а для доступа по сети — «https».
Получается, что источники репозиториев можно дополнять по собственному усмотрению, предварительно организовав соответствующим образом хранилище пакетов.

Установка и настройка nginx

Опубликовать репозиторий можно с помощью веб сервера apache2 или naginx. Я для этой цели использовал nginx.

Для начала установим этот веб сервер:

# apt install nginx

После установки настроим, а именно укажем корневой путь “/var/spool/apt-mirror/mirror/download.proxmox.com/debian/” и в блок “location /” добавим опцию “autoindex on”:

# nano /etc/nginx/sites-enabled/default
root /var/spool/apt-mirror/mirror/download.proxmox.com/debian/;
location / {
                try_files $uri $uri/ =404;
                autoindex on;

Теперь перезапустим nginx:

# service nginx restart

И можем зайти в репозиторий с помощью web браузера:

Осталось только настроить сервера PVE и PBS, чтобы они обновлялись не с официального репозитория, а с локального зеркала. Для этого в sources.list на этих северах напишем следующее:

# nano /etc/apt/sources.list.d/pve-no-subscription.list
deb  http://xxx.xx.xx.xx/pve buster pve-no-subscription

# nano /etc/apt/sources.list.d/pbs-no-subscription.list
deb  http://xxx.xx.xx.xx/pbs buster pbs-no-subscription

Спасибо за внимание!

Сводка

Имя статьи
Linux, apt-mirror + nginx. Локальный репозиторий

Описание
Утилита apt-mirror используется для создания локального зеркала репозитория Linux. Локальный репозиторий синхронизируется с официальными репозиториями

Yandex mirror для CentOS

mirror.yandex.ru — сайт компании Яндекс, зеркало репозитариев популярных дистрибутивов Linux, FreeBSD и других проектов, в том числе CentOS. Работает по протоколам HTTP, FTP и rsync.

На зеркале CentOS можно скачать дистрибутивы всех актуальных на текущий момент версий, а это версии 5, 6 и 7. Зеркало можно использовать в качестве источников стандартных репозиториев системы — base, updates, extras, centosplus.

Можно использовать, что я неоднократно делал, yandex mirror для сетевой установки CentOS. Путь к установочному образу: http://mirror.yandex.ru/centos/7/os/x86_64/images/

На этом у меня все по теме работы с репозиториями.

Yum-plugin-priorities (yum-priorities)

Еще один способ защитить вашу систему от обновления из репозитория CentOSPlus является использование плагина priorities. Это рекомендуемый метод. Следуйте инструкциям, приведенным в сылке и установите плагин. Отредактируйте файл /etc/yum.conf добавив строку:

plugins=1

Установите приоритеты в /etc/yum.repos.d/CentOS-Base.repo так:

exclude=foo barpriority=1
exclude=foo barpriority=1
enable=1priority=2

Это сделает репозиториии и с более высоким приоритетом чем , поэтому обновлятся будут только те пакеты из CentOSPlus, которые были исключены из основных репозиториев строкой exclude=. Используя плагин priorities позволяет пропустить настройку includepkgs= для секции в Сentos-Base.repo.

Полезные плагины yum

Для чего нужны плагины в yum? Как и везде, упрощают нашу работу.

Некоторые популярные плагины и их описание:

yum-plugin-fastestmirror – плагин служащий для измерения скорости зеркал и предоставления самого быстрого для установки пакетов.

yum-plugin-security — плагин которые предоставляет список обновлений относящихся только к безопасности системы.

yum-plugin-keys — позволяет работать с ключами keys, keys-info, keys-data, keys-remove

Директория где хранятся все плагины /etc/yum/

yum-plugin-versionlock – позволяет блокировать обновление указанных пакетов

Чтобы вывести список доступных плагинов yum, выполните:

======================================================================= N/S matched: yum-plugin =======================================================================
PackageKit-yum-plugin.x86_64 : Tell PackageKit to check for updates when yum exits
fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits
kabi-yum-plugins.noarch : The CentOS Linux kernel ABI yum plugin
yum-plugin-aliases.noarch : Yum plugin to enable aliases filters
yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages
yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating
yum-plugin-copr.noarch : Yum plugin to add copr command
yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist
yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data
yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates
yum-plugin-keys.noarch : Yum plugin to deal with signing keys
yum-plugin-list-data.noarch : Yum plugin to list aggregate package data
yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages
yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages
yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues
yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on
yum-plugin-pre-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on
yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos
yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories.
yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages
yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal
yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db
yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages
yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories
yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option
yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version
yum-plugin-verify.noarch : Yum plugin to add verify command, and options
yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated

Вы можете установить выбранный плагин командой yum install, как и любой другой пакет:

Чтобы заблокировать обновление пакета через плагин, выполните:

Вывести список заблокировнных пакетов:

Убрать пакет из заблокированных:

Если вам в какой-то момент времени не нужно использовать определенный плагин, вы его можете отключить, добавив префикс при вызове yum:

Или же отключить вообще все плагины, установленные в системе:

Другие популярные репозитории пакетов для CentOS

MariaDB – как можно догадаться из названия, это репозиторий в котором содержатся пакеты MariaDB. Репозиторий cоздан разработчиками MariaDB, поддерживается и обновляется постоянно.

Чтобы установить данный репозиторий в систему, нужно создать для него repo файл с содержимым:

name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Nginx – аналогично предыдущему репозиторию, несет в себе пакеты связанные с httpd-сервером nginx.

И подключение данного репозитория, похоже на подключение репозитория MariaDB. Создаем создаем .repo файл и помещаем туда данную информацию:

name=nginx stable repo
baseurl=http://nginx.org/packages/CentOS/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

Данного списка репозиториев хватит для настройки так называемого LAMP, с установленным в качестве front-end сервера nginx-ом.

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

Webtatic – данный репозиторий поддерживается ограниченным количеством специалистов, в основном это Andy Thompson, в нем содержаться пакеты относящиеся к php, но менее популярный, чем Remi, и я догадываюсь почему. На момент написания статьи, последняя версия php в этом репозитории была 7.2.

mod_php71w.x86_64 7.1.31-1.w7 webtatic
mod_php72w.x86_64 7.2.21-1.w7 webtatic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
php72w-tidy.x86_64 7.2.21-1.w7 webtatic
php72w-xml.x86_64 7.2.21-1.w7 webtatic
php72w-xmlrpc.x86_64 7.2.21-1.w7 webtatic

Чтобы подключить данный репозиторий, нужно установить rpm пакет:

MySQL – ну и пожалуй я напомню о mysql. Данный репозиторий не поставил вместе с популярными, так как на мой взгляд mysql как сервер БД отошел на второй план и в основном на сервера устанавливается MariaDB. НО если кто-то желает установить именно mysql (например, для Bitrix нужен именно mysql), вы можеже подключить этот репозиторий себе. Например если хотите подключить mysql 5.7:

Скачиваем пакет:

И устанавливаем его:

После установки, у меня появилась возможность установить mysql:

В этой статье мы показали особенности управления репозиториями в CentOS и рассмотрели полезные репозитории.

6 ответов

Конкретные действия, которые должны выполняться при установке или удалении пакета RPM, включаются в пакете RPM непосредственно в разделах предварительной установки, после установки, предварительного деинсталляции и после удаления.

Для каждого установленного пакета RPM вы можете запросить базу данных RPM для точных сценариев, которые входят в команду rpm :

Запуск этой команды в пакете ядра для CentOS 6 возвращается среди других:

new-kernel-package – инструмент для сценария установки ядра

После анализа скриптов в Fedora я понимаю, что путь к файлу конфигурации читается из символической ссылки /etc/grub2.conf . Правильная строка grub2-mkconfig :

В Fedora я использую:

, поскольку выполнение без опции readlink возвращает относительный путь и grub2-mkconfig выдает сообщение об ошибке:

Я использую параметр -e , так что если символическая ссылка не разрешает существующий файл, вывод выводится на stdout, поэтому я что-то пошло не так.

На странице man для readlink:

Символьная ссылка /etc/grub2.cfg указывает на версию BIOS. В системе UEFI используйте:

Вы также можете использовать:

отредактируйте файл grub с помощью vi или vim , сохранить изменения и закрыть редактор с помощью: wq!

Это то, что вам нужно запустить для обновления grub в RedHat или CentOS:

Скрипт update-grub в Ubuntu на самом деле просто заглушка для grub-mkconfig , и это могут быть адаптированы к другим дистрибутивам без большой боли. Здесь он полностью:

Это эффективно делает то, что рекомендуется в викторине CentOS и в другие ответы здесь – единственная разница в том, что вам нужно изменить grub на grub2 в команде и пути вывода.

In Ubuntu (and I guess in Debian too) there is a system script named update-grub which automatically executes grub-mkconfig -o with the correct path for the grub configuration file.

Is there any similar command for Red Hat based distributions?

If not, how do the system knows where is the grub configuration file to update when a new kernel version is installed?

Создание репозитория

Настроим свой репозиторий, в котором будут храниться установочные пакеты. Также настроим их автоматическую синхронизацию с репозиторием CentOS.

Устанавливаем необходимые утилиты для работы с локальным репозиторием:

yum install createrepo yum-utils

Создаем каталоги для репозитория:

mkdir -p /usr/share/nginx/html/repos/7/{os,updates}/x86_64

* в данном примере будет создан каталог /usr/share/nginx/html/repos/7, а внутри него каталоги os (стандартный репозиторий для установка пакетов) и updates (обновления), в каждой из которых каталог x86_64 (для систем x64 архитектуры x86).

Синхронизируем наш будущий репозиторий с источником пакетов, например, с зеркалом от Яндекса:

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/7/os/x86_64/ /usr/share/nginx/html/repos/7/os/x86_64/

… ждем …

После синхронизируем updates:

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/7/updates/x86_64/ /usr/share/nginx/html/repos/7/updates/x86_64/

Создаем репозитории:

createrepo -v /usr/share/nginx/html/repos/7/os/x86_64

createrepo -v /usr/share/nginx/html/repos/7/updates/x86_64

А также разрешаем группы:

createrepo /usr/share/nginx/html/repos/7/os/x86_64 -g /usr/share/nginx/html/repos/7/os/x86_64/repodata/repomd.xml

createrepo /usr/share/nginx/html/repos/7/updates/x86_64 -g /usr/share/nginx/html/repos/updates/os/x86_64/repodata/repomd.xml

* в некоторых репозиториях файл repomd.xml может иметь другое название, например, comps.xml.

Настраиваем nginx:

vi /etc/nginx/conf.d/default.conf

    …
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        autoindex on;
    }
    …

* в данном примере мы добавили autoindex on для удобства — это позволит просматривать содержимое репозитория в браузере.

Перезапускаем nginx:

systemctl restart nginx

Открываем браузер и переходим по адресу http://<IP-адрес сервера>/repos/7 — мы должны увидеть список os и updates. Походив по нему, мы найдем список скачанных пакетов.

Использование yum через прокси

Yum для работы с репозиториями программ использует протокол HTTP/1.1. Если ваш Linux сервер имеет доступ в интернет только через HTTP прокси сервер, вы можете указать имя прокси сервера в конфигурационном файле в секции :

proxy=http://proxyservername:3128

Если прокси-сервер требует авторизацию, добавьте строки:

proxy_proxy_username=user

proxy_password=pass

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

yum clean all && yum search nginx

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

Общая информация

В одной из статей уже рассматривалось использование пакетного менеджера Yum в операционной системе CentOS. Сейчас же разберемся с репозиториями, которые являются неотъемлемой частью инфраструктуры управления пакетами.

Репозиторий представляет собой централизованное хранилище скомпилированных и готовых к установке программ с метаданными об их совместимости и взаимозависимостях. Репозитории бывают:

  • официальные — поддерживаемые разработчиками дистрибутива ОС. Содержат пакеты, являющиеся частью операционной системы, а также дополнительные программы, тесно в нее интегрированные;
  • коммерческие — поддерживаемые разработчиками стороннего платного программного обеспечения. Доступ к таким репозиториям обычно требует наличия подписки;
  • открытые — поддерживаемые энтузиастами, сообществом или разработчиками свободно-распространяемого ПО. Открыты для всех желающих.

Так как перечень программного обеспечения, включенного в состав операционной системы ограничен, и разработчики не всегда успевают вовремя тестировать и включать в свои репозитории свежие версии сторонних проектов (веб-серверы, почтовые серверы, СУБД и т.д.), зачастую приходится подключать дополнительные репозитории.

Есть два основных способа подключения. Наиболее предпочтительный — установка RPM-пакета репозитория. В ходе этой операции скачиваются и создаются все необходимые файлы, после чего новый репозиторий появится в списке подключенных (команда yum repolist). Другой способ — создать файл настроек репозитория самостоятельно в каталоге /etc/yum.repos.d/. Файл должен иметь расширение repo и содержать следующие параметры:

Описание параметров:

— краткое имя репозитория;name — полное имя репозитория;baseurl — ссылка на репозиторий (может быть заменена параметром mirrorlist или metalink — ссылка на список региональных зеркал репозитория);gpgcheck — проводить ли проверку цифровой подписи пакетов (если значение параметра 1 — проводить, если 0 — не проводить);gpgkey — местоположение открытого ключа репозитория, с помощью которого производится проверка подписи;enabled — используется ли репозиторий при поиске и установке пакетов (1 — используется, 0 — репозиторий отключен).

Все необходимые значения для указанных параметров обычно можно найти на веб-сайте соответствующего репозитория.

Добавление репозитория REMI

Установка репозитория REMI происходит в несколько этапов. Для выполнения команды, у вас должна быть установлена утилита wget.

yum install wget -y
# Скачиваем rpm-пакет, при помощи утилиты wget
wget http://remi.mirror.ate.info/enterprise/remi-release-7.rpm

2016-09-22 04:48:28 (5.43 MB/s) - ‘remi-release-7.rpm’ saved [8147/8147]
# файл пакета, ‘remi-release-7.rpm’ будет сохранен в ту директорию 
# в которой вы находитесь в данный момент, если вы root, то /root/remi-release-7.rpm

# Устанавливаем репозиторий:
rpm -Uvh remi-release-7.rpm

Существуют и другие репозитории, процесс их установки будет таким же. Все нужные ссылки, как правило, указываются на страничке проектов, так же как и инструкции по установке.

Yandex mirror для CentOS

mirror.yandex.ru — сайт компании Яндекс, зеркало репозитариев популярных дистрибутивов Linux, FreeBSD и других проектов, в том числе CentOS. Работает по протоколам HTTP, FTP и rsync.

На зеркале CentOS можно скачать дистрибутивы всех актуальных на текущий момент версий, а это версии 5, 6 и 7. Зеркало можно использовать в качестве источников стандартных репозиториев системы — base, updates, extras, centosplus.

Можно использовать, что я неоднократно делал, yandex mirror для сетевой установки CentOS. Путь к установочному образу: http://mirror.yandex.ru/centos/7/os/x86_64/images/

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курс «SRE практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «SRE практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и Linux. Обучение длится 3 месяц, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

На курсе вы узнаете как:

  • Внедрить SRE практики в своей организации
  • Управлять надежностью, доступностью и эффективностью сервисов
  • Управлять изменениями
  • Осуществлять мониторинг
  • Реагировать на инциденты и производительность
  • Работать со следующим технологическим стеком: Linux, AWS, GCP, Kubernetes, Ansible, Terraform, Prometheus, Go, Python.

Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Конфигурационные файлы репозиториев (*.repo)

Все конфигурационные файлы репозиториев расположены в директории /etc/yum.repos.d/. В конфигурационных файл *.repo. Типовой конфигурационный файл репозитория содержит следующие параметры:

  • name — имя репозитория;
  • baseurl — ссылка на репозиторий (может быть ftp://address, http://address, https://address или file://address для локального репозитория);
  • enabled – нужно ли использовать данный репозиторий: 1 – репозиторий подключен, 0 – отключен;
  • async – использовать ли параллельную загрузку пакетов (auto/on/off);
  • gpgcheck – нужно ли выполнять проверку GPG (1 – проверять);
  • gpgkey — ссылка на GPG ключ;
  • exclude — список исключенных пакетов;
  • includepkgs — список включенных пакетов;
  • mirrorlist – список зеркал репозитория.

В минимальном случае repo файл может выглядеть так:

name=rep_name
baseurl=rep_url

Например, после подключения репозитория REMII, в директории репозиториев появится несколько конфигурационных файлов Remi (remi-*.repo).

Как вы видите, Remi имеет отдельный конфигурационный файл для каждой версии php. Вам нужно включить нужную вам версию в конфигурационном файле, например у меня на сервере будет стоять версия php 7.3, для этого я включил именно этот репозиторий (в файле remi-php73.repo указал enabled=1):

Вы можете подключит репозиторий вручную, для этого нужно создать конфигурационный файл репозитория в директории /etc/yum.repos.d/. Подключим репозиторий MaruaDB.

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

name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Шаг 5. Настройка локального репозитория Yum на клиентских компьютерах

14. Теперь на клиентских машинах RHEL 8 добавьте свои локальные репозитории в конфигурацию YUM.

# vi /etc/yum.repos.d/local-rhel8.repo

Скопируйте и вставьте приведенную ниже конфигурацию в файл. Обязательно замените на IP-адрес или домен вашего сервера.

имя = LocalRepo_BaseOS включено = 1 gpgcheck = 0 baseurl = http: //192.168.0.106 имя = LocalRepo_AppStream включено = 1 gpgcheck = 0 baseurl = http: //192.168.0.106

Сохраните файл и начните использовать локальные зеркала YUM.

15. Затем выполните следующую команду, чтобы увидеть ваши локальные репозитории в списке доступных репозиториев YUM на клиентских компьютерах.

# dnf repolist

Проверьте локальный репозиторий в клиенте RHEL 8

Это все! Мы показали, как создать локальный репозиторий YUM / DNF в RHEL 8, используя установочный DVD или файл ISO. Не забудьте связаться с нами через форму обратной связи ниже для любых вопросов или комментариев.

Epel Repo

Для Epel репозитория схема добавления похожа, кроме метода синхронизации — синхронизация с yandex выполняется с помощью wget.

Создаем отдельную ветку каталога:

mkdir -p /usr/share/nginx/html/repos/epel/7/x86_64

Синхронизируем пакеты:

wget -r -nH -np -nc -R index.html* https://mirror.yandex.ru/epel/7/x86_64/ -P /usr/share/nginx/html/repos/

Создаем репозитории:

createrepo -v /usr/share/nginx/html/repos/epel/7/x86_64

При настройке клиента создаем файл с настройкой репозитория:

vi /etc/yum.repos.d/local-epel.repo

name=Local Extra Packages for Enterprise Linux 7
baseurl=http://192.168.0.10/epel/$releasever/$basearch/
enabled=1
gpgcheck=0

По такому же принципу мы можем добавить любой репозиторий, например, rpmforge, remi, nginx и другие.

Управление репозиториями в CentOS

Управление пакетами и репозиториями осуществляет утилита YUM (Yellowdog Updater, Modified) — менеджер RPM-пакетов, использующийся в дистрибутивах: RHEL, SentOS, Scientific Linux. В его задачи входит: поиск, установка, удаление пакетов, обновление системы.

Процесс установки пакетов происходит после выполнения команды — yum install packagename. После ввода команды менеджер пакетов проверяет наличие конфигурационных файлов «*.repo», эти файлы содержат информацию о репозиториях и хранятся в директории /etc/yum.repos.d. Во время проверки YUM получает всю необходимую информацию, указывающую откуда загружать пакет и какие зависимости имеют к нему отношение. После чего происходит установка пакета.

Конфигурационные файлы репозиториев содержат следующие параметры:

  • name — имя репозитория, может быть любым.
  • baseurl — ссылка указывающая на репозиторий. Может быть вида: ftp://link, http://link, https://link, если репозиторий размещен в сети интернет, или file://path, если репозиторий размещен локально.
  • enabled — указывает на активацию репозитория при выполнении обновления. Может иметь следующие значения, 1 — если подключен, 0 — если отключен.
  • gpgcheck — включить или выключить проверку сигнатуры GPG. Может иметь следующие значения, 1 — проверять, 0- не проверять.
  • gpgkey — ссылка на ключ GPG.
  • exclude — список исключаемых пакетов.
  • includepkgs — список включаемых пакетов.
  • mirrorlist — вместо ссылки на конкретный адрес репозитория, может использоваться ссылка на список адресов из которых будет выбран нужный адрес.

Подключение репозиториев в CentOS

Добавить репозиторий в CentOS можно несколькими способами. Можно создать файл «.repo» в директории /etc/yum.repos.d или установить rpm-пакет с информацией о репозитории. Если rpm-пакет отсутствует, то добавлять приходится ручками, создавая конф. файл репозитория.

Для просмотра списка активных репозиториев выполняют команду — yum repolist

yum repolist

# Выхлоп:
repo id                                 repo name                                                              status
base/7/x86_64                           CentOS-7 - Base                                                         9,007
epel/x86_64                             Extra Packages for Enterprise Linux 7 - x86_64                         10,580
extras/7/x86_64                         CentOS-7 - Extras                                                         390
updates/7/x86_64                        CentOS-7 - Updates                                                      2,469
repolist: 22,446

# repo id - id репозитория
# repo name - имя репозитория
# status - количество пакетов

Удаление репозиториев в CentOS

Для удаления репозиториев в системе должен быть установлен пакет yum-utils.

yum install yum-utils -y

Допустим мы хотим удалить из системы репозитории REMI и ELRepo, для этого надо узнать «repo id» при помощи команды yum repolist.

yum repolist

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.yandex.ru
 * elrepo: elrepo.0m3n.net
 * epel: mirror.23media.de
 * extras: mirror.yandex.ru
 * remi-safe: mirror.23media.de
 * updates: mirror.yandex.ru
repo id                           repo name                                                                    status
base/7/x86_64                     CentOS-7 - Base                                                               9,007
elrepo                            ELRepo.org Community Enterprise Linux Repository - el7                          162
epel/x86_64                       Extra Packages for Enterprise Linux 7 - x86_64                               10,580
extras/7/x86_64                   CentOS-7 - Extras                                                               390
remi-safe                         Safe Remi's RPM repository for Enterprise Linux 7 - x86_64                    1,144
updates/7/x86_64                  CentOS-7 - Updates                                                            2,469
repolist: 23,752

Удалим указанные репозитории.

yum-config-manager --disable remi-safe --disable elrepo

Команда скорее отключает указанные репозитории, чем удаляет их. Она выставляет значение параметра enabled равным 0. Файлы репозиториев «.repo» останутся на месте. Если выполнить команду yum repolist, то репозитории будут недоступны.

yum repolist

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.yandex.ru
 * epel: fedora-mirror01.rbc.ru
 * extras: mirror.yandex.ru
 * updates: mirror.yandex.ru
repo id                                 repo name                                                              status
base/7/x86_64                           CentOS-7 - Base                                                         9,007
epel/x86_64                             Extra Packages for Enterprise Linux 7 - x86_64                         10,580
extras/7/x86_64                         CentOS-7 - Extras                                                         390
updates/7/x86_64                        CentOS-7 - Updates                                                      2,469
repolist: 22,446

Теперь нужно обновить кэш YUM.

yum clean all
yum makecache

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

# Переходим в каталог /etc/yum.repos.d
cd /etc/yum.repos.d

# Удаляем файлы
rm -f elrepo.repo remi-php70.repo remi-php71.repo remi-safe.repo remi.repo

Репозитории

Команда yum/dnf использует репозитории для своей работы

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

Примеры команд для управления репозиториями

1. Просмотр репозиториев.

Список включенных репозиториев:

yum repolist

Список включенных и отключенных репозиториев:

yum repolist all

Также мы можем получить подробное описание для каждого включенного репозитория:

yum repolist -v

Список отключенных репозиториев можно посмотреть отдельно командой:

yum repolist disabled

2. Добавление репозитория командой.

Для добавления репозитория мы можем воспользоваться командой yum-config-manager, для этого сначала нужно установить yum-utils:

yum install yum-utils

Теперь вводим:

yum-config-manager —add-repo <репозиторий>

Например:

yum-config-manager —add-repo https://yum.mariadb.org/10.5/centos8-amd64 

* на основе ссылки https://yum.mariadb.org/10.5/centos8-amd64 будет добавлен репозиторий.

3. Добавление репозитория через файл.

Также мы можем создать конфигурационный файл с описанием репозитория. Все файлы находятся в каталоге /etc/yum.repos.d. Например, создадим файл с добавлением репозитория mariadb:

vi /etc/yum.repos.d/mariadb.repo

name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos8-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1

* где:

  • name — произвольное имя репозитория.
  • baseurl — путь, по которому система может забирать пакеты из репозитория.
  • gpgkey — путь до открытого gpg-ключа. Нужен для проверки цифровой подписи пакетов.
  • gpgcheck — нужно ли проверять цифровую подпись пакетов.
  • enabled — опция включает или выключает репозиторий.

4. Временное включение и отключение репозиториев во время операций (на примере репозитория EPEL).

Отключить во время обновления:

yum update —disablerepo=epel

Включить во время обновления:

yum update —enablerepo=epel

Отключить во время установки:

yum install —disablerepo=epel

Включить во время установки:

yum install —enablerepo=epel

5. Постоянное отключение/включение репозиториев.

Мы можем отключить наш репозиторий командой:

yum-config-manager —disable <имя репозитория>

* для выполнения данной команды мы должны установить в систему пакет yum-utils.

Например:

yum-config-manager —disable yum.mariadb.org_10.5_centos8-amd64

Разрешить репозиторий можно той же командой с опцией —enable:

yum-config-manager —enable yum.mariadb.org_10.5_centos8-amd64

Также мы можем выполнить настройку в конфигурационном файле, например:

vi /etc/yum.repos.d/mariadb.repo

Находим:

enabled=1

… и меняем на:

enabled=0

* в данном примере 1 разрешает репозиторий, а 0 запрещает.

6. Настройка опций.

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

yum-config-manager —save —setopt=<имя репозитория>.<имя опции>=<значение>

Например:

yum-config-manager —save —setopt=mariadb.module_hotfixes=1

Обслуживание

1. Удалить кэш для списков пакетов в репозиториях, а также загруженные исходники для пакетов:

yum clean —enablerepo=* all

Также мы можем удалить кэш только для определенных репозиториев, например:

yum clean all —disablerepo=»*» —enablerepo=»epel,nginx-thirdparty»

* обязательно, сначала должен следовать disablerepo, после enablerepo.

2. Сформировать кэш списков пакетов в репозиториях:

yum makecache

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: