Создание репозитория CentOS/RHEL — различия между версиями

Материал из VAAL-WIKI
Перейти к: навигация, поиск
 
(не показана одна промежуточная версия этого же участника)
Строка 1: Строка 1:
В данной статье описывается процесс создания локального репозитория CentOS/RHEL.
+
В данной статье описывается процесс создания локального и сетевого репозиториев CentOS/RHEL.
<p style="text-align:center"><b >Создание репозитория CentOS/RHEL.</b ></p>
+
<p style="text-align:center"><b >Создание локального репозитория CentOS/RHEL.</b ></p>
 
Для создания локального репозитория можно использовать два варианта:
 
Для создания локального репозитория можно использовать два варианта:
  
Строка 10: Строка 10:
  
 
* Под пользователем root узнаём путь примонтированного к системе установочного образа:
 
* Под пользователем root узнаём путь примонтированного к системе установочного образа:
<p style="text-align:left"><b > '''''#blkid''''' </b ></p>
+
<p style="text-align:left"><b > '''''# blkid''''' </b ></p>
 
[[File:Blkid iso.PNG|center]]
 
[[File:Blkid iso.PNG|center]]
 
<br />
 
<br />
Строка 62: Строка 62:
 
<p style="text-align:left"><b > '''''# yum update''''' </b ></p>
 
<p style="text-align:left"><b > '''''# yum update''''' </b ></p>
 
<p style="text-align:left">Теперь можно инсталлировать пакет используя ''yum''.</p>
 
<p style="text-align:left">Теперь можно инсталлировать пакет используя ''yum''.</p>
 +
 +
<p style="text-align:center"><b >Создание сетевого репозитория CentOS/RHEL.</b ></p>
 +
Для создания сетевого репозитория можно использовать два варианта:
 +
 +
# Настроить сетевой репозиторий по протоколу http;
 +
# Настроить сетевой репозиторий по протоколу ftp.
 +
<br />
 +
Опишем последовательность действий развёртывания сетевого репозитория по протоколу http.
 +
* Под пользователем root узнаём путь примонтированного к системе установочного образа
 +
<p style="text-align:left"><b > '''''# blkid''''' </b ></p>
 +
* Создаём  iso-образ в корневой директории, используя утилиту ''dd'':
 +
<p style="text-align:left"><b > '''''# dd  if=/dev/sr0 of=/repo.iso''''' </b ></p>
 +
* Создаём и настраиваем временный локальный репозиторий:
 +
<p style="text-align:left"><b > '''''# mount -o loop /repo.iso /mnt''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# cd /etc/yum.repos.d && touch tmprepolocal.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "[Centos]"  >>  /etc/yum.repos.d/tmprepolocal.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "name=ISO"  >>  /etc/yum.repos.d/tmprepolocal.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "baseurl=file:///mnt"  >> /etc/yum.repos.d/tmprepolocal.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "enabled=1"  >>  /etc/yum.repos.d/tmprepolocal.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "gpgcheck=1"  >>  /etc/yum.repos.d/tmprepolocal.repo''''' </b ></p>
 +
* Под пользователем root устанавливаем web-сервер Apache:
 +
<p style="text-align:left"><b > '''''# yum install -y httpd''''' </b ></p>
 +
* Создаём директорию INST в /var/www/html/:
 +
<p style="text-align:left"><b > '''''# mkdir -p /var/www/html/INST''''' </b ></p>
 +
* Копируем всё содержимое директории /mnt в /var/www/html/INST:
 +
<p style="text-align:left"><b > '''''# cp /mnt/* /var/www/html/INST/''''' </b ></p>
 +
* Назначаем для директории /var/www/html/ владельца пользователя apache:
 +
<p style="text-align:left"><b > '''''# chown apache:apache -R /var/www/html/''''' </b ></p>
 +
* Удаляем tmprepolocal.repo:
 +
<p style="text-align:left"><b > '''''# rm -rf /etc/yum.repos.d/tmprepolocal.repo''''' </b ></p>
 +
* Отмонтируем /dev/sr0 из /mnt:
 +
