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
Prochaine révision Les deux révisions suivantes
doc:systeme:apt:debsect [07/02/2008 11:53]
thom1
doc:systeme:apt:debsect [03/07/2014 00:06]
127.0.0.1 modification externe
Ligne 1: Ligne 1:
 +====== Identifier la Section à laquelle appartient un paquet ======
  
 +=====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 =====
 +
 +
 +<​code>#​!/​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</​code>​
 +
 +===== Pensez 'y =====
 +
 +N'​oubliez pas la commande '​awk'​ si vous voulez afficher __uniquement__ les noms de paquets:
 +<​code>​debsection list | grep non-free | awk '​{print $2}'</​code>​
 +ce qui affichera la liste des paquets installés et faisant partis de la section '​non-free'​.
 +
 +Et même :
 +<​code>​debsection list | awk '/​non-free/​ { print $2 }'</​code>​
doc/systeme/apt/debsect.txt · Dernière modification: 13/07/2015 18:09 par milou

Pied de page des forums

Propulsé par FluxBB