Daniel Déchelotte <[EMAIL PROTECTED]> a écrit : | Est-il possible de connaitre tous les paquets recommandes et suggeres | (mais non installes) par tous les paquets actuellement installes ?
Mais oui, bien sur, si tu t'ecris ton script. :) Voici ce que je me suis finalement ecrit : ----------------- Debut ---------------- #!/usr/bin/python import fileinput, string status_file = "/var/lib/dpkg/status" def add_pkgs(pkg_string, pkg_list): for pkg in string.split(pkg_string, ","): while True: open_paren = string.find(pkg, "(") if open_paren < 0: break close_paren = string.find(pkg, ")") pkg = pkg[:open_paren-1] + pkg[close_paren+1:] pkg = string.strip(pkg) if pkg not in pkg_list: pkg_list.append(pkg) def clean_list(to_clean, stop_list): for i in xrange(len(to_clean) - 1, -1, -1): item = to_clean[i] for pkg in string.split(item, "|"): pkg = string.strip(pkg) if pkg in stop_list: del to_clean[i] break installed_pkgs = [] recom_pkgs = [] sugg_pkgs = [] for line in fileinput.input([status_file]): line = line[:-1] if string.find(line, "Package: ") == 0: ### Package: ### pkg = line[9:] # "Package: " is 9 char long installed_pkgs.append(pkg) continue if string.find(line, "Provides: ") == 0: ### Provides: ### pkgs = line[10:] # "Provides: " is 10 char long for pkg in string.split(pkgs, ","): pkg = string.strip(pkg) installed_pkgs.append(pkg) continue if string.find(line, "Recommends: ") == 0: ### Recommends: ### pkgs = line[12:] # strlen("Suggests: ") = 12 add_pkgs(pkgs, recom_pkgs) # print "Reco: ", recom_pkgs continue if string.find(line, "Suggests: ") == 0: ### Suggest: ### pkgs = line[10:] # strlen("Suggests: ") = 10 add_pkgs(pkgs, sugg_pkgs) # print "Sugg: ", sugg_pkgs continue clean_list(sugg_pkgs, installed_pkgs) clean_list(recom_pkgs, installed_pkgs) sugg_pkgs.sort() recom_pkgs.sort() print "Recommended packages:", recom_pkgs print "---" print "Suggested packages:", sugg_pkgs ---------------------- Fin ----------------- C'est vraiment pas fancy, mais ca fait le boulot. -- Daniel Déchelotte http://yo.dan.free.fr/