<p style="text-align:left"><b > '''''# umount /mnt''''' </b ></p>
 +
* Создаём и настраиваем сетевой репозиторий:
 +
<p style="text-align:left"><b > '''''# cd /etc/yum.repos.d && touch net.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "[Centos]"  >>  /etc/yum.repos.d/net.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "name=ISO"  >>  /etc/yum.repos.d/net.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "baseurl=http://<span style="color:red"><ip-адрес или hostname></span>/INST/"  >> /etc/yum.repos.d/net.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "enabled=1"  >>  /etc/yum.repos.d/net.repo''''' </b ></p>
 +
<p style="text-align:left"><b > '''''# echo "gpgcheck=1"  >>  /etc/yum.repos.d/net.repo''''' </b ></p>
 +
* Проверяем доступность пакетов для установки следующей командой:
 +
<p style="text-align:left"><b > '''''# yum list''''' </b ></p>
 +
<p style="text-align:left">Теперь можно инсталлировать пакет используя ''yum''. Для использования сетевого репозитория на других серверах достаточно скопировать на них файл net.repo в /etc/yum.repos.d/. Важно чтобы к сетевому репозиторию был доступ по сети, а также настроены правила для firewall.</p>
 +
<br />
 +
Настройка репозитория ftp проводится аналогично настройке репозитория http и рассматриваться не будет.

Текущая версия на 09:46, 6 апреля 2017

В данной статье описывается процесс создания локального и сетевого репозиториев CentOS/RHEL.

Создание локального репозитория CentOS/RHEL.

Для создания локального репозитория можно использовать два варианта:

  1. Создать iso-образ установочного диска CentOS/RHEL, затем примонтировать данный образ в директорию и настроить файл локального репозитория;
  2. Создать директорию, в которую будут скопированы rpm-пакеты с установочного диска, настроить файл локального репозитория.


Опишем последовательность действий развёртывания локального репозитория для этих вариантов.

Вариант 1)

  • Под пользователем root узнаём путь примонтированного к системе установочного образа:

# blkid

Blkid iso.PNG


Вывод blkid, представленный на рисунке выше, показал, что установочный iso-образ CentOS 7 примонтирован в устройство /dev/sr0.

Следует принять во внимание, что для образа с RHEL данная строка будет иметь другой вид!

  • Создаём iso-образ в корневой директории, используя утилиту dd:

# dd if=/dev/sr0 of=/repo.iso

  • Создаём директорию repository в /usr/share:

# mkdir -p /usr/share/repository/

  • Отредактируем файл /etc/fstab, внеся в него информацию для мон-тирования образа:

# echo "/repo.iso /usr/share/repository auto loop 0 0 " >> /etc/fstab

Перезагрузим хост и проверим, что содержимое iso-образа располагается /usr/share/repository/

  • Предварительно создаём резервные копии файлов, а затем удаляем содержимое директории /etc/yum.repos.d:

# rm -rf /etc/yum.repos.d/*

  • В директории /etc/yum.repos.d создадим файл repolocal.repo:

# cd /etc/yum.repos.d && touch repolocal.repo

  • Отредактируем файл repolocal.repo, используя следующие команды:

# echo "[Centos]" >> /etc/yum.repos.d/repolocal.repo

# echo "name=ISO" >> /etc/yum.repos.d/repolocal.repo

# echo "baseurl=file:///usr/share/repository" >> /etc/yum.repos.d/repolocal.repo

# echo "enabled=1" >> /etc/yum.repos.d/repolocal.repo

# echo "gpgcheck=0" >> /etc/yum.repos.d/repolocal.repo

  • Проверяем доступность пакетов для установки следующей командой:

# yum list

Теперь можно инсталлировать пакет используя yum.


Вариант 2)

  • Создаём директорию repository в /usr/share:

# mkdir -p /usr/share/repository/

  • Из примонтированного установочного iso-образа скопируем все rpm-пакеты в /usr/share/repository/:

