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.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:systeme:apt:debsect [17/08/2010 16:59] cthuluh |
doc:systeme:apt:debsect [13/07/2015 18:09] (Version actuelle) milou [Identifier la Section à laquelle appartient un paquet] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Identifier la Section à laquelle appartient un paquet ====== | ||
+ | * Objet : Script pour identifier la section à laquelle appartient un paquet | ||
+ | * Niveau requis :{{tag>débutant avisé}} | ||
+ | * Commentaires : FIXME | ||
+ | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
+ | * Suivi : {{tag>à-tester}} | ||
+ | * Création par [[user>thom1]] le 07/02/2008 | ||
+ | * Testé par .... le .... | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=116053#p116053 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | |||
+ | **Nota :** Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
+ | =====Présentation ===== | ||
+ | |||
+ | Voici un petit script, que j'ai nommé "debsection" qui permet de savoir si un paquet se trouve dans la section "main", "non-free" ou "contrib" | ||
+ | |||
+ | |||
+ | La liste des paquets est stockée dans le fichier /var/cache/debsect par l'intermédiaire de l'option '//update//'. Il faut donc être root uniquement pour cette option, sinon un simple utilisateur suffit, du moment qu'il a accès à /var/cache/debsect, bien entendu. | ||
+ | ===== Le Script Debsection ===== | ||
+ | |||
+ | |||
+ | <file bash debsection>#!/bin/sh | ||
+ | |||
+ | debcache=/var/cache/debsect | ||
+ | |||
+ | update(){ | ||
+ | |||
+ | # Ces variables ne seront pas visibles en dehors de la fonction update() | ||
+ | local debinst section | ||
+ | |||
+ | if [ $(id -u) -ne 0 ]; then | ||
+ | echo "Vous devez être ROOT" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | echo "Mise à jour en cours..."; | ||
+ | |||
+ | rm -f "$debcache" 2> /dev/null | ||
+ | |||
+ | for debinst in $(dpkg -l | awk '$1 == "ii" { print $2 }'); do | ||
+ | info=$(apt-cache showpkg "$debinst") | ||
+ | case $info in | ||
+ | *main*) section=main;; | ||
+ | *contrib*) section=contrib;; | ||
+ | *non-free*) section=non-free;; | ||
+ | *) section=unknown;; | ||
+ | esac | ||
+ | echo "$section : $debinst" >> "$debcache" | ||
+ | done | ||
+ | } | ||
+ | |||
+ | help() { | ||
+ | echo "Usage: `basename $0` paquet1 paquet2"; | ||
+ | echo "Options :" | ||
+ | echo " update : mise à jour de la base de données (ROOT uniquement)"; | ||
+ | echo " list : liste tout les paquets"; | ||
+ | echo " search : liste nom_paquet"; | ||
+ | exit; | ||
+ | } | ||
+ | |||
+ | |||
+ | if [ ! -f "$debcache" ] && [ "$1" != "update" ]; then | ||
+ | echo "Veuillez faire '`basename $0` update' SVP"; | ||
+ | exit 1; | ||
+ | fi | ||
+ | |||
+ | case $1 in | ||
+ | list) | ||
+ | cat "$debcache" | ||
+ | exit 0 | ||
+ | ;; | ||
+ | update) | ||
+ | update | ||
+ | exit 0 | ||
+ | ;; | ||
+ | search) | ||
+ | shift | ||
+ | for i in "$@"; do | ||
+ | grep "$i" "$debcache" | ||
+ | done | ||
+ | exit 0 | ||
+ | ;; | ||
+ | *) | ||
+ | help | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac</file> | ||
+ | |||
+ | ===== Pensez 'y ===== | ||
+ | |||
+ | N'oubliez pas la commande 'awk' si vous voulez afficher __uniquement__ les noms de paquets: | ||
+ | <code user>debsection list | grep non-free | awk '{print $3}'</code> | ||
+ | ce qui affichera la liste des paquets installés et faisant partis de la section 'non-free'. | ||
+ | |||
+ | Et même : | ||
+ | <code user>debsection list | awk '/non-free/ { print $3 }'</code> |