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 ()

Répondre à