Dnf не видит пакеты в локально размещенном репозитории - PullRequest
1 голос
/ 28 февраля 2020

Я размещаю 2 репозитория (myrepo-main и AppStream) на локальном сервере. Myrepo-main hosts mysql коммерческие rpms и некоторые другие пакеты.
Если я не отключил репозиторий AppStream, большинство пакетов mysql не отображаются.

$ sudo dnf list | grep ^mysql
mysql-commercial-libs-compat.x86_64                  5.7.29-1.1.el7                                    myrepo-main

Отключение репо AppStream позволяет чтобы увидеть mysql пакеты в репо.

$ sudo dnf --disablerepo=AppStream --enablerepo=myrepo* list | grep ^mysql
mysql-commercial-client.x86_64                     5.7.29-1.1.el7                          myrepo-main
mysql-commercial-common.x86_64                     5.7.29-1.1.el7                          myrepo-main
mysql-commercial-libs.x86_64                       5.7.29-1.1.el7                          myrepo-main
mysql-commercial-libs-compat.x86_64                5.7.29-1.1.el7                          myrepo-main
mysql-commercial-server.x86_64                     5.7.29-1.1.el7                          myrepo-main

Другие пакеты в репо видны в myrepo без отключения репо AppStream

$ sudo dnf  list | grep myrepo
jre1.8.x86_64                                        1.8.0_211-fcs                                     @myrepo-main
tomcat.x86_64                                        8.5.41-2                                          @myrepo-main
mysql-commercial-libs-compat.x86_64                  5.7.29-1.1.el7                                    myrepo-main

Я исключил mysql пакеты из репозитория AppStream на клиенте.

[AppStream]
name=FW-CentOS-$releasever - AppStream
baseurl=http://192.168.20.230/repos/x86/8/AppStream/AppStream
gpgcheck=1
enabled=1
gpgkey=http://192.168.20.230/repos/x86/8/RPM-GPG-KEY-FWRepo
priority=98
exclude=mysql-server,mysql-common,mysql-devel,mysql-errmsg,mysql-libs,mysql-test,mysql,mariadb,mariadb-server

[myrepo-main]
name=MyRepo Main
baseurl=http://192.168.20.230/repos/x86/8/fairwarning/fwpackages/
enabled=1
gpgcheck=1
gpgkey=http://192.168.20.230/repos/x86/8/fairwarning/fwpackages/RPM-GPG-KEY-FWRepo
priority=1

Я пытался:

dnf clean all
rm -rf /var/cache/dnf/

Я также пытался использовать reposyn c для создания AppStream без метаданных, удаляя все mysql rpms и генерация метаданных с использованием createrepo_ c. Это позволило мне увидеть пакеты mysql в myrepo, но другие пакеты имели проблемы с сгенерированными метаданными и не устанавливали.

У нас есть аналогичная конфигурация для наших хостов CentOS6, которая работает без проблем. Я подозреваю, что это какая-то особенность dnf или AppStream.

1 Ответ

0 голосов
/ 28 февраля 2020

От ответ пользователя EOhm :

Это необходимо, насколько я понимаю, из-за новой системы модулей, представленной в EL8. Пакеты pgdg фильтруются по умолчанию, если dnf обнаруживает, что они предоставляют вещи, которые также находятся в модулях, но сами не упакованы как соответствующие модули.

Таким образом, существует несколько решений:

  • Как указано, добавьте module_hotfixes=true в определение репо, что позволяет DNF обновлять или устанавливать пакеты, также предоставляемые в виде модулей (даже если они еще не установлены)
  • Просто используйте dnf --disablerepo AppStream в качестве OP, что может быть утомительным
  • Отключить модуль, вызывающий проблему с dnf module disable xxx (здесь я не знаю название проблемного c модуля)
...