[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-team] RPM was :Trop lent avec E, rapide avec WM.



> root wrote:
> >         Un autre probleme : certains progs me reclament un fichier X qui n'est
> > pas installe.  C a priori normal puisque j'ai essaye de virer un maximum
> > de progs dont je ne me sers pas ( 40 % de la RedHat ). Chez donc
> > chercher dans la doc une option de rpm pour retrouver un pckg possedant
> > un fichier X, sans succes.  Comment faire ?

déjà:
- évite de virer les fichiers par rm: s'ils font partie de packages, tu va casser toute
  la belle organisation de RPM. Tu peux vérifier au prélable si un fichier fait partie
  d'un package (à priori, tout sauf ce que tu as installé manuellement ;)) avec:
    rpm -qf fichier (Query/File)
  Et là, efface plutôt le package
    rpm -e package (Erase)
  (note que tu peux mettre package-version-version_du_package ou bien simplement package,
   p.ex.:
  # rpm -qf /opt/kde/bin/kformula
  koffice-990203-8
  # rpm -e koffice
  suffit ;)
  ). Pour voir quels fichiers font partie de tel package, suffit de taper:
  # rpm -ql koffice | less
  (le |less, c'est parce que les fichiers défilent ;)... et -ql comme Query/List)
  Tu peux consulter la description d'un package avec:
  # rpm -qi koffice
  (Query/Information)

Si tu veux savoir de quel package un fichier fait partie, c'est (comme déjà dit):
# rpm -qf fichier
s'il est dans ton répertoire courant, sinon
# rpm -qf /chemin/complet/vers/fichier

Pour la liste de tous les fichiers, de tous les packages:
# rpm -qal
et pour trouver le fichier:
# rpm -qal|grep nom_du_fichier
Ensuite, pour avoir le package dont il fait partie
# rpm -qf nom_du_fichier
Mais je ne vois pas bien l'intérêt de cette démarche...

Je suppose que tu veux savoir de quel package *non-installé* le fichier fait partie...
Là, ça devient compliqué... parce qu'évidemment, la base de données RPM ne contient que
les noms des fichiers des packages *installés* et pas encore ceux des packages pas installés...

Je ne sais pas s'il y a un tool dans la Red Hat qui permet de faire ça automatiquement,
mais voici la méthode "manuelle":
- insère et monte chacun des CDs de ta RedHat, et pour chacun fais ceci:
- find /cdrom/ -name '*.i386.rpm' | \
  while read l
  do
    foo="`rpm -qlp $l | grep nom_du_fichier`"
    [ -n "$foo" ] && echo $l: $foo
  done
(en assumant que /cdrom, c'est l'endroit où tu montes le CD)
Tu peux taper ça comme c'est là ou bien le mettre dans un script (simplement le mettre dans
un fichier texte, p.ex. dans /usr/local/bin/findrpmfile, ajouter "#!/bin/bash" sur la 1ère
ligne et le rendre éxécutable en faisant "chmod a+x /usr/local/bin/findrpmfile")...

Voilà...

  -o)  Pascal Bleser        | Instead of giving  Windows
  /\\  C++/UNIX Development | the "three-finger-salute",
 _\_v  ATOS Payment Systems | give it  the  "one-finger-
       Aachen, Germany      | goodbye" <jfk/propaganda>
pbleser@atos-group.com------------------guru@linuxbe.org
---------
Visit the Linux Supertore Online: http://www.redcorp.com !
If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.