有没有简单的方法可以确定特定 yum 组的来源?
我可以使用以下方式查询可用的群组yum grouplist
。
我可以使用以下方式查询群组信息yum group info $yum_group_name
令我困扰的是,我无法确定某个组的数据来自哪个存储库。
我所做的最好的事情就是找到哪些存储库包含该组:
yum_group_name="....." # or ID
# find all repository identifiers
# perform yum commands with only 1 repository enabled
cat /etc/yum.repos.d/* | grep '\[.*\]' | grep -v '#' | tr -d '[]' | xargs -I {} -t sh -c "yum --disablerepo='*' --enablerepo='{}' group info $yum_group_name 2>&1 | grep 'Group:'"
# subsequently, associate a bareurl to repository identifier
假设一个组存在于多个存储库中,我如何知道使用了哪一个?
答案1
不确定是否有打印组列表和相应源存储库的选项。使用-v
选项groupinfo
列出给定组的软件包的源存储库。
# yum groupinfo <grp_name> -v
或者
# yum groups info <grp_name> -v # on RHEL 7
Group: Security Tools
Group-Id: security-tools
rpmdb time: 0.000
Description: Security tools for integrity and trust verification.
Default Packages:
+scap-security-guide-0.1.33-6.el7_4.noarch rhel-7-server-rpms
Optional Packages:
aide-0.15.1-13.el7.x86_64 rhel-7-server-rpms
答案2
我认为组是在“基础”存储库的元数据中定义的。至少这是我在 CentOS 中看到的。它们不像包那样“位于”任何存储库中;而是存储库结构的一部分。这是我在 CentOS-* 存储库中看到它们定义的唯一地方。
http://mirror.centos.org/centos/7/os/x86_64/repodata/*.comps.xml
我在 ELREPO 的 repodata 目录中看到了另一个 *comps.xml。我认为它的组可能与 Centos-base 中现有的组合并了,如果还没有现有组,我们将看到可用的新组。
因此,当 elrepo 启用时,效果是“基础”组会获得更多软件包。而且会有一些新组。