yum создаем локальный репозиторий

Устанавливаем утилиты:

# yum install createrepo yum-utils 

Смотрим подключенные репозитории:

# yum repolist
Загружены модули: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.colocall.net
 * elrepo: mirrors.colocall.net
 * epel: mirrors.colocall.net
 * extras: centos.colocall.net
 * remi-safe: mirrors.bytes.ua
 * updates: centos.colocall.net
 * webtatic: uk.repo.webtatic.com
Идентификатор репозитория                                репозиторий                                                                                состояние
base/7/x86_64                                            CentOS-7 - Base                                                                            10.019
ce_10.0                                                  ownCloud Server Version 10.0 (CentOS_7)                                                         2
elrepo                                                   ELRepo.org Community Enterprise Linux Repository - el7                                        114
epel/x86_64                                              Extra Packages for Enterprise Linux 7 - x86_64                                             13.297
extras/7/x86_64                                          CentOS-7 - Extras                                                                             419
ius/x86_64                                               IUS for Enterprise Linux 7 - x86_64                                                           589
remi-safe                                                Safe Remi's RPM repository for Enterprise Linux 7 - x86_64                                  3.483
updates/7/x86_64                                         CentOS-7 - Updates                                                                          2.233
webtatic/x86_64                                          Webtatic Repository EL7 - x86_64                                                              459
repolist: 30.615

Создаем директории для их локального хранения (всех или избранных):

# mkdir -p /var/www/html/repos/{base,ce_10.0,elrepo,epel,ius,remi-safe,webtatic,extras,updates}

Синхронизируем утилитой reposync:

# reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=remi-safe --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=epel --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=elrepo --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=ius --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=ce_10.0 --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=webtatic --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/

флаги в приведенном выше выводе:

  • -g — позволяет удалить пакеты, которые не поддаются проверке подписи GPG после загрузки.
  • -l — поддержка плагина yum.
  • -d — позволяет удалить локальные пакеты, которые больше не присутствуют в репозитории.
  • -m — позволяет загружать файлы comps.xml.
  • —repoid — указывает идентификатор репозитория.
  • —newest-only — указывает reposync, получить последнюю версию для каждого пакета в репозитории.
  • —download-metadata — позволяет загружать все метаданные, отличающиеся от дефолтных.
  • —download_path — указывает путь для загрузки пакетов.

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

# createrepo -g comps.xml /var/www/html/repos/base
# createrepo -g comps.xml /var/www/html/repos/extras
# createrepo -g comps.xml /var/www/html/repos/ius  
# createrepo -g comps.xml /var/www/html/repos/epel  
# createrepo -g comps.xml /var/www/html/repos/ce_10.0  
# createrepo -g comps.xml /var/www/html/repos/remi-safe 
# createrepo -g comps.xml /var/www/html/repos/elrepo 
# createrepo -g comps.xml /var/www/html/repos/webtatic 
# createrepo -g comps.xml /var/www/html/repos/updates

Создаем конфигурационный файл наших локальных репозиториев (не полный листинг):

# vi /etc/yum.repos.d/local-repos.repo
[local-base]
name=CentOS Base
baseurl=http://repo.server.com/repos/base/
gpgcheck=0
enabled=1

[local-ius]
name=CentOS IUS
baseurl=http://repo.server.com/repos/extras/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repo.server.com/repos/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repo.server.com/repos/updates/
gpgcheck=0
enabled=1

Для просмотра репозитория через web-браузер сменим пользователя на nginx:www-data:

# chown -R nginx:www-data /var/www/html/repos

Устанавливаем nginx/apache и прописываем блок конфигурации:

# vi /etc/nginx/sites-available/default

### REPOS ####
location /repos {
    autoindex            on;     # включить автоматическое индексирование содержания (Включить просмотр каталогов/файлов 
    autoindex_exact_size off;    # Полезно, если вы хотите округлить размеры файлов в КБ, МБ, ГБ и т.д. (по умолчанию установлен в байтах)
    autoindex_localtime  on;     # показывать местное время создания файлов
}
##############
# nginx -t
# nginx -s reload

Проверяем набрав в браузере:

https://repo.server.com/repos/

На клиентских компьютерах CentOS нужно добавить локальные репозитории в конфигурацию:

# vim /etc/yum.repos.d/local-repos.repo
[local-base] 
name=CentOS Base 
baseurl=http://repo.server.com/repos/base/
gpgcheck=0 
enabled=1 

[local-ius] 
name=CentOS IUS 
baseurl=http://repo.server.com/repos/extras/ 
gpgcheck=0 
enabled=1 

[local-extras] 
name=CentOS Extras 
baseurl=http://repo.server.com/repos/extras/ 
gpgcheck=0 
enabled=1 

[local-updates] 
name=CentOS Updates 
baseurl=http://repo.server.com/repos/updates/ 
gpgcheck=0 
enabled=1

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

# yum repolist

Проверяем обновления, отключив все репозитории, кроме нашего нового [local-updates]:

# yum --disablerepo=* --enablerepo=local-update check-update

Настроим автоматическое обновление/синхронизацию локального репозитория:

# vi /etc/cron.daily/update-localrepos
#!/bin/bash

LOCAL_REPOS="base ius extras updates"

for REPO in ${LOCAL_REPOS}; do
    reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
    createrepo -g comps.xml /var/www/html/repos/$REPO/
done

Делаем файл исполняемым:

# chmod +x /etc/cron.daily/update-localrepos
image_pdfimage_print

Leave a Reply

Your email address will not be published. Required fields are marked *