Identificando repositórios não utilizados em Yum

3

Existe uma maneira de identificar um repositório não utilizado no Centos / RHEL?

Eu tenho alguns repositórios instalados em uma máquina Centos e não tenho certeza de quais são realmente necessários e quais não são.

Existe uma boa maneira de gerar um relatório que usa a lista de pacotes instalados e identifica quais repositórios ainda são usados e quais não são?

    
por monksy 28.10.2013 / 06:54

2 respostas

3

Se você está no CentOS 6 , o seguinte comando deve mostrar qual repositório de seus RPMs instalados veio:

rpm -qa | xargs yum info | grep '^From repo' | sort | uniq -c | sort -rn

Se você está no CentOS 5 ou abaixo, não há uma maneira definitiva de obter as informações desejadas. Você terá que passar pelos RPMs atualmente instalados e tentar correlacioná-los aos vários repositórios que você configurou. Existem algumas maneiras de correlacioná-las:

  1. Alguns repos como repoforge / rpmforge e IUS, mas com um sufixo em seus RPMs, você pode usar algo como rpm -qa release='*rf*'

  2. Correlacione o empacotador, o host de compilação, a assinatura ou o fornecedor aos vários repos. Por exemplo, se o buildhost tiver 'fedoraproject.org', provavelmente veio do repositório EPEL. Ou se o fornecedor estiver listado como 'RPM Fusion', provavelmente veio do repositório do rpmfusion. Cada repo é diferente em termos, se eles realmente usam os campos e o que eles colocam neles.

    O empacotador, o host e o fornecedor podem, teoricamente, ser falsificados, portanto, dependendo das suas necessidades de segurança, talvez você não queira depender deles, mas a probabilidade de alguém estar fazendo isso de maneira mal-intencionada é baixa. A assinatura seria a mais segura.

    As recompras estão abaixo. Você consultaria todo o seu rpms e classificaria a saída com algo como rpm -qa --queryformat '%{vendor}\t%{name}\n' | sort

    • Empacotador -% {packager}
    • BuildHost -% {buildhost}
    • Assinatura -% {RSAHEADER: pgpsig}
    • Fornecedor -% {vendor}

Esta entrada no wiki do CentOS pode ser útil.

    
por 29.10.2013 / 05:12
0

Para descobrir quais recompras. pacotes são instalados de você pode fazer:

repoquery --installed --qf '%{ui_nevra} %{ui_from_repo}' -a

... ou, para um resumo:

repoquery --installed --qf '%{ui_from_repo}' -a | sort | uniq -c

... se você remover a opção "--installed" que informará quais repos. ter a versão mais recente de um pacote disponível (assim, se repos. foo e bar fornecerem XYZ, então apenas o que fornecer a versão mais recente será listado). Isso pode estar mais perto do que você quer. Como uma verificação mais rápida, a outra coisa é que "yum repolist" lhe dará uma contagem do número de pacotes disponíveis em cada repo. ... o que pode ser suficiente para ver se valem a pena.

    
por 29.10.2013 / 14:33