it-swarm-eu.dev

Seznam všech RPM balíčků nainstalovaných z repo "X"

Jak mohu získat seznam všech RPM balíčků, které byly nainstalovány v mém systému, z konkrétního repa (např. „Epel“)?

47
Lorin Hochstein

CentOS/RHEL/Fedora 22 nebo starší

yum list installed | grep @epel

Fedora 23 nebo novější

dnf list installed | grep @epel
46
David Schwartz

Od RHEL6, jak je navrženo v tato odpověď na stackoverflow , existuje mnohem důkladnější způsob, jak toho dosáhnout pomocí yumdb:

yumdb search from_repo REPOID*

Repoid bere divoké karty.

Pěkný tisk

Pokud se chystáme podvádět a posílat výstupy, můžeme dosáhnout i pěkného tisku. Zde je jeden pomocí awk

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

Pomocí egrep nebo grep -e

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

list_ALL_AVAILABLE_from_repo

Chcete-li zobrazit vše k dispozici balíčky v určeném úložišti, proveďte následující kroky:

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

Poznámky

Výše uvedený příkaz používá DNF pro seznam balíčků nainstalovaných z <repoid>. Poznámka repo-pkgs je jen alias repository-packages.

Ze stránek man:

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

Další čtení:

man dnf
15
Peque

Nejzřetelnějším způsobem je překvapení výstupu yumu:

yum list installed | grep @epel

Nemůžete však zobrazit další vlastnosti balíčků a je obtížné analyzovat skript. Nástroj repoquery z balíčku yum-utils je nástroj, ale ve výchozím nastavení není nainstalován.

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

a složitější příklad:

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 lze použít k načtení stejných informací jako yumdb search from_repo <repoid>, ale v jiném formátu.

# 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

Ukázka výstupů 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
2
alexandrul

Můžete zkontrolovat záhlaví Vendor nainstalovaných rpms.

Tento příklad uvádí seznam všech balíčků z úložiště VideoLAN:

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

Je zřejmé, že musíte určit, zda záhlaví Vendor vašeho úložiště je jedinečné mezi různými úložišti.

1
andcoz

Pro lidi, kteří chtějí jen najít chybějící úložiště:

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

To by mělo vrátit všechna úložiště, z nichž máte nainstalované balíčky.

1
derberlinersmurf