# Listing des paquets

**URL:** <https://www.debian-fr.org/t/listing-des-paquets/5638>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 3:23 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638 "2016-02-20T15:23:27Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![NeimaD59](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/85f322/32.png) [@NeimaD59](https://www.debian-fr.org/u/NeimaD59)\
**Post date:** [Février 20, 2016, 3:23 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638/1 "2016-02-20T15:23:27Z")

</div>

Bonjour 😃

J’ai remarqué qu’il était impossible de savoir dans quel CD de Debian se trouvait un paquet.  
J’ai donc développé un petit programme en C permettant à partir d’un CD de Debian, de lister les paquets qu’il contient.

Je pense qu’il serait interessant de rajouter au site cette fonctionnalité, qu’en pensez-vous ?

Il me reste juste à télécharger les CD pour faire ce listing, et les ajouter dans un base de données, pour les inclure dans une page web.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 3:23 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638/2 "2016-02-20T15:23:27Z")

</div>

Si tu veux mais en principe, une fois fait l’install, les CDs, on s’en tamponne. 😉

---

<div class="post-metadata">

**Author:** ![ciol](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/e274bd/32.png) [@ciol](https://www.debian-fr.org/u/ciol)\
**Post date:** [Février 20, 2016, 3:23 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638/3 "2016-02-20T15:23:43Z")

</div>

C’est possible !  
Ici : [atterer.net/jigdo/jigdo-search.php?list](http://atterer.net/jigdo/jigdo-search.php?list)

Mais c’est vrai que c’est difficile à trouver (faut voir la fac de la partie CD s du site), et c’est un peu le bordel pour s’y retrouver.

Par contre je suis pas d’accord avec Ricardo : c’est vraiment pratique de s’avoir le contenu, par ex. une fois l’installation de faite je n’avais pas internet à cause de mon modem Sagem, et je devais installer pas mal de paquets pour finalement installer le bon pilote, donc il vaut mieux savoir quels CDs télécharger et graver plutôt que de faire des allez retour avec un PC qui a le net et celui qui ne l’a pas.

---

<div class="post-metadata">

**Author:** ![stonfi](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/54ee81/32.png) [@stonfi](https://www.debian-fr.org/u/stonfi)\
**Post date:** [Février 20, 2016, 3:23 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638/4 "2016-02-20T15:23:43Z")

</div>

hello,

Prenons par exemple MySQL vous allez trouver dans le répertoire /cdrom/dists/slink/main/binary-i386 de chaque CD un fichier “Packages” qui contient la liste des paquets de ce répertoire. Il suffit donc de le copier sur le disque dur dans un répertoire vide par exemple /var/paquet sous un nom bien explicite comme par exemple cd\_deb\_2.1\_I si c’est le premier CD et ainsi de suite pour les autres CD  
Ensuite il petit grep et zou … c’est fini

/usr/bin/search\_pk

grep Pack /pack/\* |grep $1

Résultats d’un ‘search\_pk mysql’

/pack/cd\_deb\_2.1\_II:Package: mysql-base  
/pack/cd\_deb\_2.1\_II:Package: mysql-dev  
/pack/cd\_deb\_2.1\_II:Package: mysql-doc  
/pack/cd\_deb\_2.1\_II:Package: php3-cgi-mysql  
/pack/cd\_deb\_2.1\_II:Package: php3-mysql  
/pack/cd\_deb\_2.1\_II:Package: python-mysql  
/pack/cd\_deb\_2.1\_II:Package: www-mysql  
/pack/nonfree:Package: mysql-manual  
/pack/nonfree:Package: mysql-server

Je sais donc exactement le nom des paquets à installer par ex “mysql-server” et que celui-ci se trouve dans le CD “non-free”

Notes importantes:  
Cette méthode est très utile avec apt-get !! car il suffit de mettre le bon CD dans le lecteur de le monter et bien configurer /etc/apt/sources.list.  
De plus les noms de paquet sont toujours en minuscules  
Cette méthode est utile quand on connait le ~ nom du truc à installer . sinon c’est dselect !!

Source : [linux-france.org/article/ltt/ltt10/](http://www.linux-france.org/article/ltt/ltt10/)

---

<div class="post-metadata">

**Author:** ![usinagaz](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/ecae2f/32.png) [@usinagaz](https://www.debian-fr.org/u/usinagaz)\
**Post date:** [Février 20, 2016, 3:25 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638/5 "2016-02-20T15:25:37Z")

</div>

bonjour,  
à propos de lister des paquets, j’ai fait un petit script qui pourrait servir à ceux qui viennent d’avoir un gros souci de dépendances, étant en sarge, et ayant tenté l’installation de paquet sid ou etch à l’arrache …

J’ai pas poussé plus loin, et je peux pas plus le tester vu que chez moi, il ne marche pas ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool") mdr, et oui … je ne m’explique pas pourquoi aucun paquet sarge n’est installable chez moi (dixit apt-get via mon script … mais il se peut qu’il marche normalement chez d’autre …), si quelques uns veulent bien le tester 😒

NB:  
1/ Vous le mettez n’importe où en le nommant comme vous voulez  
2/ Vous passez en root  
3/ chmod root ou user +x pour le rendre exécutable (ça va mieux en le disant)  
3bis/ Si vous avez configuré sudo pour que votre user non root puisse utiliser dpkg et apt-get, vous éditez le script placez sudo devant toutes les invocations des-dits programmes.  
4/ Vous le lancez sans craintes, ( ./verslàoùilest/lenomduscript.sh) l’instruction fatale est dotée de l’option -s (pour simulation : apt-get -s install …)  
5/ Ben aprés on vois si ya des succés ou pas, et si ça casse pas tout, avant de rééditer le script pour enlever l’option -s …

voilà :

[code]#!/bin/bash  
rech=“sarge”  
rech1=“stable”  
vide=" "  
declare -i nbrech=0  
declare -i total=0  
prim\_pkg=""

setterm -cursor off

> /tmp/rapportpkgs  
> /tmp/traitepkgs

echo “Recherche des paquets non $rech \*\*\*\*\*\*\*\*\*\*\*\*\*\*”  
dpkg -l | grep ‘ii’ \>\> /tmp/rapportpkgs  
while read line; do  
nom=$(echo “$line” | awk ‘{print $2}’)  
if [“$prim\_pkg” != “”] && [“$prim\_pkg” == “$nom”]; then  
echo  
echo “erreur, relancez le script svp”  
exit  
fi  
[“$prim\_pkg” == “”] && prim\_pkg="$nom"

version=$(echo “$line” | awk ‘{print $3}’)  
contexte="$(apt-cache policy $nom | tr -d ‘_’ |   
grep -B1 $rech | awk ‘{print $1}’)"  
contexte="$(echo $contexte | sed s/\n//g | awk ‘{print $1}’)"  
if [“$contexte” == “”]; then  
contexte="$(apt-cache policy $nom | tr -d '_’ |   
grep -B1 $rech1 | awk ‘{print $1}’)"  
contexte="$(echo $contexte | sed s/\n//g | awk ‘{print $1}’)"  
fi  
if [“$contexte” != “$version”]; then  
echo -ne “\rListing en cours: $vide”  
echo -ne “\rListing en cours: $nom”  
echo “$nom” \>\> /tmp/traitepkgs  
nbrech+=1  
fi  
total+=1  
done \< /tmp/rapportpkgs  
echo  
setterm -cursor on  
echo "  
nombre total de paquets : $total  
nombre de paquets correspondants : $nbrech"  
if [$(cat /tmp/traitepkgs | wc -l) -ge 1]; then  
echo -n "Pour ramener ces paquets vers sarge, saisissez ‘downgrade’ puis entrez: "  
read reponse  
if [“$reponse” == “downgrade”]; then  
while read pkg; do  
echo -ne "\rinstallation de $pkg/$rech: "  
apt-get -s install -t “$rech” “$pkg/$rech” 2\> /dev/null 1\> /dev/null  
[$? -ne 0] && echo “echec …” || echo “succès …”  
done \< /tmp/traitepkgs  
else  
echo “annulation …”  
echo “la liste des paquets est disponible dans /tmp/traitepkgs”  
fi  
fi

[/code]

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 3:25 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638/6 "2016-02-20T15:25:38Z")

</div>

```auto
pourquoi pas :
vide=""
 :question:
[code]echo "
nombre total de paquets : $total
nombre de paquets correspondants : $nbrech" [/code]
Le fait qu'
echo
ne soit pas sur le m^ ligne que la commande n'a pas d'importance ?
```

pourquoi pas :  
vide=""  
❓

`echo "
nombre total de paquets : $total
nombre de paquets correspondants : $nbrech" `  
Le fait qu’  
echo  
ne soit pas sur le m^ ligne que la commande n’a pas d’importance ?

---

<div class="post-metadata">

**Author:** ![usinagaz](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/ecae2f/32.png) [@usinagaz](https://www.debian-fr.org/u/usinagaz)\
**Post date:** [Février 20, 2016, 3:25 UTC](https://www.debian-fr.org/t/listing-des-paquets/5638/7 "2016-02-20T15:25:39Z")

</div>

bonjour ricardo,  
1/ un paquets de 10 caractères de longueur s’écrivant aprés un paquet qui en compte 25, ça va pas faire joli, ça va se chevauffer, exemple :  
pkg1:abcdefghijkl  
pkg2: mnopqrst  
écriture du premier paquet :  
Listing des paquets : abcdefghijkl  
écriture du second (mais ça se passe sur la même ligne, ya pas de \n) :  
Listing des paquets : mnopqrstijkl  
Je m’en sers pour remettre la ligne à préfixe + nombre suffisant de blanc.

2/ je pense qu’on peut le remonter en effet, c’est affaire de visuel, je l’ai peut-être laissé comme ça par inadvertance, à la base ça devait être puur forcer un retour à la ligne (\n) aprés la succession de echo -ne '\r …" peut être …
