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

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]
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>​
doc/systeme/apt/debsect.txt · Dernière modification: 13/07/2015 18:09 par milou

Pied de page des forums

Propulsé par FluxBB