[pacman] rechercher un fichier (urpmf / apt-file / ...? )

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
mildred
Hankyu
Messages : 32
Inscription : sam. 09 déc. 2006, 19:13
Localisation : france
Contact :

[pacman] rechercher un fichier (urpmf / apt-file / ...? )

Message par mildred »

Bonsoir,

Je cherche a installer kpdf mais je ne sais pas dans quel paquet il est. Alors je cherche dans la manpage de pacman une commande permettant de lister tous les fichiers de tous les packages installés ou non et de faire un grep sur kpdf ... mais rien de cela.
Il existe bien l'option -Ql mais elle ne fonctionne que sur les packages déjà installés.

Alors, j'aimerais savoir comment on fait avec pacman. Avec debian/ubuntu il existant apt-file, avec Mandrake il existait urpmf mais avec arch linux, je ne sais pas.
Accésoirement, je cherche dans quel paquet se trouve kpdf.

Merci
Avatar de l’utilisateur
vincentxavier
Elfe
Messages : 778
Inscription : ven. 11 août 2006, 18:17
Localisation : Epinay sur Seine (93)

Message par vincentxavier »

Hum pacman -Qi cherche sur les paquets installé, mais pacman -Si cherche sur le serveur

Je te suggère aussi d'installer yaourt http://archlinux.fr/yaourt et la page de wiki http://wiki.archlinux.fr/howto:archlinux:yaourt
Warranty

THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils

Image
Cactus
Maître du Kyudo
Messages : 2073
Inscription : sam. 16 sept. 2006, 10:39
Localisation : 31 - Toulouse Nord

Message par Cactus »

Code : Tout sélectionner

$ yaourt -Qo kpdf
/opt/kde/bin/kpdf is owned by kdegraphics 3.5.5-2
:wink:

EDIT : par contre, ça ne marche que si le paquet kdegraphics est déjà installé.
Existe-t-il donc une astuce pour scanner dans les dépôts ?
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

le plus simple est d'utiliser yaourt sans option !

Code : Tout sélectionner

yaourt kdegraphic
:)
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
kozaki
Chu Ko Nu
Messages : 422
Inscription : mer. 13 sept. 2006, 22:49
Localisation : London > . < Paris
Contact :

Message par kozaki »

ça permet de cherche un *paquet*.
Pour quel paquet apporte le *fichier* untel on a qpkg :
(~) llewellyn $ qpkg -f libdbus-1.so.2
Searching for package that contains "libdbus-1.so.2"...

No file/package found...
(~) llewellyn $ qpkg -f libdbus-1.so
Searching for package that contains "libdbus-1.so"...

/usr/lib/libdbus-1.so.3.0.0 is owned by dbus 0.93-1
/usr/lib/libdbus-1.so is owned by dbus 0.93-1
/usr/lib/libdbus-1.so.3 is owned by dbus 0.93-1
~ Configs ~ PGP Key: 1C2A554EFF0157D9
« Demande un conseil à ton ennemi et fais le contraire (proverbe juif)
SVP intéressé par tout retour d'exp. sur Arch ARM en général, et sur portable (CrOS) en particulier.
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

kozaki a écrit :Pour quel paquet apporte le *fichier* untel on a qpkg :
(~) llewellyn $ qpkg -f libdbus-1.so.2
Searching for package that contains "libdbus-1.so.2"...
No file/package found...
Attention, cette fonction ne permet que de retrouver l'appartenance d'un fichier déjà présent sur le système. En aucun cas il ne va chercher les fichiers appartenant à des paquetages non installés.
Donc autant utiliser "yaourt kdegraphic" ou "yaourt -Qo kdegraphic" si le paquet est installé comme le disait cactus.

Sur l'ancienne version du site web archlinux.org, il était possible de rechercher dans les noms fichiers au lieu de rechercher uniquement dans la description des paquetages. J'aurai bien aimé interfacer yaourt à ce moteur de recherche. Dommage :cry:
Avatar de l’utilisateur
kozaki
Chu Ko Nu
Messages : 422
Inscription : mer. 13 sept. 2006, 22:49
Localisation : London > . < Paris
Contact :

Message par kozaki »

Si si :idea:
########################################################################
# Query PKG #
# packagesearch-script #
########################################################################
# This script was written by Alexander Mieland (dma147 in #gentoo.de) #
# Contact: dma147 _AT_ linux-stats _DOT_ org #
# Homepage: http://www.linux-stats.org #
# IRC: #linux-stats, #archlinux-anfaenger on irc-freenode.net #
########################################################################
# $Id: $


