Depois de instalar um pacote pelo yum (com vários repositórios configurados), como posso descobrir de qual repositório ele foi instalado?
Se eu executar yum info package-name
(ou yum list package-name
), só consigo ver que o pacote está "instalado".
Com
yum-utils
instalado,repoquery
irá fornecer a informação que procura (aqui 'epel' é o repositório).Qual a versão do Yum?
Na versão atual, se o pacote instalado for a mesma versão que o mais recente disponível, o repositório de onde foi instalado é mostrado.
Se houver um pacote mais recente disponível, ele será mostrado separadamente, com a nova versão mostrando o repositório de onde está disponível.
Chegando tarde, mas (pelo menos no Fedora 15) pode-se usar o yumdb para consultas semelhantes:
E o que eu realmente precisava para listar pacotes de determinado(s) repositório(s):
Se tudo mais falhar, você pode inspecionar o yumdb manualmente. Ele está localizado
/var/lib/yum/yumdb
e contém informações detalhadas sobre cada pacote instalado. Você estará particularmente interessado emfrom_repo
. Por exemplo, para obind-utils
pacote:Para obter apenas as informações desejadas:
Versões posteriores fornecerão ainda mais dados; por exemplo, no EL 7, o espelho e a URL exatos dos quais o pacote foi baixado são armazenados aqui.
Dirá a você o fornecedor e o empacotador
Para ver o que instalou a partir do repo epel: (Deve funcionar no Centos 5.5) observe que, se você não tiver nenhum repositório chamado epel, ele exibirá tudo instalado.
A abordagem mais simples e direta sem instalar nenhuma ferramenta extra, greping ou saída de informações estranhas é simplesmente:
A terceira coluna fornecerá o ID do repositório do qual o pacote foi instalado.
Isso foi mencionado em um comentário na pergunta original usando grep, mas isso não é necessário. Você pode simplesmente passar o nome do pacote diretamente
yum
para filtrar.Se o pacote foi instalado recentemente, você pode procurar em /var/cache/yum.
Dentro desse diretório, há um diretório para cada repositório, e nele um diretório de pacotes. Então, você faria algo como:
No entanto, o cache deve estar habilitado em seu arquivo /etc/yum.conf:
Observe que a
yum clean [packages|all]
limpará o diretório de cache.Se o diretório de cache estiver vazio, existe uma maneira alternativa. A informação lida por
yum info [package]
vem de /var/cache/yum/[repo]/primary.xml.gzVocê pode examinar o arquivo digitando:
No entanto, em máquinas onde
yum info [package]
não é exibido "From repo :", conforme indicado por 'theotherreceive', é porque não está no arquivo primary.xml, então não haverá como recuperar essa informação. Portanto, se o pacote estiver em dois ou mais arquivos primary.xml, você terá que determinar a prioridade do repo em seu sistema.Com base e resposta de Swoogan
No RedHat e CentOS, pode-se fazer
Os resultados devem ser algo como
Onde repository_name é o repositório onde seu pacote pode ser encontrado, e provavelmente foi instalado a partir do primeiro em uma lista (veja yum repolist)
Então eu sei que essa é uma pergunta um pouco antiga - mas aparece na pesquisa do google pelo que eu estava procurando.
Há também um método para obter uma lista exclusiva de repositórios usados:
Isso listará os repositórios dos quais os pacotes foram instalados.