如何配置yum使其不扫描Artifactory仓库baseurl下的子目录查找RPM包
解决方案
方案1:调整仓库端配置(推荐,永久生效)
该问题本质是yum仓库元数据(repodata)生成时默认递归扫描了所有子目录,将子目录下的RPM包也纳入了索引,导致yum会搜索到子目录内的包。根据你的仓库托管方式可做如下调整:
- 手动使用
createrepo生成元数据的场景:
生成元数据时添加--no-recursion参数,仅扫描指定路径的根目录,不会遍历子目录:createrepo --no-recursion /your/repo/path/yum-local/repos/dev/$releasever/$basearch/ - 使用Artifactory托管yum仓库的场景:
进入对应yum仓库的设置页面,关闭**递归索引(Recursive Indexing)**开关,重新生成一次仓库元数据即可。
方案2:客户端本地配置(无需修改仓库端)
如果你没有仓库端修改权限,可直接在本地的yum仓库配置中添加排除规则,过滤所有子目录下的RPM包。修改后的配置如下:
[Artifactory] name=Artifactory baseurl=http://myartifactory/artifactory/yum-local/repos/dev/$releasever/$basearch enabled=1 gpgcheck=0 # 新增排除规则,匹配所有路径带斜杠的RPM包(即所有子目录下的包) exclude = */*
如果仅需要排除特定子目录,可将规则修改为exclude = */subdir/*即可。
内容的提问来源于stack exchange,提问作者dganesh2002
相关产品推荐
相关产品推荐

