Frédéric Bothamy <[EMAIL PROTECTED]> a écrit : | * Rakotomandimby (R12y) Mihamina <[EMAIL PROTECTED]> : | > | > Dans mon sources.list j'ai ce serveur : | > deb http://download.systemimager.org/debian testing main | > | > Ok, mais je ne me rappelle plus quels paquets il me fourni. | | [...]
Je ne cite rien de Frederic, mais son courriel me rappelle l'existence de ce petit script : on le lance en precisant un ou plusieurs fichiers ..._Packages et le script affiche les paquets installes fournis par les sources correspondantes. Si le script n'affiche rien, cela veut dire que l'entrepot n'est pas (plus) utilise. Ex pour retrouver les paquets "contrib" ou "non-free": $ cd /var/lib/apt/lists/ $ ~/bin/retrouve_paquets_depuis.py *_testing_[cn]*Packages Paquet msttcorefonts de l'entrepot ftp.fr.debian.org_debian_dists_testing_contrib_binary-i386_Packages Paquet gs-afpl de l'entrepot ftp.fr.debian.org_debian_dists_testing_non-free_binary-i386_Packages Paquet t1-xfree86-nonfree de l'entrepot ftp.fr.debian.org_debian_dists_testing_non-free_binary-i386_Packages Ou pour constater que je n'utilise pas non-US: $ ~/bin/retrouve_paquets_depuis.py non-us.debian.org_debian-non-US_dists_testing_non-US_*_Packages $ HTH, -- Daniel Déchelotte http://yo.dan.free.fr/
#!/usr/bin/python # Daniel Dechelotte (C) 2004, GPL import sys, fileinput, re, os, string def usage (): print "Usage: retrouve_paquets_depuis.py /var/lib/apt/lists/un_entrepot_Packages" if len (sys.argv) == 2 and (sys.argv[1] == "-h" or sys.argv[1] == "--help"): usage () sys.exit (1) rx_package = re.compile ("Package: (?P<package>.*)") rx_version = re.compile ("Version: (.:)?(?P<version>.*)$") my_packages_fd = os.popen ("export COLUMNS=128; dpkg -l | grep ^ii | sort", "r"); packages = {} for package in my_packages_fd.readlines (): (pkg, ver) = string.split (package)[1:3] packages[ pkg ] = ver; my_packages_fd.close () for line in fileinput.input (): if line == "\n": package = None; version = None; continue match = rx_package.match (line) if match: package = match.group ("package") continue match = rx_version.match (line) if match: version = match.group ("version") if not package: continue try: if packages[ package ] == version: print "Paquet %s de l'entrepot %s" % (package, fileinput.filename ()) except KeyError: pass continue fileinput.filename ()