# cp /mnt/Packages/* /usr/share/repository/

  • Предварительно создаём резервные копии файлов, а затем удаляем содержимое директории /etc/yum.repos.d:

# rm -rf /etc/yum.repos.d/*

  • В директории /etc/yum.repos.d создадим файл repolocal.repo:

# cd /etc/yum.repos.d && touch repolocal.repo

  • Отредактируем файл repolocal.repo, используя следующие команды:

# echo "[Centos]" >> /etc/yum.repos.d/repolocal.repo

# echo "name=ISO" >> /etc/yum.repos.d/repolocal.repo

# echo "baseurl=file:///usr/share/repository" >> /etc/yum.repos.d/repolocal.repo

# echo "enabled=1" >> /etc/yum.repos.d/repolocal.repo

# echo "gpgcheck=0" >> /etc/yum.repos.d/repolocal.repo

  • В окне терминала выполняем следующие команды:

# cd /usr/share/repository

# rpm -i deltarpm-3.5-*

# rpm -i python-deltarpm-3.5-*

# rpm -Uvh createrepo-*

# createrepo .

  • Переходим в каталог /etc/yum.repos.d и обновляем информацию о репозиториях, для этого выполняем следующие команды:

# cd /etc/yum.repos.d

# yum clean all

# yum update

Теперь можно инсталлировать пакет используя yum.

Создание сетевого репозитория CentOS/RHEL.

Для создания сетевого репозитория можно использовать два варианта:

  1. Настроить сетевой репозиторий по протоколу http;
  2. Настроить сетевой репозиторий по протоколу ftp.


Опишем последовательность действий развёртывания сетевого репозитория по протоколу http.

  • Под пользователем root узнаём путь примонтированного к системе установочного образа

# blkid

  • Создаём iso-образ в корневой директории, используя утилиту dd:

# dd if=/dev/sr0 of=/repo.iso

  • Создаём и настраиваем временный локальный репозиторий:

# mount -o loop /repo.iso /mnt

# cd /etc/yum.repos.d && touch tmprepolocal.repo

# echo "[Centos]" >> /etc/yum.repos.d/tmprepolocal.repo

# echo "name=ISO" >> /etc/yum.repos.d/tmprepolocal.repo

# echo "baseurl=file:///mnt" >> /etc/yum.repos.d/tmprepolocal.repo

# echo "enabled=1" >> /etc/yum.repos.d/tmprepolocal.repo

# echo "gpgcheck=1" >> /etc/yum.repos.d/tmprepolocal.repo

  • Под пользователем root устанавливаем web-сервер Apache:

# yum install -y httpd

  • Создаём директорию INST в /var/www/html/:

# mkdir -p /var/www/html/INST

  • Копируем всё содержимое директории /mnt в /var/www/html/INST:

# cp /mnt/* /var/www/html/INST/

  • Назначаем для директории /var/www/html/ владельца пользователя apache:

# chown apache:apache -R /var/www/html/

  • Удаляем tmprepolocal.repo:

# rm -rf /etc/yum.repos.d/tmprepolocal.repo

  • Отмонтируем /dev/sr0 из /mnt:

# umount /mnt

  • Создаём и настраиваем сетевой репозиторий:

# cd /etc/yum.repos.d && touch net.repo

# echo "[Centos]" >> /etc/yum.repos.d/net.repo

# echo "name=ISO" >> /etc/yum.repos.d/net.repo

# echo "baseurl=http://<ip-адрес или hostname>/INST/" >> /etc/yum.repos.d/net.repo

# echo "enabled=1" >> /etc/yum.repos.d/net.repo

# echo "gpgcheck=1" >> /etc/yum.repos.d/net.repo

  • Проверяем доступность пакетов для установки следующей командой:

# yum list

Теперь можно инсталлировать пакет используя yum. Для использования сетевого репозитория на других серверах достаточно скопировать на них файл net.repo в /etc/yum.repos.d/. Важно чтобы к сетевому репозиторию был доступ по сети, а также настроены правила для firewall.


Настройка репозитория ftp проводится аналогично настройке репозитория http и рассматриваться не будет.