我们有一个使用 createrepo 创建的自定义 yum 存储库,它托管在 Amazon S3 存储桶中。我们使用yum-s3-iam 插件按照说明进行配置在这篇博文中. 允许我们的 ec2 实例访问受保护的 URL。
但是,我们似乎无法让 yum 尊重目标服务器上存储库中的软件包。运行 yum repolist 时,我可以看到找到了存储库,但存储库中的两个软件包都被排除了。
[ec2-user@lysithea ~]$ sudo yum clean all && sudo yum repolist
Loaded plugins: priorities, s3iam, security, update-motd, upgrade-helper
Cleaning repos: amzn-main amzn-updates epel custom-main
Cleaning up Everything
Loaded plugins: priorities, s3iam, security, update-motd, upgrade-helper
amzn-main | 2.1 kB 00:00
amzn-main/primary_db | 2.1 MB 00:00
amzn-updates | 2.3 kB 00:00
amzn-updates/primary_db | 229 kB 00:00
epel/metalink | 5.9 kB 00:00
epel | 4.2 kB 00:00
epel/primary_db | 4.2 MB 00:00
514 packages excluded due to repository priority protections
repo id repo name status
amzn-main amzn-main-Base 3,245
amzn-updates amzn-updates-Base 254
epel Extra P... 6,639+514
custom-main custom-main 0+2
请注意,我收到了关于 514 个包被排除在“epel”之外的原因的通知,但没有收到关于“custom-main”的任何通知。
以下是 /etc/yum.repo.d/custom-main.repo 文件的内容:
[custom-main]
name=custom-main
baseurl=http://<redacted>.s3.amazonaws.com/noarch
enabled=1
s3_enabled=1
gpgcheck=0
以下是存储库布局(使用 s3cmd 与 s3 存储桶同步):
HaximusPrime:yum_repo ajbrown$ tree .
.
└── noarch
├── campaign-galleries-0.8.4-01.noarch.rpm
├── repodata
│ ├── filelists.sqlite.bz2
│ ├── filelists.xml.gz
│ ├── other.sqlite.bz2
│ ├── other.xml.gz
│ ├── primary.sqlite.bz2
│ ├── primary.xml.gz
│ └── repomd.xml
└── splunkforwarder-5.0.2-149561-linux-2.6-x86_64.rpm
我们已经验证服务器可以访问存储库,并且插件配置正确。事实上,我已将同一 RPM 的几个不同版本添加到存储库,并观察到 yum repo list 输出相应变化(0+3、0+4 等)。
我曾尝试使用不同的架构重新打包我们的专有 RPM,但似乎没有任何区别。
有什么想法吗?有什么方法可以强制 yum 告诉我为什么未包含软件包?
答案1
该priorities
插件排除了重复的软件包,因为 yum 已经从优先级较高的存储库中选择了这些软件包。因此 yum 已经告诉您未包含这些软件包的原因。要测试优先级是否与问题有关,请尝试在priorities
禁用插件的情况下运行 yum:sudo yum --disableplugin=priorities clean all
如果成功,则考虑为当前尚未设置优先级的自定义存储库设置更高的优先级。