我在本地服务器上托管 2 个存储库(myrepo-main 和 AppStream)。myrepo-main 托管 mysql 商业 rpm 和其他一些软件包。
除非我禁用 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
我已经从客户端的 AppStream 存储库中排除了 mysql 包。
[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/
我还尝试使用 reposync 创建没有元数据的 AppStream,删除所有 mysql rpm 并使用 createrepo_c 生成元数据。这让我可以看到 myrepo 中的 mysql 包,但其他包在生成的元数据方面存在问题,无法安装。
我们的 CentOS6 主机有类似的配置,可以正常工作。我怀疑这是 dnf 或 AppStream 的一些功能。