[Script] Que me fournit cette source ? (fut: d'ou vient ce download.systemimager.org ?)
Frédéric Bothamy <frederic.bothamy@free.fr> a écrit :
| * Rakotomandimby (R12y) Mihamina <mihamina@mail.rktmb.org> :
| >
| > 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 ()
Reply to: