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 →
Ci-dessous, les différences entre deux révisions de la page.
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] 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> |