web-dev-qa-db-fra.com

Liste de tous les packages RPM installés à partir du référentiel "X"

Comment puis-je obtenir une liste de tous les packages RPM qui ont été installés sur mon système à partir d'un référentiel particulier (par exemple, "epel")?

47
Lorin Hochstein

CentOS/RHEL/Fedora 22 ou version antérieure

yum list installed | grep @epel

Fedora 23 ou version ultérieure

dnf list installed | grep @epel
46
David Schwartz

Depuis RHEL6, comme suggéré dans cette réponse stackoverflow , il existe une méthode plus approfondie pour le faire avec yumdb:

yumdb search from_repo REPOID*

Le repoid prend des jokers.

Jolie impression

Si nous allons tricher et diriger la sortie, nous pouvons également obtenir un effet de jolie impression. En voici un qui utilise awk

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

Utilisation de egrep ou grep -e

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

list_ALL_AVAILABLE_from_repo

Pour répertorier tous les packages disponibles dans un référentiel spécifié, procédez comme suit:

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

Remarques

La commande ci-dessus utilise DNF pour répertorier les packages installés à partir de <repoid>. Remarque repo-pkgs n'est qu'un alias de repository-packages.

Depuis les pages man:

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

Lectures complémentaires:

man dnf
15
Peque

La sortie de miam est la manière la plus évidente:

yum list installed | grep @epel

Cependant, vous ne pouvez pas afficher les propriétés de packages supplémentaires et il est difficile d'analyser un script. L'outil repoquery du package yum-utils est l'outil, mais il n'est pas installé par défaut.

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

et un exemple plus complexe:

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

Serveur RHEL 7.5 (Maipo)

yum repo-pkgs <repoid> list installed peut être utilisé pour récupérer les mêmes informations que yumdb search from_repo <repoid>, mais dans un format différent.

# 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

Exemples de sorties 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

Vous pouvez vérifier l'en-tête Vendor des rpms installés.

Cet exemple répertorie tous les packages du référentiel VideoLAN:

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

De toute évidence, vous devez déterminer si l'en-tête Vendor de votre référentiel est unique parmi différents référentiels.

1
andcoz

Pour les personnes qui souhaitent simplement trouver des référentiels manquants:

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

Cela devrait retourner tous les référentiels à partir desquels vous avez installé des packages.

1
derberlinersmurf