você está aqui: Home  → Arquivo de Mensagens Curso Gratuito sobre Expressões Regulares, com o Prof.  Julio Neves

Achando os pacotes RPM que contém dependências não resolvidas

Colaboração: Rodrigo Senra

Data de Publicação: 21 de Outubro de 2004

As distribuições de linux baseadas em RedHat(Fedora,Mandrake,Conectiva) utilizam o formato RPM para gerência de pacotes. Ao se tentar instalar um determinado RPM. muitas vezes há uma recusa de instalação devido a uma dependência não resolvida.

O utilitário RPM avisa o nome do arquivo pendente, mas não avisa em que pacote RPM ele se encontra. O script Python abaixo auxilia a descoberta do RPM que contém um determinado arquivo, realizando uma busca exaustiva no diretório de pacotes rpm.

findrpm.py

#!/usr/bin/env python

# uso: findrpm.py <nome do arquivo> <diretório com pacotes .rpm>
# respeite a indentação (alinhamento) abaixo

import sys
import glob
import popen2
import os.path
files = glob.glob(os.path.join(sys.argv[2],'*.rpm'))
print 'Procurando em %d pacotes'%(len(files))
for file in files:
    print 'Processando %d\r'%files.index(file),
    sys.stdout.flush()
    outfd,infd = popen2.popen2('rpm -qlp %s'%(file))
    for line in outfd.readlines():
          if line.find(sys.argv[1])>=0:
              print '\n',sys.argv[1],' -> ',file
              break


Veja a relação completa dos artigos de Rodrigo Senra