logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Lister les paquets installés et leur provenance

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

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
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/programmation/bash/tp-debsources.txt · Dernière modification: 25/10/2015 04:15 par paskal

Pied de page des forums

Propulsé par FluxBB