Свой репозиторий — различия между версиями
Строка 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 и повторно запустите команду создания (обновления) метаданных.