RFC: Entrée de FAQ : chercher un paquet
Hello,
Il y a quelques temps, on a parlé de mettre en place une faq pour cette liste.
Il y a eu plusieurs personnes volontaires, mais on en a plus entendu parlé.
Alors je poste l'une des entrées possibles, pour que vous commentiez, et pour
relancer le processus.
Par ailleurs, si quelqu'un s'ennuie, faire un script perl qui s'appelerait
apt-find, et qui reprendrait l'idée du 5 pour la simplifier serait une
meilleur occupation que trainer les bars... ;)
Voila, voila, Mt.
PS pour Charles Plessy : tu avais raison et j'avais tord. dlocate ne cherche
que les paquets installés. Mea Culpa.
-----------------------------------------------------------------------------
Question : Comment trouver un paquet ?
Reponse : Plusieurs solutions s'offrent à toi :
1) utilise dpkg
Ca marche pour : paquet deja installé
dpkg -S toto : cherche un paquet contenant le fichier toto
dpkg -L toto : cherche le paquet toto
2) utilise le programme dlocate, dans le paquet du même nom
Ca marche pour : paquet deja installé
fait la meme chose que dpkg, mais permet en plus d'autres sortes de
recherches et repond bien plus rapidement.
voir `man dlocate`, ou `dlocate --help`
3) demande aux robots irc
Ca marche pour : tous les paquets officiels de debian
Connecte toi en irc au serveur irc.debian.org, canal #debian, puis :
<mt> /msg dpkg !find toto
(ou toto est un paquet ou un fichier)
<dpkg> toto is in package: blablabla
Si tu ne veux pas chercher dans la distribution instable, mais dans, par
exemple slink, c'est pas plus dur :
<mt> /msg dpkg !find toto slink
4) cherche sur les pages faites pour ca :
Ca marche pour : tous les paquets officiels de debian
http://www.fr.debian.org/distrib/packages
C'est tout bien expliqué sur la page.
5) fait un grep brutal sur les fichiers de apt-get
Marche pour : tous les paquets qu'on pourrait installer
d'un `apt-get install`
(ne permet pas de trouver un paquet contenant un fichier)
Ces fichiers sont cachés dans le repertoire : /var/state/apt/lists
Exemple : chercher le paquet cddb
grep -15 "Package: cddb" * | sed -e "s/^.*Packages//" |less
le -15 pour grep est pour voir 15 lignes avant et 15 lignes apres chaque
occurance de la recherche
le sed est pour se passer du nom du fichier dans lequel on a trouvé
l'occurance
dans le grep, je precise "Package: " pour n'avoir que le paquet cddb, et
pas les
paquets qui dependent ou qui sont en conflit avec lui
Ca donne sur ma machine (entre autres) :
:Package: cddb
-Version: 2.5-1
-Priority: optional
-Section: sound
-Maintainer: Wichert Akkerman <wakkerma@debian.org>
-Depends: libc6 (>= 2.1)
-Conflicts: kdemultimedia (<=2:980419-b4-1)
-Replaces: xmcd (<=2.3-1)
-Architecture: i386
-Filename: dists/potato/main/binary-i386/sound/cddb_2.5-1.deb
-Size: 39770
-MD5sum: ed1842f681c80570c7938e7b4ba00f0b
-Description: CD DataBase support tools
- This package provides a location for programs to store files from the
- CDDB in and contains a simple program to query CDDB servers.
-source: xmcd
-installed-size: 67
Chose que je ne sais pas faire : Chercher un paquet contenant le fichier toto,
sachant que ce paquet n'est pas installé, et qu'il ne fait pas partie de
l'archive officielle...
Reply to: