On Tue, 5 Oct 2004, Georges Louge wrote:

Bonjour à tous,

 Pour installer un programme non prévu dans la distribution Mandrake
(Xawdecode), j'ai besoin de savoir si les nombreuses librairies dont
il a besoin sont installées. J'interroge donc le système avec la
commande  "whereis" qui effectue la recherche selon les chemins
mémorisés dans un fichier de /etc (je ne sais pas lequel, avant,
c'était dans /etc/profile).

 Or, "whereis" fonctionne pour les librairies installées en /lib et
en /usr/lib, mais pas pour celles qui se trouvent dans
/usr/X11R6/lib ou /usr/lib/qt3/lib. Cela n'empêche pas le système de
fonctionner, le chemin d'accès est donc mémorisé quelque part, mais
sans que "whereis" y ait accès.

Hmmm .. whereis sert a voir ou se trouve un executable dans le chemin de recherche ... si tu sais deja ou est ta bibliotheque grace a locate, tu peux ensuite taper:

rpm -qf /lib/libtruc.so

ce qui te donnera le package dans lequel se trouve la bibliotheque en question.

(equivalent Debian de cette commande: dpkg -S)

 Même réaction de "urpmi" qui refuse l'installation de Xawdecode
faute de trouver des librairies qui cependant existent bien.

une fois que tu as valide que toutes les bibliotheques sont bien installees sur ton systeme (AQCP), tu peux donner a RPM l'option --nodeps, qui a l'effet, dans aucun cas destructeur, d'ignorer la dependance a un package si l'administrateur sait qu'elle est deja installee.

En consequence, un package installe avec --nodeps, au pire, ne fonctionnera pas, mais ne cassera rien dans le systeme.

Au contraire de --force, qui lui, ecrase tout un tas de fichiers sans demander confirmation, et que j'interdit donc a tout debutant. l'expert unix, lui, "knows what he's doing, and has been warned"

 Je pourrais bien sûr faire la recherche avec "slocate", puis forcer
l'installation, mais cette procédure ne me semble pas normale et je
préfèrerais une solution plus élégante :)

voila, PAS FORCER l'installation. NODEPS eventuellement, FORCE jamais.

 En cherchant dans /etc, j'ai trouvé un fichier /etc/ld.so.conf qui
contient 2 lignes:
/usr/X11R6/lib
/usr/lib/qt3/lib
mais il ne semble pas capable de fournir à "whereis" et à "urpmi" le
chemin demandé.

 Est-il possible d'ajouter dans un fichier de config /etc les deux
chemins manquants afin que "whereis" et "urpmi" s'y retrouvent ?

whereis s'appuie sur la variable d'environnement PATH
/etc/ld.so.conf sert au linker dynamique de linux a lancer les bibliotheques associees a un binaire au bon moment, lorsqu'il en a besoin, et en suivant les dependances que tu peux voir afficher grace a ldd:

[EMAIL PROTECTED] ldd /usr/local/bin/gnokii
        libbluetooth.so.1 => /usr/lib/libbluetooth.so.1 (0x4002a000)
        libgnokii.so.2 => /usr/local/lib/libgnokii.so.2 (0x40030000)
        libc.so.6 => /lib/i686/libc.so.6 (0x400a2000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


Olivier
Linux-Azur :      http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****

Répondre à