如何使用 yum 从给定的 repo 中列出已安装的软件包 [关闭]

Posted

技术标签:

【中文标题】如何使用 yum 从给定的 repo 中列出已安装的软件包 [关闭]【英文标题】:How to list installed packages from a given repo using yum [closed] 【发布时间】:2011-06-04 08:11:06 【问题描述】:

我想列出我使用 yum 从给定 repo 安装在系统上的所有软件包。通常为此我使用yum list installed | grep "something"。但现在我面临一个问题。我感兴趣的 repo 没有让我 grep 的“东西”。该 repo 中的软件包没有任何显着特征。我如何列出它们?

我浏览了 yum 手册页,但没有找到任何东西。我想知道是否还有其他我可以使用的命令。

【问题讨论】:

这应该迁移到 Unix 和 Linux,这是一个不错的问题。 Unix Exchange 已经有 a question ,如果不一样的话,它们非常相似。 @fedvasu,我同意;只是错误的论坛,但很好的问题,尽管答案很简单:D 【参考方案1】:

试试

yum 列表已安装 | grep reponame

在我的一台服务器上:

yum 列表已安装 | grep 雷米
ImageMagick2.x86_64 6.6.5.10-1.el5.remi 已安装
已安装 memcache.x86_64 1.4.5-2.el5.remi
mysql.x86_64 5.1.54-1.el5.remi 已安装
mysql-devel.x86_64 5.1.54-1.el5.remi 已安装
mysql-libs.x86_64 5.1.54-1.el5.remi 已安装
mysql-server.x86_64 5.1.54-1.el5.remi 已安装
mysqlclient15.x86_64 5.0.67-1.el5.remi 已安装
php.x86_64 5.3.5-1.el5.remi 已安装
php-cli.x86_64 5.3.5-1.el5.remi 已安装
php-common.x86_64 5.3.5-1.el5.remi 已安装
php-domxml-php4-php5.noarch 1.21.2-1.el5.remi 已安装
php-fpm.x86_64 5.3.5-1.el5.remi 已安装
php-gd.x86_64 5.3.5-1.el5.remi 已安装
php-mbstring.x86_64 5.3.5-1.el5.remi 已安装
php-mcrypt.x86_64 5.3.5-1.el5.remi 已安装
php-mysql.x86_64 5.3.5-1.el5.remi 已安装
php-pdo.x86_64 5.3.5-1.el5.remi 已安装
php-pear.noarch 1:1.9.1-6.el5.remi 已安装
php-pecl-apc.x86_64 3.1.6-1.el5.remi 已安装
php-pecl-imagick.x86_64 3.0.1-1.el5.remi.1 已安装
php-pecl-memcache.x86_64 3.0.5-1.el5.remi 已安装
php-pecl-xdebug.x86_64 2.1.0-1.el5.remi 已安装
php-soap.x86_64 5.3.5-1.el5.remi 已安装
php-xml.x86_64 5.3.5-1.el5.remi 已安装
remi-release.noarch 5-8.el5.remi 已安装

有效。

【讨论】:

不幸的是,这仅适用于将“remi”之类的东西放在最后的回购。 rpmforge 确实有效(他们使用“rf”),但 atrpms 没有在末尾添加任何内容:/ 另外,重新阅读这个问题,他说他通常会这样做,但在这种情况下不能。 另一个问题:如果包名称/版本字符串太长(例如来自 Cloudera 的 Solr),那么“@origin-repo”部分会被下推到一个新行,导致一行是“ [空格]@origin-repo"。 @IBBoard "export COLUMNS=999 yum..." 怎么样 @Massimo,太糟糕了,我没有早先看到关于该问题的第二条评论,该评论指向另一个答案。最好的答案实际上是yum repo-pkgs repo-id list installed,它适用于 RHEL7.7,并且比 grepping 更可靠。正确答案的链接:unix.stackexchange.com/a/233966/14907【参考方案2】:

在较新版本的 yum 上,此信息在安装软件包时存储在“yumdb”中。这是获取信息的唯一 100% 准确方式,您可以使用:

yumdb search from_repo repoid

(或 repoquery 和 grep -- 不要 grep yum 输出)。 然而,“find-repos-of-install”命令在一段时间内是 yum-utils 的一部分,在没有这些信息的情况下做了最好的猜测:

http://james.fedorapeople.org/yum/commands/find-repos-of-install.py

正如弗洛伊德所说,很多回购。在他们的版本中包含一个独特的“dist”标签,你可以寻找它......但是从你所说的来看,我猜你不是这种情况?

【讨论】:

做一些研究,似乎 yumdb 在 RHEL 6(和 CentOS 6)中是新的 - 所以它在旧版本中不可用。 谢谢你;我知道现在必须有一种 rpm/yum 方式来执行此操作:D 完美。只有一件事,要在 Cent OS 6 上安装 yumdb,请使用 yum install yum-utils 安装它 从上面看这个命令如何使用不是很清楚。以下是列出 EPEL 存储库中所有包的示例用法:yum search from_repo epel 那是 yumdb 不是 yum,但是是的。

以上是关于如何使用 yum 从给定的 repo 中列出已安装的软件包 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

yum安装lamp

yum详解

Ansible从rpm包安装yum repo [关闭]

给centos重新安装yum的base-repo源

更换本地yum源为163源

yum 常用命令