LINUX.ORG.RU

Как правильно создать локальный репозиторий для конкретного пакета?

 , ,


0

1

Я использую Rocky Linux 8.5, есть необходимость создать локальный репозиторий для нескольких пакетов с их зависимостями.

Я загружаю пакет ipa-client со всеми зависимостями из репозиториев BaseOS и AppStream

yumdownloader --installroot=/tmp/empty --resolve ipa-client --destdir ~/.

После чего собираю пакеты в репозиторий через createrepo_c и modifyrepo_c

Когда я подключаю данный репозиторий вместо удалённых, при попытке установить ipa-client возникают ошибки с зависимостями пакетов, которые не появляются, если я использую AppStream и BaseOS.

Error: 
 Problem: problem with installed package authselect-compat-1.2.2-3.el8.x86_64
  - package authselect-compat-1.2.2-3.el8.x86_64 requires authselect(x86-64) = 1.2.2-3.el8, but none of the providers can be installed
  - cannot install both authselect-1.2.5-2.el8_7.x86_64 and authselect-1.2.2-3.el8.x86_64
  - package ipa-client-4.9.10-9.module+el8.7.0+1120+659f71b8.x86_64 requires authselect >= 1.2.5, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package authselect-1.2.2-3.el8.x86_64 is filtered out by modular filtering
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Так как AppStream включает в себя модульные пакеты(module), мне пришлось генерировать metadata для них, я использовал набор инструментов modulemd-tools, а конкретно repo2module с указанием плейсхолдеров в качестве name, stream, version.

Может ли это быть связано с некорректными названиями потоков у модулей? Чем я рискую, если буду устанавливать пакет с флагом --allowerasing или --nobest?


Когда я подключаю данный репозиторий вместо удалённых, при попытке установить ipa-client возникают ошибки с зависимостями пакетов, которые не появляются, если я использую AppStream и BaseOS.

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

sigurd ★★★★★
()
Ответ на: комментарий от sigurd

В таком случае другой вопрос - почему данная зависимость не скачивается после команды yumdownloader? Он же должен найти все зависимости и скачать их. Что может мешать ему скачать и этот пакет тоже?

Настройка приоритетов не вариант, в рабочем применении не будет доступа к интернету

SibVal
() автор топика
21 июля 2023 г.
Ответ на: комментарий от SibVal

На всякий случай оставлю здесь это: https://unix.stackexchange.com/questions/50642/download-all-dependencies-with-yumdownloader-even-if-already-installed/174485#174485

Если коротко, то yumdownloader не обеспечивает полноценное разрешение зависимостей и стопится на каком-то уровне, поэтому зависимости пришлось частично разрешать вручную.

SibVal
() автор топика