Свой репозиторий — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
Строка 12: Строка 12:
 
Приведенные команды следует выполнять от непривилегированного пользователя (не root); команды, которые необходимо выполнять с правами root, написаны через sudo.
 
Приведенные команды следует выполнять от непривилегированного пользователя (не root); команды, которые необходимо выполнять с правами root, написаны через sudo.
  
Подразумевается, что сервером, на котором размещается репозиторий, является система на базе ROSA Fresh/Chrome 12 (rosa2021.1) и новее.
+
Подразумевается, что сервером, на котором размещается репозиторий, является система на базе ROSA Fresh/Chrome 12 (rosa2021.1) и новее, однако его можно разместить и на других ОС.
  
 
= Зеркалирование репозиториев =
 
= Зеркалирование репозиториев =
Строка 26: Строка 26:
 
Запустите синхронизацию. В приведенном ниже примере исключаются каталоги большого веса с debuginfo и SRPM, которые в большинстве случаев не нужны.
 
Запустите синхронизацию. В приведенном ниже примере исключаются каталоги большого веса с debuginfo и SRPM, которые в большинстве случаев не нужны.
 
<pre>
 
<pre>
rsync -av --progress \
+
sudo rsync \
 +
  -av --progress \
 
   --exclude SRPMS \
 
   --exclude SRPMS \
 
   --exclude 'debug_*'  
 
   --exclude 'debug_*'  
Строка 33: Строка 34:
 
   rsync://mirror.rosalab.ru/rosa/rosa2021.1/repository/{x86_64,i686} /srv/mirror/
 
   rsync://mirror.rosalab.ru/rosa/rosa2021.1/repository/{x86_64,i686} /srv/mirror/
 
</pre>
 
</pre>
 +
 +
= Создание своего репозитория =
 +
 +
Если имеются сторонние RPM-пакеты, то из них можно сделать репозиторий. Необходимо установить утилиту для создания метаданных репозитория:
 +
sudo dnf install createrepo_c
 +
 +
Создайте каталог для репозитория:
 +
sudo mkdir -p /srv/repo/x86_64
 +
 +
Положите RPM-пакеты в каталог /srv/repo/x86_64.
 +
 +
Создайте/обновите метаданные репозитория:
 +
sudo createrepo_c /srv/repo/x86_64
 +
 +
Для обновления репозитория удалите и/или добавьте RPM-пакеты в каталоге /srv/repo/x86_64 и повторно запустите команду создания (обновления) метаданных.
  
 
[[Категория:ROSA Server|ROSA Server]]
 
[[Категория:ROSA Server|ROSA Server]]

Версия 19:22, 28 июня 2022

Введение и терминология

Эта статья описывает создание своего репозитория пакетов для операционных систем ROSA Fresh/Chrome версии 12 и новее, а также Nickel, Cobalt и ROSA Virtualization.

Репозиторий пакетов — хранилище RPM-файлов с дополнительными файлами-метаданными.

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

  • размещения используемых сторонних пакетов для их установки и обновления из единого места,
  • создания зеркала (точной копии) официальных репозиториев внутри локальной сети предприятия.

Приведенные команды следует выполнять от непривилегированного пользователя (не root); команды, которые необходимо выполнять с правами root, написаны через sudo.

Подразумевается, что сервером, на котором размещается репозиторий, является система на базе ROSA Fresh/Chrome 12 (rosa2021.1) и новее, однако его можно разместить и на других ОС.

Зеркалирование репозиториев

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

Для зеркалирования предлагается использовать утилиту rsync. Если она не установлена, выполните:

sudo dnf install rsync

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

sudo mkdir -p /srv/mirror/x86_64 /srv/mirror/i686

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

sudo rsync \
  -av --progress \
  --exclude SRPMS \
  --exclude 'debug_*' 
  --exclude ___REMOVED \
  --exclude '*-rpm-backup' \
  rsync://mirror.rosalab.ru/rosa/rosa2021.1/repository/{x86_64,i686} /srv/mirror/

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

Если имеются сторонние RPM-пакеты, то из них можно сделать репозиторий. Необходимо установить утилиту для создания метаданных репозитория:

sudo dnf install createrepo_c

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

sudo mkdir -p /srv/repo/x86_64

Положите RPM-пакеты в каталог /srv/repo/x86_64.

Создайте/обновите метаданные репозитория:

sudo createrepo_c /srv/repo/x86_64

Для обновления репозитория удалите и/или добавьте RPM-пакеты в каталоге /srv/repo/x86_64 и повторно запустите команду создания (обновления) метаданных.