可以胜告诉我的我的存储库提供一个特别的包吗?
-
10-07-2019 - |
题
我希望简短的版本的问题:如果我的计算机上有一个特别的包装,是否有一个胜命令,该命令将告诉我其它的配置的仓库中提供,包?(或者交替地,是什么储存库将提供一个尚未安装包。)
背景情况的某些方面是需要:我们有一个迷宫的yum的储存库,我们提请。我有一台机器,具有特定的转包装,而另一个机与一个显然不足的迷宫的储存库的配置,所以我不能够安装软件包,我想到那台机器。我需要添加的最低必要的储存库的新机器。我不能只是散弹枪的存储库,从一台计算机。只是出去和抓住rpm不是一个选项,因为我需要这个是重复的。
解决方案
yum list packagename
这将显示包在哪个存储库的输出的第三列。
对于已经安装的软件包,这将无法正常工作,因为第三列只显示<!> quot; installed <!> quot;。在这种情况下,你可以做,例如<!> quot; rpm -qi packagename <!>“;,通常Vendor,Packager和Build Host标记将指示包所属的存储库。此外,将一些repo符号附加到包版本号上也很常见。
其他提示
repoquery -i {packagename}
这将为您提供实际的回购名称与无用的<!>“已安装<!>”;那个百胜回来了。 repoquery由yum-utils提供。
您可以使用yum -v search
向您展示包裹以及它所在的仓库。如果您还要添加--showduplicates
,您将看到该包裹的所有版本。
对于单个包,您可以使用
找到它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。
这里有一些方法中发现的储存库对于给定的安装包装:
rpm -qi {packagename}
或
repoquery -i {packagename}
参考文献:
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]: