Listar todos os pacotes RPM instalados a partir do repo “X”

39

Como posso obter uma lista de todos os pacotes RPM que foram instalados no meu sistema a partir de um repositório específico (por exemplo, "epel")?

    
por Lorin Hochstein 13.10.2011 / 17:56

7 respostas

40

CentOS / RHEL / Fedora 22 ou anterior

yum list installed | grep @epel

Fedora 23 ou posterior

dnf list installed | grep @epel
    
por 14.10.2011 / 02:50
13

A partir do RHEL6, como sugerido em esta resposta do stackoverflow , há um método mais completo de fazer isso com yumdb :

yumdb search from_repo REPOID*

O repoid leva cartões selvagens.

Pretty-print

Se formos trapacear e canalizar a saída, poderemos obter um efeito bonito também. Aqui está um usando awk

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

Usando egrep ou grep -e

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

list_ALL_AVAILABLE_from_repo

Para listar todos os pacotes disponíveis em um repositório especificado, faça:

repoquery -a --repoid=REPONAME
    
por 17.06.2014 / 09:03
10
dnf repo-pkgs <repoid> list installed

Notas

O comando acima usa DNF para listar os pacotes instalados a partir do <repoid> . Observe que repo-pkgs é apenas um alias de repository-packages .

Das man páginas:

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

Leitura adicional:

man dnf
    
por 05.10.2015 / 09:59
3

Grepping a saída do yum é a maneira mais óbvia:

yum list installed | grep @epel

No entanto, você não pode exibir propriedades de pacotes extras e é difícil analisá-lo com um script. A ferramenta repoquery do pacote yum-utils é a ferramenta, mas não é instalada por padrão.

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

e um exemplo mais complexo:

repoquery -a --installed --qf "%-20{ui_from_repo} %-30{name} %-7{arch} %{epoch}:%-12{version} %-4{release}" | grep '^@epel'
    
por 12.03.2015 / 14:33
2

RHEL Server 7.5 (Maipo)

yum repo-pkgs <repoid> list installed pode ser usado para recuperar as mesmas informações de yumdb search from_repo <repoid> , mas em um formato diferente.

# 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

Exemplo de epel de saídas:

# 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
    
por 19.09.2018 / 09:32
1

Você pode verificar o cabeçalho Vendor dos rpms instalados.

Este exemplo lista todos os pacotes do repositório VideoLAN :

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

Obviamente, você precisa determinar se o cabeçalho Vendor do seu repositório é único entre repositórios diferentes.

    
por 13.10.2011 / 18:11
1

Para pessoas que querem apenas encontrar repositórios ausentes:

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

Isso deve retornar todos os repositórios dos quais você tem pacotes instalados.

    
por 23.04.2018 / 11:02