Description:
""""""""""""
With this tool you can search *all* (known) arch repositories.
It searches through 'current', 'extra', 'unstable', 'community',
'testing', all TURs and all (known) PURs.
You can use full featured regular expressions in your searchstring.
You also can install packages from AUR directly. Use the -p argument
to use this feature.

REQUIREMENTS:
"""""""""""""
- Bash
- Python
- Wget


INSTALLATION:
"""""""""""""
Simply do a `pacman -S qpkg`.


UPDATE:
"""""""
See installation.
To update the package-databases, use the shipped tool `qpkg-update`
You should place this into a cronjob, which will start `qpkg-update`
every 24 hours like this:

0 12 * * * /usr/bin/qpkg-update &>/dev/null

This will update the package-database every day at 12h00.


USE:
Try `qpkg -h` to get help!

- This will install the package "alevt" directly from AUR:
# qpkg -p alevt

- This will find all packages which contains "themes" in their
name:
# qpkg themes

- This will also find all packages, which containes "themes"
in their name:
# qpkg ".*themes.*"

- This will also find all packages, which containes "themes"
in their name:
# qpkg -t ".*themes.*"

- This will find all packages, which containes "themes" in their
description:
# qpkg -d themes

- This will also find all packages, which containes "themes" in
their description:
# qpkg -d ".*themes.*"



I hope this tool will help everybody... ;)
Have fun...

dma147
Cactus
Maître du Kyudo
Messages : 2073
Inscription : sam. 16 sept. 2006, 10:39
Localisation : 31 - Toulouse Nord

Message par Cactus »

est-ce qu'une dépendance peut être trouvée par ce programme ? j'ai un gros doute là... :roll:
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

kozaki a écrit :Si si :idea:
non non :lol:
Désolé je vois pas où tu as vu ça... et même si tu l'as vu, ça ne fonctionne pas :roll:

@Cactus: la réponse est non également :roll:
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

Par contre ça serait pas mal de récupérer les fichiers filelist des pkg pour se faire une bdd justement pour ça
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
kozaki
Chu Ko Nu
Messages : 422
Inscription : mer. 13 sept. 2006, 22:49
Localisation : London > . < Paris
Contact :

Message par kozaki »

wain a écrit :
kozaki a écrit :Si si :idea:
non non :lol:
Désolé je vois pas où tu as vu ça... et même si tu l'as vu, ça ne fonctionne pas :roll:
C vrai ! Ah bah mince. DSL de mon entêtement :oops:
Bon, qpkg-update télécharge une qpkg-dbpack.tar.bz2 (112K), qu'il détarre (python) dans /usr/share/qpkg/{qpkgrepos.py,qpkgpackX.py}.
Vu le README je pensais que ça concernait tous les packages... mais non, ça renseigne sur les packages installés _only_
J'avais utilisé 'qpkg -f [librairie]' plein de fois jusque vers le début 2006 où j'ai utilisé l'interface web mentionnée, puis yaourt. Est-ce que qpkg aurait pu utiliser l'ancienne version du site web archlinux.org ?

Warnaud > Vi, +33 surtout à présent que wain m'a décillé
comment parser les filelists etc. ?
~ Configs ~ PGP Key: 1C2A554EFF0157D9
« Demande un conseil à ton ennemi et fais le contraire (proverbe juif)
SVP intéressé par tout retour d'exp. sur Arch ARM en général, et sur portable (CrOS) en particulier.
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

qpkg n'a jamais fait autrechose que lancer un "pacman -Qo" du fichier indiqué. Pas de miracle.

Pour faire une base de données comme en parle warnaud, il faudrait:
1. télécharger tous les paquets existants
2. les décompacter
3. extraire le fichier filelist
4. stocker dans une base de donnée le contenu des filelist
Sachant qu'un seul paquetage peut contenir plusieurs centaines, voir milliers de fichiers.... il faudrait un putain de serveur pour faire ça :shock:

Ou alors, ce qui serait aussi faisable, c'est de modifier gensync, pour qu'il intègre dans les bases .db.tar.gz ces fichiers filelist. Mais la synchronisation serait extrêmement ralentie, et chaque opération de pacman serait ralentie + la base serait encore plus fragmentée = catastrophique à long terme.
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

