it-swarm.com.de

Listen Sie alle RPM-Pakete auf, die von Repo "X" installiert wurden.

Wie kann ich eine Liste aller RPM-Pakete abrufen, die von einem bestimmten Repo (z. B. "epel") auf meinem System installiert wurden?

47
Lorin Hochstein

CentOS/RHEL/Fedora 22 oder früher

yum list installed | grep @epel

Fedora 23 oder höher

dnf list installed | grep @epel
46
David Schwartz

Ab RHEL6 gibt es, wie in diese Stackoverflow-Antwort vorgeschlagen, eine gründlichere Methode, um dies mit yumdb zu tun:

yumdb search from_repo REPOID*

Das Repoid nimmt Platzhalter.

Hübscher Druck

Wenn wir die Ausgabe betrügen und weiterleiten, können wir auch einen hübschen Druckeffekt erzielen. Hier ist eine mit awk

yumdb search from_repo REPOID* |awk -F"\n" '{ RS=""; print $1 }'

Verwenden von egrep oder grep -e

yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'

list_ALL_AVAILABLE_from_repo

Um alle verfügbar Pakete in einem angegebenen Repository aufzulisten, gehen Sie wie folgt vor:

repoquery -a --repoid=REPONAME
18
ILMostro_7
dnf repo-pkgs <repoid> list installed

Anmerkungen

Der obige Befehl verwendet DNF , um die vom <repoid> Installierten Pakete aufzulisten. Hinweis repo-pkgs Ist nur ein Alias ​​von repository-packages.

Von den man Seiten:

man dnf | grep "repository-packages.*list.*installed" -A 1

Weiterführende Literatur:

man dnf
15
Peque

Die Ausgabe von Yum ist der naheliegendste Weg:

yum list installed | grep @epel

Sie können jedoch keine zusätzlichen Paketeigenschaften anzeigen und es ist schwierig, mit einem Skript zu analysieren. Das Tool repoquery aus dem Paket yum-utils ist das Tool, aber es ist nicht standardmäßig installiert.

repoquery -a --installed --qf "%{ui_from_repo} %{name}" | grep '^@epel'

und ein komplexeres Beispiel:

repoquery -a --installed --qf "%-20{ui_from_repo} %-30{name} %-7{Arch} %{Epoch}:%-12{version} %-4{release}" | grep '^@epel'
3
Franklin Piat

RHEL Server 7.5 (Maipo)

yum repo-pkgs <repoid> list installed Kann verwendet werden, um dieselben Informationen wie yumdb search from_repo <repoid> Abzurufen, jedoch in einem anderen Format.

# 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

Beispiel epel Ausgaben:

# 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
2
alexandrul

Sie können den Vendor -Header der installierten RPMs überprüfen.

In diesem Beispiel werden alle Pakete aus dem VideoLAN Repository aufgelistet:

 rpm -q -a --qf "%{Name}:%{Vendor}\n" \
     | grep -F ":VideoLAN Project (http://www.videolan.org)"

Natürlich müssen Sie feststellen, ob der Header Vendor Ihres Repositorys unter verschiedenen Repositorys eindeutig ist.

1
andcoz

Für Leute, die nur fehlende Repositories finden wollen:

yum list installed | awk '{print $3}' | sort | uniq

Dies sollte alle Repositorys zurückgeben, von denen aus Pakete installiert wurden.

1