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

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

Выполнение советов моим другимвопросЯ настроил свой локальный репозиторий RPM на Red Hat 8машине, разместил там свои частные пакеты и теперь могу устанавливать, обновлять и т. д.

Однако есть проблема: один пакет, который я добавил в свой личный репозиторий, на самом деле является измененной версией пакета, доступного в официальных репозиториях RedHat, и имеет то же имя. Так что yum searchили yum installвытащит пакет из официального зеркала, а не моего. Я пытался решить это с помощью, yum --repo=my_private_repo ...но это также попытается вытащить все зависимости измой_частный_репозиторийвместо официальных.

Как можно решить эту проблему? Может быть, лучшим вариантом будет переименовать пакет (тот, который я изменил и добавил в свой репозиторий), чтобы он не конфликтовал с официальным?

Буду признателен за любые советы!

решение1

Замена пакетов из EL baseos или appstream repos — сложная задача. Кошмарные проблемы с зависимостями могут возникнуть, когда вы заменяете то, что ожидал дистрибутив, чем-то другим. Это одна из причин, по которой сообщество EL не любит определенныерепозитории третьих лиц.

Найдите репозиторий, который делает разумные вещи, и проверьте, что он делает со своими пакетами.ВМСявляется примером. Все это должно быть верным, чтобы быть безопасным:

Большинство пакетов IUS являются безопасными заменяющими пакетами. Это термин, который мы используем для описания пакетов со следующими свойствами.

  • Заменяет функциональность стандартного пакета.
  • Для предотвращения непреднамеренных обновлений используется другое название, отличное от имени стандартного пакета.
  • Укажите стандартное имя пакета, чтобы удовлетворить зависимости других пакетов.
  • Конфликт с пакетом акций.
  • Не допускается устаревание каких-либо стандартных пакетов.

Так, например, вместо просто "haproxy" вы можете установить"haproxy22". Это имя предоставляется только IUS, но оно заменяет имя appstream:

Name:           haproxy22

Provides:       haproxy = %{version}-%{release}
Provides:       haproxy%{?_isa} = %{version}-%{release}
Conflicts:      haproxy < %{version}-%{release}

Обратите внимание, выделатьхотите, чтобы rpm конфликтовал со стандартным пакетом, поэтому dnf не будет его рассматривать.

Эта схема требует более высокого номера версии, чем сток. Рассмотрите возможность значительного увеличения номера версии.

Смотрите такжеРуководство по упаковке Fedoraза ресурсы.

Связанный контент