Depois de instalar um pacote pelo yum (com vários repositórios configurados), como posso encontrar 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".
rpm -qa|grep NAME
, pode fazeryum list installed|grep NAME
para descobrir de que repositório é o rpm .Respostas:
Com o yum-utils instalado, o repoquery fornecerá as informações que você procura (aqui 'epel' é o repositório).
fonte
yum info package_name
não parece consultar os repositórios na mesma ordem que o yum.yum info package_name
retorna mais resultados do que repoquery aparentemente. É por isso que a troca de pilhas não deve bloquear os votos.repoquery -i $pkg
fornece um repositório a partir do qual a$pkg
está disponível, não o repositório a partir do qual o$pkg
foi instalado. Eu fiz esse comandorpm -qi $pkg
e obtive números de versão diferentes.rpm
resultou em um número de versão anterior ao derepoquery
.--use-mirror
). Eu não acho que é possível sempre obter a resposta certa.Qual versão do yum?
Na versão atual, se o pacote instalado for a mesma versão mais recente disponível, o repo do qual foi instalado é mostrado.
Se houver um pacote mais recente disponível, ele será mostrado separadamente, com a nova versão mostrando o repositório do qual está disponível.
fonte
Chegando muito tarde, mas (pelo menos no Fedora 15) é possível usar o yumdb para consultas semelhantes:
E o que eu realmente precisava para listar pacotes de determinados repositórios:
fonte
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ê ficará particularmente interessadofrom_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 exato e o URL do qual o pacote foi baixado são armazenados aqui.
fonte
for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done
que no exemplo acima retorna:updates
- muito mais legível!grep
nada aqui, e você pode até interromper o loop. Um muito simplescat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
é tudo que você precisa.Dirá a você o fornecedor e o empacotador
fonte
Para ver o que foi instalado no repo epel: (Deve funcionar no Centos 5.5), observe que, se você não tiver um repositório chamado epel, ele emitirá todas as coisas instaladas.
repetição --repoid = epel -a | lista xargs yum instalada
fonte
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 nesse diretório um pacote. Então, você faria algo como:
No entanto, o cache deve ser ativado no 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, há uma maneira alternativa. As informações que são lidas por
yum info [package]
vêm de /var/cache/yum/[repo}/primary.xml.gzVocê pode examinar o arquivo digitando:
No entanto, em máquinas nas quais
yum info [package]
não é exibido "Do repositório:", conforme indicado por 'theotherreceive', é porque ele não está no arquivo primary.xml, portanto, não há como recuperar essas informações. Portanto, se o pacote estiver em dois ou mais arquivos primary.xml, você precisará determinar a prioridade de repo em seu sistema.fonte
Com base e resposta de Swoogan
On 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 de uma lista (consulte yum repolist)
fonte
Essas informações são capturadas em algum lugar? O pacote não possui essas informações e o yum não se importa depois de encontrar o pacote. Provavelmente, você pode descobrir tudo que repositórios têm o pacote e depois determinar qual deles tem prioridade.
fonte
Não é uma ótima solução, mas descobri que a lista do yum disponível mostrará onde a versão mais atualizada de cada pacote está disponível, por exemplo:
lista yum disponível | grep gstreamer
O bluez-gstreamer.i386 4.30-2.fc10 atualiza o
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer- plugins-bad-devel.i386 0.10.9-1.fc10 livre de rpmfusion
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 livre de rpmfusion
Assim, você pode fazer uma lista do yum disponível no seu pacote, comparar a versão instalada usando a lista do yum instalada e ter uma boa idéia de qual repositório veio se as versões coincidirem.
fonte
Você pode adicionar o sinalizador detalhado em "yum info":
O repositório de instalação estará na saída "De repo".
fonte
Então eu sei que essa é uma pergunta um pouco antiga - mas aparece na pesquisa do google pelo que eu estava procurando.
Também existe um método para obter uma lista exclusiva de repositórios usados:
Isso listará os repositórios dos quais os pacotes foram instalados.
fonte
A abordagem mais simples e direta, sem a instalação de ferramentas extras, 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 sobre a pergunta original usando grep, mas isso não é necessário. Você pode simplesmente passar o nome do pacote diretamente
yum
para o filtro.fonte
Nenhum dos comandos acima funcionou para mim. Isto é o que eu tinha que fazer.
Uma boa referência está aqui.
https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf
fonte
A maneira mais fácil é esta:
Mais dicas e truques estão disponíveis aqui: http://wiki.centos.org/TipsAndTricks/YumAndRPM
fonte