如何从特定存储库(例如“epel”)获取系统上已安装的所有 RPM 软件包的列表?
答案1
Fedora 36 或更高版本
dnf repository-packages epel list
CentOS / RHEL / Fedora 22 或更早版本
yum list installed | grep @epel
软呢帽23
dnf list installed | grep @epel
RHEL8
dnf repo-pkgs epel list installed
答案2
从 RHEL6 开始,如建议的这个 stackoverflow 答案,有一个更彻底的方法可以做到这一点yumdb
:
yumdb search from_repo REPOID*
repid 需要通配符。
精美印刷
如果我们要作弊并通过管道输出,那么我们也可以实现漂亮的打印效果。这是一个使用awk
yumdb search from_repo REPOID* |awk -F"\n" '{ RS=""; print $1 }'
使用egrep
或grep -e
yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'
list_ALL_AVAILABLE_from_repo
列表全部可用的包在指定的存储库中,执行以下操作:
repoquery -a --repoid=REPONAME
答案3
dnf repo-pkgs <repoid> list installed
笔记
上面的命令使用地下城与勇士列出从<repoid>
. Noterepo-pkgs
只是 的别名repository-packages
。
从man
页面:
man dnf | grep "repository-packages.*list.*installed" -A 1
进一步阅读:
man dnf
答案4
RHEL服务器7.5(麦坡)
yum repo-pkgs <repoid> list installed
可用于检索与 相同的信息yumdb search from_repo <repoid>
,但格式不同。
# yum help repo-pkgs
repo-pkgs <repoid> <list|info|install|remove|upgrade|reinstall*|remove-or-*> [pkg(s)]
Treat a repo. as a group of packages, so we can install/remove all of them
aliases: repo-packages, repository-pkgs, repository-packages
输出示例epel
:
# yumdb search from_repo epel
htop-2.2.0-1.el7.x86_64
from_repo = epel
supervisor-3.1.4-1.el7.noarch
from_repo = epel
# yum repo-pkgs epel list installed
Installed Packages
htop.x86_64 2.2.0-1.el7 @epel
supervisor.noarch 3.1.4-1.el7 @epel