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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
doc:programmation:bash:tp-debsources [11/05/2008 09:51]
thom1 créée
doc:programmation:bash:tp-debsources [25/10/2015 04:15] (Version actuelle)
paskal [Identifier le dépôt auquel appartient un paquet]
Ligne 1: Ligne 1:
 +====== 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 =====
 +<file bash 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
 +</​file>​

Pied de page des forums

Propulsé par FluxBB