wain a écrit :Pour faire une base de données comme en parle warnaud, il faudrait:
Parser le site archlinux.org qui fourni "on-line" les dépendances des programmes dans Current, Extra, ...

Exemple avec Digikam :
http://www.archlinux.org/packages/5688/
La page affiche les dépendances :
* sqlite3
* libkexif
* libkipi
* libexif
* libgphoto2
* imlib2
* exiv2
* lcms
* dcraw


ça me parait plus réaliste ... j'avais en tête de faire un plugin de recherche pour Firefox mais si on peux l'intégrer à yaourt c'est encore mieux :D
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

La question était bien de trouver les fichiers fournits par un paquetage et non les dépendances (qu'on trouve avec un simple pacman -Si nomdupaquetage).

Effectivement, on pourrait toujours y accéder avec un truc genre:

Code : Tout sélectionner

lynx -nolist -dump http://www.archlinux.org/packages/files/5688/ | grep /
Ca serait plus simple que d'extraire de chaque paquetage le filelist. Reste en revanche à browser chaque paquetage un à un :?

Ou alors, on scrute le RSS pour chercher à chaque nouveau paquetage sa nouvelle liste de fichier. Petit à petit.
En tous cas, il faut passer forcément par un serveur qui génère une base de données qu'on redistribue ensuite.

Du boulot en perspective :D
Mettez vos idées ici:
http://bugs.archlinux.fr/?do=details&id=7
Avatar de l’utilisateur
kozaki
Chu Ko Nu
Messages : 422
Inscription : mer. 13 sept. 2006, 22:49
Localisation : London > . < Paris
Contact :

Message par kozaki »

wain a écrit :Effectivement, on pourrait toujours y accéder avec un truc genre:

Code : Tout sélectionner

lynx -nolist -dump http://www.archlinux.org/packages/files/5688/ | grep /
Ça marche
Si on savait comment les N° de packages sont attribués (current/autoconf=4019, digikam=5688) ça pourrait aider.
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

A la limite, on peut limiter un peu la recherche en faisant comme ceci:

Code : Tout sélectionner

yaourt --optionrecherche file1 --description kde
yaourt irait dans un premier temps chercher tous les paquetages qui contiennent kde dans la description.
Pour chacun de ces paquetages, il irait rechercher la liste des fichiers et enfin tester si le paquet existe.

Ca veut dire en revanche qu'il faut connaître un mot clef pour orienter la recherche, et que la recherche peut être très longue !
Qu'en pensez-vous ?
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

voilà le résultat sur la version de dev:

Code : Tout sélectionner

$ yaourt-dev --file kpdf --inabs kde
fam doesn't provide kpdf                 
icon-naming-utils doesn't provide kpdf                 
kdevelop doesn't provide kpdf                 
basket doesn't provide kpdf                 
kde-common doesn't provide kpdf                 
kdeaccessibility doesn't provide kpdf                 
kdeaddons doesn't provide kpdf                 
kdeadmin doesn't provide kpdf                 
kdeartwork doesn't provide kpdf                 
kdebase doesn't provide kpdf                 
kdebindings doesn't provide kpdf                 
kdebluetooth doesn't provide kpdf                 
kdeedu doesn't provide kpdf                 
kdegames doesn't provide kpdf                 
kpdf has been found in kdegraphics package !!  
il faut 55 secondes environ pour rechercher le fichier 'kpdf' dans 15 paquetages.
Tout ce passe du côté client donc: yaourt recherche tous les paquetages dans abs contenant le mot "kde", puis recherche parmis les fichiers dispo le fichier "kpdf".

Un exemple plus concret:

un programme plante parcequ'il demande le fichier "libGL.so":
on va utiliser le mot clef "gl" comme point de départ pour la recherche.

Code : Tout sélectionner

$ yaourt-dev --file libGL.so --inabs gl
glibc doesn't provide libGL.so                 
dbus-glib doesn't provide libGL.so                 
freeglut doesn't provide libGL.so                 
glib doesn't provide libGL.so                 
glib2 doesn't provide libGL.so                 
libglade doesn't provide libGL.so                 
glproto doesn't provide libGL.so                 
xf86-video-glint doesn't provide libGL.so                 
libGL.so has been found in libgl-dri package !!                   

==>  Do you want to continue the search ? y/n [n]
==>  ----------------------------------------------
==> y
mesa doesn't provide libGL.so                 
powersave doesn't provide libGL.so                 
bigloo doesn't provide libGL.so                 
glade doesn't provide libGL.so                 
guile-gtk doesn't provide libGL.so                 
conglomerate doesn't provide libGL.so                 
vim-taglist doesn't provide libGL.so                 
figlet doesn't provide libGL.so                 
foobillard doesn't provide libGL.so                 
fortune-mod-hitchhiker doesn't provide libGL.so                 
glchess doesn't provide libGL.so                 
glhack doesn't provide libGL.so                 
gltron doesn't provide libGL.so                 
nethack doesn't provide libGL.so                 
beagle doesn't provide libGL.so                 
glade-perl doesn't provide libGL.so                 
libglademm doesn't provide libGL.so                 
quick-lounge-applet doesn't provide libGL.so                 
bglibs doesn't provide libGL.so                 
dbus-sharp doesn't provide libGL.so                 
ftgl doesn't provide libGL.so                 
glib-perl doesn't provide libGL.so                 
glibmm doesn't provide libGL.so                 
glitz doesn't provide libGL.so                 
goffice doesn't provide libGL.so                 
gtkglarea doesn't provide libGL.so                 
gtkglext doesn't provide libGL.so                 
gtkglextmm doesn't provide libGL.so                 
libbeagle doesn't provide libGL.so                 
openal doesn't provide libGL.so                 
python-gtkglext doesn't provide libGL.so                 
python-opengl doesn't provide libGL.so                 
qwtplot3d doesn't provide libGL.so                 
t1lib doesn't provide libGL.so                 
taglib doesn't provide libGL.so                 
festival-awb-arctic doesn't provide libGL.so                 
festival-don doesn't provide libGL.so                 
festival-kallpc16k doesn't provide libGL.so                 
festival-rablpc16k doesn't provide libGL.so                 
glurp doesn't provide libGL.so                 
ogle doesn't provide libGL.so                 
synaesthesia doesn't provide libGL.so                 
loudmouth doesn't provide libGL.so                 
nss-mdns doesn't provide libGL.so                 
aspell-en doesn't provide libGL.so                 
glabels doesn't provide libGL.so                 
mpage doesn't provide libGL.so                 
openoffice-spell-en doesn't provide libGL.so                 
texinfo doesn't provide libGL.so                 
glibc-xen doesn't provide libGL.so                 
glsof doesn't provide libGL.so                 
mknbi doesn't provide libGL.so                 
sash doesn't provide libGL.so                 
synergy doesn't provide libGL.so                 
3ddesktop doesn't provide libGL.so                 
ttf-freebanglafont doesn't provide libGL.so                 
ttf-mph-2b-damase doesn't provide libGL.so                 
viewglob doesn't provide libGL.so                 
wmitime doesn't provide libGL.so                 
kde-i18n-gl doesn't provide libGL.so                 
ati-fglrx doesn't provide libGL.so                 
ati-fglrx-beyond doesn't provide libGL.so                 
ati-fglrx-ck doesn't provide libGL.so                 
ati-fglrx-mm doesn't provide libGL.so                 
ati-fglrx-suspend2 doesn't provide libGL.so                 
libGL.so has been found in ati-fglrx-utils package !!                   

==>  Do you want to continue the search ? y/n [n]
==>  ----------------------------------------------
==> y
gstreamer0.10-taglib doesn't provide libGL.so                 
gstreamer0.10-ugly doesn't provide libGL.so                 
powersave doesn't provide libGL.so                 
glibc doesn't provide libGL.so 
==> il faut ici 1 minute et 20 secondes, et yaourt retrouve plusieurs fichiers contenant libGL.so 8)

Alors vous en pensez quoi ?

EDIT: le gros problème, c'est qu'on se limite ici aux résultats de recherche. On ne trouve pas les paquetages "nvidia" alors qu'ils fournissent libGL également :/
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

perso, j'ai un mirroir local faudrait trouver un code vite fait pour extraire tous les fichier filelist et les injecter dans une bdd mysql ça va pas prendre tant de place que ça
le top ça serait après d'avoir une sorte de robot sur le chan et/ou une interface pour rechercher dedans
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Pour tester:
http://pastebin.archlinux.fr/262

usage:

Code : Tout sélectionner

yaourt-dev lbGL.so nvidia
Répondre