====== Lister les paquets installés et leur provenance ====== * Objet : Script bash pour identifier le dépôt auquel appartient un paquet * Niveau requis :{{tag>débutant avisé}} * Commentaires : ce script bâtit une liste des paquets installés accompagnés de leur dépôt et leur section * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) * Suivi : * Création par [[user> thom1]] le 11/05/2008 * Testé par [[user> paskal]] le 25/10/2015 * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=116054#p116054 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Présentation ===== Voici un petit script que j'ai nommé "debsources" qui permet de savoir à partir de quel dépôt a été installé un paquet. Il crée un fichier dans lequel est enregistrée la liste des paquets installés (///var/cache/deblist//). \\ Il faut être root pour créer ou mettre à jour cette liste via l'unique option '//-u//', sinon un simple utilisateur suffit pour l'afficher sans aucune option. ===== Le script Debsources ===== #!/bin/bash deblist="/var/cache/deblist" temp_file="/tmp/policy" update() { if [ `id -u` -ne 0 ]; then echo "Vous devez être ROOT"; exit 1; fi rm -f "$deblist" > /dev/null; for i in `dpkg -l | grep ^ii | awk '{print $2}'` ; do apt-cache policy $i > "$temp_file" let j=`cat -n $temp_file | grep 100\ \/var\/lib\/dpkg\/status | awk '{print $1}'`-1; echo "$i: `cat -n $temp_file | sed -n "$j"p | awk '{print $3" "$4" "$5" "$6}'`" >> "$deblist"; done rm -f "$temp_file" > /dev/null; } if [ ! -f $deblist ] && [ "$1" != "-u" ]; then echo "Veuillez faire '`basename $0` -u' SVP"; exit 1; fi case $1 in -h) echo "Usage: `basename $0` -u : met à jour la base de donnée (root)" echo " `basename $0` : affiche la base de donnée" exit 0; ;; -u) update exit 0 ;; *) cat "$deblist" ;; esac