百胜能告诉我哪个存储库提供了特定的包吗?

时间:2009-03-11 18:54:29

标签: linux yum package-managers

希望问题的简短版本:如果我在安装了特定软件包的计算机上,是否有一个yum命令会告诉我哪个配置存储库提供了该软件包? (或者,可以使用哪个存储库提供尚未安装的软件包。)

后台需要一些上下文:我们有一个迷宫的yum存储库。我有一台机器安装了特定的rpm软件包,另一台机器的配置库显然没有足够的迷宫,所以我无法将我想要的软件包安装到该机器上。我需要将最小的必要存储库添加到新机器中。我不能只是将存储库从一台机器霰弹到另一台机器上。只是走出去抓住转速不是一个选择,因为我需要这个是可重复的。

7 个答案:

答案 0 :(得分:36)

yum list packagename

这将显示包在哪个存储库的输出的第三列。

对于已安装的软件包,这将无效,因为第三列仅显示“已安装”。在这种情况下,你可以做,例如“rpm -qi packagename”,通常Vendor,Packager和Build Host标记将指示包所属的存储库。此外,将一些repo符号附加到包版本号上也很常见。

答案 1 :(得分:25)

repoquery -i {packagename} 

这将为您提供实际的回购名称与yum返回的无用的“已安装”。 repoquery由yum-utils提供。

答案 2 :(得分:12)

您可以使用yum -v search向您显示包以及包含的存储库。如果您还添加--showduplicates,您将看到该包的所有版本。

感谢:http://www.spinics.net/linux/fedora/yum/msg11975.html

答案 3 :(得分:2)

对于单个包,您可以使用

找到它
PACKAGE=ruby-enterprise
repoquery --qf "%{repoid}" $PACKAGE

$ PACKAGE 替换为您关注的软件包的名称。

您可以使用

查找来自特定存储库的所有软件包
REPO=ruby-enterprise-opt
repoquery --repoid=$REPO -a --qf "%{name}" | sort > repo_packages
rpm -qa --qf "%{name}\n" | sort > installed_packages
comm -1 -2 repo_packages installed_packages

$ REPO 替换为您关注的存储库的ID;您可以使用yum repolist查看所有已启用存储库的ID。

答案 4 :(得分:1)

以下是一些发现给定已安装软件包的存储库的方法:

repoquery -i {packagename}

CMakeFiles/tripleClassification.dir/src/tripleClassification.cpp.o: In function `boost::program_options::typed_value<std::string, char>::xparse(boost::any&, std::vector<std::string, std::allocator<std::string> > const&) const':
tripleClassification.cpp:(.text._ZNK5boost15program_options11typed_valueISscE6xparseERNS_3anyERKSt6vectorISsSaISsEE[_ZNK5boost15program_options11typed_valueISscE6xparseERNS_3anyERKSt6vectorISsSaISsEE]+0x19): undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::string, std::allocator<std::string> > const&, std::string*, int)'

参考文献:

答案 5 :(得分:0)

yum reinstall [package_name]

然后,当要求确认时,您可以选择N以不更改您的系统:

centos上的示例输出:

Resolving Dependencies
--> Running transaction check
---> Package mc.x86_64 1:4.6.1a-35.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================
 Package                      Arch                             Version                                   Repository                      Size
==============================================================================================================================================
Reinstalling:
 mc                           x86_64                           1:4.6.1a-35.el5                           base                           2.1 M

Transaction Summary
==============================================================================================================================================
Remove        0 Package(s)
Reinstall     1 Package(s)
Downgrade     0 Package(s)

Total download size: 2.1 M
Is this ok [y/N]:

答案 6 :(得分:0)

这应该等同于 yum list installed,但具有机器可读的输出:

repoquery --installed '*' --queryformat='%{name} %{evr} %{ui_from_repo}' | column -t

显然,制作一个列出可能字段的手册页太麻烦了;但您可以查看 https://github.com/rpm-software-management/yum/blob/master/yum/packages.py 并使用您列出的对象类存在的任何属性。

例如,如果您要列出已安装的软件包,则可以使用 YumInstalledPackage 的字段,因此可以使用其基类 YumHeaderPackageYumAvailablePackagePackageObject 的字段和RpmBase

这是一个例子:

$ repoquery --installed '*' --qf='%{name} %{evr} %{ui_from_repo}' | head -n 10 | column -t
GeoIP                         1.5.0-14.el7    @rhos-13.0-rhel-7-signed
MySQL-python                  1.2.5-1.el7     @rhos-13.0-rhel-7-signed
NetworkManager                1:1.18.0-5.el7  @anaconda/7.7
NetworkManager-config-server  1:1.18.0-5.el7  @anaconda/7.7
NetworkManager-libnm          1:1.18.0-5.el7  @anaconda/7.7
NetworkManager-team           1:1.18.0-5.el7  @anaconda/7.7
NetworkManager-tui            1:1.18.0-5.el7  @anaconda/7.7
OpenIPMI                      2.0.27-1.el7    @rhos-13.0-rhel-7-signed
OpenIPMI-libs                 2.0.27-1.el7    @rhos-13.0-rhel-7-signed
OpenIPMI-modalias             2.0.27-1.el7    @rhos-13.0-rhel-7-signed

值得一读the comment that documents the ui_from_repo property,以了解该字段的可能格式。

相关问题